From c4f4526cd389d57d3c646b0d383995f832163b7a Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Sun, 3 May 2026 09:42:38 +0000 Subject: [PATCH] Add 10 ocr python-java tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: general Source: AI Search API Tutorials: - Extract Text from Image Python – Complete Aspose OCR Guide - How to Use OCR in Java – Extract Text from Multi‑Page PDFs - Extract Text from Image with Aspose OCR – Step‑by‑Step Guide - extract text ocr – Complete Guide with Aspose OCR - How to OCR PDF with Aspose OCR – Complete Step‑by‑Step Guide - Extract Text from Image with Python Async OCR – Complete Guide - recognize text from image with Aspose OCR – Complete Java Guide - Extract tables from image – Complete Aspose OCR Java Guide - how to run ocr on a form – extract text from image - Read Binary File Java – Load License Bytes for Aspose OCR Auto-generated by Professionalize.Tutorials Agent --- .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 186 +++++++++++++ .../_index.md | 157 +++++++++++ .../_index.md | 220 +++++++++++++++ .../_index.md | 244 +++++++++++++++++ .../_index.md | 213 +++++++++++++++ .../_index.md | 248 +++++++++++++++++ .../_index.md | 221 +++++++++++++++ .../_index.md | 200 ++++++++++++++ .../_index.md | 251 +++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 183 +++++++++++++ .../_index.md | 155 +++++++++++ .../_index.md | 220 +++++++++++++++ .../_index.md | 243 +++++++++++++++++ .../_index.md | 217 +++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 256 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 221 +++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 253 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 202 ++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 217 +++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 202 ++++++++++++++ .../_index.md | 253 +++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 183 +++++++++++++ .../_index.md | 157 +++++++++++ .../_index.md | 221 +++++++++++++++ .../_index.md | 244 +++++++++++++++++ .../_index.md | 235 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 210 ++++++++++++++ .../_index.md | 206 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 222 +++++++++++++++ .../_index.md | 247 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 209 ++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 251 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 200 ++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 253 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 203 ++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 215 +++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 158 +++++++++++ .../_index.md | 221 +++++++++++++++ .../_index.md | 245 +++++++++++++++++ .../_index.md | 236 ++++++++++++++++ .../_index.md | 248 +++++++++++++++++ .../_index.md | 207 ++++++++++++++ .../_index.md | 200 ++++++++++++++ .../_index.md | 251 +++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 183 +++++++++++++ .../_index.md | 155 +++++++++++ .../_index.md | 199 ++++++++++++++ .../_index.md | 243 +++++++++++++++++ .../_index.md | 215 +++++++++++++++ .../_index.md | 251 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 220 +++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 222 +++++++++++++++ .../_index.md | 245 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 222 +++++++++++++++ .../_index.md | 247 +++++++++++++++++ .../_index.md | 219 +++++++++++++++ .../_index.md | 248 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 200 ++++++++++++++ .../_index.md | 251 +++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 183 +++++++++++++ .../_index.md | 156 +++++++++++ .../_index.md | 218 +++++++++++++++ .../_index.md | 244 +++++++++++++++++ .../_index.md | 235 ++++++++++++++++ .../_index.md | 250 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 202 ++++++++++++++ .../_index.md | 253 +++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 183 +++++++++++++ .../_index.md | 157 +++++++++++ .../_index.md | 220 +++++++++++++++ .../_index.md | 244 +++++++++++++++++ .../_index.md | 217 +++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 257 ++++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 186 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 202 ++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 216 +++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 184 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 198 ++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 226 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 257 ++++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 200 ++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 236 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 202 ++++++++++++++ .../_index.md | 246 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 213 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 158 +++++++++++ .../_index.md | 218 +++++++++++++++ .../_index.md | 245 +++++++++++++++++ .../_index.md | 219 +++++++++++++++ .../_index.md | 236 ++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 202 ++++++++++++++ .../_index.md | 251 +++++++++++++++++ .../_index.md | 175 ++++++++++++ .../_index.md | 167 ++++++++++++ .../_index.md | 157 +++++++++++ .../_index.md | 220 +++++++++++++++ .../_index.md | 244 +++++++++++++++++ .../_index.md | 236 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 177 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 158 +++++++++++ .../_index.md | 218 +++++++++++++++ .../_index.md | 245 +++++++++++++++++ .../_index.md | 237 ++++++++++++++++ .../_index.md | 252 +++++++++++++++++ .../_index.md | 223 +++++++++++++++ .../_index.md | 204 ++++++++++++++ .../_index.md | 255 +++++++++++++++++ .../_index.md | 176 ++++++++++++ .../_index.md | 185 +++++++++++++ .../_index.md | 159 +++++++++++ .../_index.md | 222 +++++++++++++++ .../_index.md | 245 +++++++++++++++++ .../_index.md | 219 +++++++++++++++ 229 files changed, 48879 insertions(+) create mode 100644 ocr/arabic/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/arabic/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/arabic/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/arabic/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/arabic/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/arabic/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/arabic/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/arabic/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/arabic/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/arabic/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/chinese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/chinese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/chinese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/chinese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/chinese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/chinese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/chinese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/chinese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/chinese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/chinese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/czech/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/czech/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/czech/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/czech/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/czech/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/czech/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/czech/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/czech/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/czech/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/czech/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/dutch/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/dutch/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/dutch/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/dutch/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/dutch/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/dutch/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/dutch/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/dutch/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/dutch/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/dutch/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/english/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/english/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/english/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/english/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/english/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/english/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/english/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/english/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/english/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/english/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/french/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/french/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/french/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/french/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/french/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/french/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/french/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/french/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/french/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/french/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/german/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/german/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/german/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/german/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/german/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/german/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/german/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/german/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/german/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/german/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/greek/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/greek/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/greek/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/greek/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/greek/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/greek/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/greek/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/greek/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/greek/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/greek/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/hindi/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/hindi/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/hindi/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/hindi/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/hindi/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/hindi/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/hindi/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/hindi/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/hindi/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/hindi/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/hongkong/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/hongkong/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/hongkong/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/hongkong/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/hongkong/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/hongkong/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/hongkong/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/hongkong/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/hongkong/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/hongkong/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/hungarian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/hungarian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/hungarian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/hungarian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/hungarian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/hungarian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/hungarian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/hungarian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/hungarian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/hungarian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/indonesian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/indonesian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/indonesian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/indonesian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/indonesian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/indonesian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/indonesian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/indonesian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/indonesian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/indonesian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/italian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/italian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/italian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/italian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/italian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/italian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/italian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/italian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/italian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/italian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/japanese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/japanese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/japanese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/japanese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/japanese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/japanese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/japanese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/japanese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/japanese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/japanese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/korean/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/korean/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/korean/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/korean/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/korean/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/korean/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/korean/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/korean/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/korean/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/korean/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/polish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/polish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/polish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/polish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/polish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/polish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/polish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/polish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/polish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/polish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/portuguese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/portuguese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/portuguese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/portuguese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/portuguese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/portuguese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/portuguese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/portuguese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/portuguese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/russian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/russian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/russian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/russian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/russian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/russian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/russian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/russian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/russian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/russian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/spanish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/spanish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/spanish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/spanish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/spanish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/spanish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/spanish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/spanish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/spanish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/spanish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/swedish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/swedish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/swedish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/swedish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/swedish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/swedish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/swedish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/swedish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/swedish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/swedish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/thai/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/thai/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/thai/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/thai/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/thai/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/thai/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/thai/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/thai/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/thai/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/thai/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/turkish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/turkish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/turkish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/turkish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/turkish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/turkish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/turkish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/turkish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/turkish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/turkish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md create mode 100644 ocr/vietnamese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md create mode 100644 ocr/vietnamese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md create mode 100644 ocr/vietnamese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md create mode 100644 ocr/vietnamese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md create mode 100644 ocr/vietnamese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md create mode 100644 ocr/vietnamese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md create mode 100644 ocr/vietnamese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md create mode 100644 ocr/vietnamese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md create mode 100644 ocr/vietnamese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md create mode 100644 ocr/vietnamese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md diff --git a/ocr/arabic/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/arabic/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..6c7ba898e --- /dev/null +++ b/ocr/arabic/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: استخراج الجداول من الصورة باستخدام Aspose OCR Java. تعلم كيفية تحميل + الصورة للتعرف الضوئي على الأحرف، استخراج الجدول من ملف PNG، تحويل نص جدول الصورة، + والتعرف بسرعة على صورة الفاتورة. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: ar +og_description: استخراج الجداول من الصورة باستخدام Aspose OCR Java. يوضح هذا الدليل + كيفية تحميل الصورة للتعرف الضوئي على الأحرف، استخراج الجدول من ملف PNG، تحويل نص + جدول الصورة، والتعرف على صورة الإيصال. +og_title: استخراج الجداول من الصورة – دليل Aspose OCR للغة Java +tags: +- Aspose OCR +- Java +- Image Processing +title: استخراج الجداول من الصورة – دليل Aspose OCR الكامل لجافا +url: /ar/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استخراج الجداول من الصورة – دليل Aspose OCR الكامل للـ Java + +هل احتجت يوماً إلى **استخراج الجداول من ملفات الصورة** لكنك واجهت صعوبة؟ ربما لديك إيصال ممسوح ضوئياً أو فاتورة مصورة وتكون البيانات الجدولية مخبأة داخل ملف PNG. في هذا الدرس ستتعرف بالضبط على كيفية *تحميل الصورة للـ OCR*، تحويل تلك الصورة إلى صفوف منظمة، و **تحويل نص جدول الصورة** إلى شيء يمكنك العمل معه في Java. + +سنستعرض كل خطوة، من ترخيص محرك Aspose OCR إلى طباعة كل خلية من الجداول المكتشفة. في النهاية ستتمكن من **التعرف على صورة إيصال** واستخراج جداولها دون عناء. + +## ما ستتعلمه + +- كيفية تهيئة محرك Aspose OCR وتطبيق الترخيص. +- لماذا تمكين كشف الجداول هو المفتاح لـ **استخراج الجداول من الصورة**. +- الكود الدقيق المطلوب لـ **تحميل الصورة للـ OCR** وتشغيل التعرف على ملف PNG. +- طرق التعامل مع جداول متعددة، مسحات منخفضة الدقة، والمشكلات الشائعة. +- كيفية **تحويل نص جدول الصورة** إلى صيغة قابلة للطباعة (أو جاهزة لقاعدة البيانات). + +لا حاجة لأي وثائق خارجية—كل ما تحتاجه موجود هنا. + +## المتطلبات المسبقة + +- Java 17 أو أحدث (الكود يستخدم نظام الوحدات الحديث). +- ملف ترخيص Aspose OCR for Java (`Aspose.OCR.Java.lic`). إذا كنت تجرب فقط، فإن مفتاح التقييم المؤقت يعمل كذلك. +- صورة PNG تحتوي على جدول واضح (مثال: `receipt_with_table.png`). +- Maven أو Gradle لجلب تبعية Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **نصيحة احترافية:** احفظ ملف الترخيص بجوار مجلد `src/main/resources` حتى يبقى المسار ثابتاً عبر البيئات. + +--- + +## الخطوة 1 – تهيئة محرك OCR لـ **استخراج الجداول من الصورة** + +قبل أن يتمكن المحرك من أي شيء، يحتاج إلى معرفة أنك مستخدم مرخص. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*لماذا هذا مهم:* بدون ترخيص صالح يعمل محرك OCR في وضع التجربة، مما قد يقتطع النتائج أو يضيف علامات مائية غير مرغوبة—مما يجعل استخراج الجداول غير موثوق. + +--- + +## الخطوة 2 – تمكين كشف الجداول (**استخراج جدول من PNG**) + +كشف الجداول غير مفعل افتراضياً؛ عليك تشغيله. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +تفعيل هذا العلم يخبر Aspose OCR بمعاملة مجموعات النص المتراصة كصفوف وأعمدة، وهو بالضبط ما تحتاجه عندما تريد **استخراج الجداول من الصورة** التي تكون ملفات PNG. + +--- + +## الخطوة 3 – **تحميل الصورة للـ OCR** و **التعرف على صورة إيصال** + +الآن نقوم بتمرير الصورة إلى المحرك. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +إذا كنت تتعامل مع سيناريو **التعرف على صورة إيصال**، قد ترغب في معالجة مسبقة للصورة (إزالة الميل، زيادة التباين). هذا خارج نطاق هذا الدليل السريع لكنه يستحق الاستكشاف للماسحات الضوضائية. + +--- + +## الخطوة 4 – معالجة نتيجة OCR و **تحويل نص جدول الصورة** + +قد يحتوي كائن `OcrResult` على جدول واحد أو أكثر. لنقُم بالتكرار عليه وطباعة كل خلية. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**ما يفعله هذا:** + +- يتحقق ما إذا تم العثور على أي جداول؛ إذا لم يكن كذلك، يقترح تعديل الجودة. +- لكل جدول، يطبع الصفوف مع خلايا مفصولة بعلامات تبويب، وهو تنسيق ملائم لاستيراد CSV. +- استدعاء `Cell::getText` هو جوهر **تحويل نص جدول الصورة** – فهو يجلب النص الأصلي من كل خلية. + +### النتيجة المتوقعة + +بافتراض أن `receipt_with_table.png` يحتوي على جدول بسيط 3 × 2، سترى شيئاً مثل: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +إذا كانت الصورة تحتوي على جداول متعددة، سيُفصل كل جدول بسطر فارغ. + +--- + +## الخطوة 5 – التحقق من الجداول المستخرجة ومعالجة الحالات الخاصة + +### المشكلات الشائعة + +| المشكلة | لماذا يحدث | الحل السريع | +|-------|------------|------------| +| **لم يتم اكتشاف أي جداول** | الصورة غير واضحة أو ذات تباين منخفض | تطبيق التحويل الثنائي (`ImageProcessing.applyThreshold`) قبل OCR | +| **خلايا مدمجة** | خطوط الجدول ضعيفة، فيعاملها OCR ككتلة واحدة | زيادة `TableDetectionSensitivity` في `ocrEngine.getConfig()` | +| **ترتيب الأعمدة غير صحيح** | صورة مائلة تسبب عدم محاذاة | استخدم `ImageProcessing.deskew` أو قم بتدوير الصورة 90° | + +### ما الخطوة التالية + +- **تصدير إلى CSV** – استبدل `System.out.println(line);` بـ `FileWriter` لحفظ البيانات. +- **إدخال إلى قاعدة بيانات** – اربط كل صف بـ POJO واستخدم JPA للحفظ. +- **دمج مع واجهات برمجة أخرى** – لمعالجة الإيصالات يمكنك أيضاً استخراج الإجماليات باستخدام تعبيرات regex على نص OCR. + +--- + +## مثال كامل يعمل (جاهز للنسخ واللصق) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +شغّل هذا البرنامج، ووجّهّه إلى ملف PNG يحتوي على جدول واضح، وسترى وحدة التحكم تمتلئ بصفوف منسقة بشكل أنيق. + +--- + +## الخلاصة + +أصبح لديك الآن حل شامل من البداية إلى النهاية لـ **استخراج الجداول من الصورة** باستخدام Aspose OCR للـ Java. من الترخيص إلى **تحميل الصورة للـ OCR**، تمكين **استخراج جدول من PNG**، وأخيراً **تحويل نص جدول الصورة**، كل خطوة مغطاة بشرح ونصائح عملية. + +بعد ذلك، جرّب ربط الناتج بملف CSV، أو دفع الصفوف إلى قاعدة بيانات علائقية، أو دمج خطوة OCR مع روتين استخراج إجمالي الإيصال. نفس النمط يعمل مع الفواتير، قوائم الأسعار، وأي مستند ممسوح يحتوي على بيانات مخفية خلف شبكة. + +هل لديك أسئلة حول التعامل مع إيصالات منخفضة الدقة أو توسيع هذا إلى معالجة دفعات؟ اترك تعليقاً أدناه، ونتمنى لك برمجة سعيدة! + +![مثال لاستخراج الجداول من الصورة](https://example.com/assets/extract-tables-from-image.png "استخراج الجداول من الصورة – مثال النتيجة") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/arabic/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..a19dbd921 --- /dev/null +++ b/ocr/arabic/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: استخراج النص من صورة باستخدام بايثون و Aspose OCR. تعلم دليل OCR خطوة + بخطوة للبايثون مع دعم مختلط للغات اللاتينية والسيريلية. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: ar +og_description: استخراج النص من الصورة باستخدام بايثون بسرعة. يوضح هذا الدليل كيفية + استخدام Aspose OCR في بايثون للصور المختلطة من اللاتينية والسيريلية. +og_title: استخراج النص من صورة باستخدام بايثون – دليل كامل لاستخدام Aspose OCR +tags: +- OCR +- Python +- Aspose +title: استخراج النص من صورة بايثون – دليل Aspose OCR الكامل +url: /ar/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استخراج النص من صورة باستخدام Python – دليل Aspose OCR الكامل + +هل احتجت يومًا إلى **extract text from image python** لكن لم تكن متأكدًا أي مكتبة يمكنها التعامل مع مزيج من الأحرف اللاتينية والسيريلية؟ لست وحدك—المطورون يواجهون هذه المشكلة باستمرار عند إجراء OCR على لقطات شاشة متعددة اللغات. + +الخبر السار هو أن Aspose OCR for Python يجعل العملية بأكملها شبه خالية من المتاعب. في هذا الدرس سنستعرض تثبيت الحزمة، تطبيق الترخيص، تحميل صورة متعددة اللغات، وأخيرًا استخراج النص المعترف به ببضع أسطر من الشيفرة. بنهاية الدرس ستحصل على سكريبت جاهز للتنفيذ يمكنك إدراجه في أي مشروع. + +## ما ستتعلمه + +- كيفية إعداد **Aspose OCR Python** في بيئة افتراضية. +- لماذا يؤدي توجيه اللغات (مثل اللاتينية والسيريلية) إلى تسريع الكشف. +- الشيفرة الدقيقة المطلوبة لـ **extract text from image python** باستدعاء دالة واحدة. +- الأخطاء الشائعة عند التعامل مع OCR متعدد اللغات وكيفية تجنبها. + +### المتطلبات المسبقة + +- Python 3.8 أو أحدث مثبت على جهازك. +- ملف ترخيص Aspose OCR (`Aspose.OCR.Java.lic`). النسخة التجريبية المجانية تكفي للاختبار، لكن ملف الترخيص يزيل العلامات المائية. +- صورة PNG/JPEG تحتوي على كل من الأحرف اللاتينية والسيريلية (سنطلق عليها `mixed_latin_cyrillic.png`). + +إذا كان لديك كل ما سبق، فأنت جاهز للبدء—لا تحتاج إلى أطر عمل إضافية أو تبعيات ثقيلة. + +--- + +## الخطوة 1 – استخراج النص من صورة Python: تثبيت Aspose OCR + +أولاً: احصل على المكتبة من PyPI وتأكد من أن بيئتك تستطيع العثور على ملف الترخيص. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **نصيحة محترف:** إذا واجهت خطأ في الصلاحيات، أضف `--user` إلى أمر `pip install` أو شغّل الطرفية كمسؤول. + +الآن بعد أن تم تثبيت الحزمة على نظامك، سنستوردها ونوجه المحرك إلى الترخيص الخاص بنا. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +لماذا نحتاج إلى ترخيص في هذه المرحلة؟ بدون الترخيص يعمل المحرك في **وضع التقييم**، مما يحد من عدد الصفحات ويضيف علامة مائية إلى الناتج. توفير الترخيص مسبقًا يضمن أن استدعاء `recognize` لاحقًا يُعيد نصًا نظيفًا. + +--- + +## الخطوة 2 – تحميل صورتك ذات المحتوى اللاتيني‑السيريلي المختلط + +بعد ذلك، نقوم بتحميل الصورة إلى الذاكرة. Aspose OCR يعمل مع فئة `Image` الخاصة به، التي تُجرد تفاصيل تنسيق الملف الأساسي. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +إذا كنت تتساءل ما إذا كانت الصيغ الأخرى تعمل—نعم، JPEG، BMP، TIFF، وحتى PDF مدعومة. فقط غيّر امتداد الملف وستتعامل طريقة `from_file` مع البقية. + +--- + +## الخطوة 3 – توجيه اللغات لتسريع الكشف (اختياري لكن مفيد) + +عندما تعرف اللغات الموجودة في الصورة، يمكنك إعطاء المحرك إشارة مسبقة. هذا ليس إلزاميًا، لكنه **يقلل بشكل كبير من زمن المعالجة** ويحسن الدقة في OCR متعدد اللغات. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +قائمة التوجيه تقبل أي لغة يدعمها Aspose OCR (مثل `"Arabic"`، `"Japanese"`). إذا تخطيت هذه الخطوة، سيحاول المحرك كل لغة مدمجة، مما قد يكون أبطأ في الدفعات الكبيرة. + +--- + +## الخطوة 4 – تشغيل محرك OCR واستخراج النص + +الآن لحظة الحقيقة: التعرف الفعلي على الأحرف. طريقة `recognize` تُعيد كائن `OcrResult` يحتوي على النص العادي، درجات الثقة، وحتى إطارات الحدود إذا احتجت إليها لاحقًا. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **لماذا يعمل هذا:** تحت الغطاء، يجمع Aspose OCR بين كاشف نصوص يعتمد على الشبكات العصبية ومصنفات مخصصة لكل لغة. بتمرير كائن `Image`، تتجاوز الحاجة إلى أي معالجة يدوية مثل التثنيم. + +--- + +## الخطوة 5 – عرض النص المستخرج + +أخيرًا، لنطبع النتيجة على وحدة التحكم. في تطبيق حقيقي قد تكتبها إلى ملف، أو تدفعها إلى قاعدة بيانات، أو تُغذيها إلى واجهة برمجة تطبيقات ترجمة. + +```python +print("Recognised text:") +print(extracted_text) +``` + +عند تشغيل السكريبت، يجب أن ترى شيئًا مثل: + +``` +Recognised text: +Hello мир! This is a test. +``` + +هذا الناتج يؤكد أننا نجحنا في **extract text from image python**، مع معالجة كل من الأحرف اللاتينية والسيريلية في تمريرة واحدة. + +--- + +## مثال كامل يعمل + +فيما يلي السكريبت الكامل الذي يمكنك نسخه‑ولصقه في ملف يُسمى `extract_ocr.py`. استبدل مسارات العناصر النائبة بالمسارات الفعلية لديك. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +احفظ الملف، فعّل بيئتك الافتراضية، وشغّله: + +```bash +python extract_ocr.py +``` + +يجب أن ترى النص المعترف به مطبوعًا، مما يؤكد أن السكريبت يعمل من البداية إلى النهاية. + +--- + +## الأسئلة المتكررة والحالات الخاصة + +**ماذا لو كانت الصورة ضبابية؟** +Aspose OCR يتضمن أدوات لتصحيح الانحراف وتقليل الضوضاء، لكن للصور المتدهورة بشدة قد ترغب في المعالجة المسبقة باستخدام OpenCV (مثلاً تطبيق تمويه غاوسي وعامل عتبة). فئة `Image` يمكنها أيضًا قبول مصفوفة NumPy، لذا يمكنك ربط مرشحات مخصصة قبل استدعاء `recognize`. + +**هل يمكنني معالجة مجلد كامل من الصور؟** +بالطبع. غلف المنطق داخل حلقة `for`، غيّر `from_file` لقراءة كل اسم ملف، وخزن النتائج في قاموس. تذكر احترام حدود معدل الاستدعاءات إذا كنت تستخدم النسخة السحابية. + +**هل أحتاج إلى ترخيص منفصل لكل لغة؟** +لا، ترخيص Aspose OCR واحد يغطي جميع اللغات المدعومة. قائمة `language_hints` هي مجرد توجيه للأداء. + +**ماذا عن إدخال PDF؟** +استبدل `Image.from_file` بـ `ocr.Image.from_file("document.pdf")`. سيقوم محرك OCR تلقائيًا بتحويل كل صفحة إلى صورة وإرجاع النص المدمج. + +--- + +## الخاتمة + +لقد عرضنا طريقة مختصرة وجاهزة للإنتاج لـ **extract text from image python** باستخدام Aspose OCR. الخطوات—التثبيت، الترخيص، التحميل، توجيه اللغات، التعرف، والعرض—تغطي كل ما تحتاجه للحصول على نتائج موثوقة لمحتوى لاتيني‑سيريلي مختلط. + +من هنا يمكنك استكشاف مواضيع متقدمة مثل **تحويل الصورة إلى نص** للمعالجة الدفعة، دمج الناتج مع **Python OCR tutorial** في معالجة اللغة الطبيعية، أو تجربة توجيهات لغات أخرى للمستندات متعددة اللغات. السماء هي الحد، والشيفرة بين يديك. + +هل لديك حالة استخدام مختلفة أو واجهت مشكلة؟ اترك تعليقًا، شارك تجربتك، ولنستمر في النقاش. برمجة سعيدة! + +![مثال لاستخراج النص من صورة باستخدام Python](/images/extract-text-from-image-python.png "لقطة شاشة تُظهر ناتج OCR – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/arabic/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..b3b154c51 --- /dev/null +++ b/ocr/arabic/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: استخرج النص من الصورة فورًا باستخدام Aspose OCR. تعلم كيفية تحديد منطقة + الاهتمام، تحميل الصورة للتعرف الضوئي على الأحرف، واستخراج النص من الفاتورة في دقائق + قليلة. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: ar +og_description: استخراج النص من الصورة باستخدام Aspose OCR. يوضح هذا الدليل كيفية + تحديد منطقة الاهتمام، تحميل الصورة للتعرف الضوئي على الأحرف، واستخراج النص من الفاتورة + بكفاءة. +og_title: استخراج النص من الصورة باستخدام Aspose OCR – دليل كامل +tags: +- ocr +- python +- image-processing +title: استخراج النص من الصورة باستخدام Aspose OCR – دليل خطوة بخطوة +url: /ar/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استخراج النص من الصورة باستخدام Aspose OCR – دليل خطوة بخطوة + +هل تحتاج إلى **استخراج النص من الصورة** بسرعة؟ لست وحدك—المطورون يواجهون باستمرار مسحًا ضوضائيًا، وإيصالات، وفواتير. في هذا الدرس سنستعرض حلًا كاملاً لا يوضح فقط كيفية *استخراج النص من الصورة* بل يُظهر أيضًا كيفية **تحديد منطقة الاهتمام**، **تحميل الصورة للـ OCR**، واستخراج السطر الدقيق الذي تحتاجه من الفاتورة. + +سنغطي كل شيء من تثبيت مكتبة Aspose OCR إلى معالجة الحالات الخاصة مثل الصفحات المائلة. في النهاية ستحصل على سكريبت قابل للتنفيذ يستخرج النص المطلوب في استدعاء واحد—دون الحاجة إلى قص يدوي. + +## ما ستتعلمه + +- كيفية **تحميل الصورة للـ OCR** باستخدام واجهة برمجة تطبيقات Aspose للـ Python. +- أفضل طريقة لـ **تحديد منطقة الاهتمام** (ROI) بحيث تعالج فقط الجزء المهم من الصورة. +- كيفية **استخراج النص من حقل الفاتورة** دون سحب الصفحة بأكملها. +- نصائح لـ **معالجة الصورة بالـ OCR** بفعالية وتجنب المشكلات الشائعة. + +**المتطلبات المسبقة** – بيئة Python 3.9+ حديثة، ملف ترخيص Aspose OCR صالح، وصورة (مثل PNG للفاتورة). لا توجد أدوات خارجية أخرى مطلوبة. + +--- + +## الخطوة 1 – تهيئة محرك OCR (الإعداد الأساسي) + +قبل أن تتمكن من **معالجة الصورة بالـ OCR**، تحتاج إلى كائن محرك يحمل الترخيص الخاص بك. هذه الخطوة حاسمة لأن المحرك غير المرخص سيعيد مجموعة نتائج محدودة. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*لماذا هذا مهم*: كائن `OcrEngine` هو قلب المكتبة؛ يدير نماذج اللغة، ومعالجة ما قبل الصورة، والترخيص. ضبط الترخيص مسبقًا يضمن لك الدقة الكاملة وعدم ظهور العلامات المائية. + +--- + +## الخطوة 2 – تحميل الصورة للـ OCR + +الآن بعد أن أصبح المحرك جاهزًا، نحتاج إلى **تحميل الصورة للـ OCR**. يدعم Aspose العديد من الصيغ (PNG، JPEG، TIFF)، لكن استخدام `Image.from_file` يضمن فك ترميز الصورة بشكل صحيح. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **نصيحة احترافية**: احفظ ملفات الصور بأقل من 5 ميغابايت لأسرع معالجة. يمكن تقليل حجم الملفات الكبيرة باستخدام `image.resize(width, height)` قبل الـ OCR. + +--- + +## الخطوة 3 – تحديد منطقة الاهتمام (ROI) + +تحتوي معظم الفواتير على الكثير من النص غير ذي الصلة—كتل العناوين، التذييلات، إلخ. من خلال **تحديد منطقة الاهتمام** نخبر المحرك بالتركيز فقط على المكان الذي يوجد فيه المبلغ أو التاريخ، مما يحسن السرعة والدقة. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*كيف يعمل*: فئة `Rectangle` تقص الصورة افتراضيًا؛ محرك الـ OCR لا يرى البكسلات خارج المستطيل، لذا يتم تجاهل الضوضاء خارج الـ ROI. + +--- + +## الخطوة 4 – التعرف على النص داخل الـ ROI + +مع المحرك، الصورة، والـ ROI جاهزين، ن finally **استخراج النص من الصورة**. تُعيد طريقة `recognize` كائن `OcrResult` يحتوي على السلسلة المكتشفة ودرجات الثقة. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**الناتج المتوقع** (مثال لسطر إجمالي فاتورة نموذجي): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +إذا تم وضع الـ ROI بشكل صحيح، سترى فقط السطر الذي تحتاجه—بدون أي شيء آخر. + +--- + +## الخطوة 5 – مثال كامل جاهز للنسخ واللصق + +فيما يلي السكريبت الكامل الذي يجمع جميع الخطوات السابقة. احفظه باسم `extract_invoice_roi.py` وشغّله باستخدام `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +شغّل السكريبت ويجب أن ترى السطر المستهدف يُطبع في وحدة التحكم. إذا حصلت على سلسلة فارغة، تحقق من إحداثيات الـ ROI—فقد يؤدي الانحراف بضع بكسلات إلى استبعاد النص تمامًا. + +--- + +## الخطوة 6 – الاختلافات الشائعة والحالات الخاصة + +### أ) تخطيطات فواتير مختلفة +تختلف صناديق المبلغ الإجمالي بين البائعين. لت **معالجة الصورة بالـ OCR** عبر تخطيطات متعددة، ضع في اعتبارك: + +- **مناطق ROI متعددة**: شغّل المحرك تسلسليًا مع عدة مستطيلات واختر النتيجة ذات أعلى ثقة. +- **اكتشاف ROI ديناميكي**: استخدم مكتبة معالجة صور خفيفة (مثل OpenCV) لتحديد تسمية “Total” أولاً، ثم احسب الـ ROI نسبةً إليها. + +### ب) صور مائلة أو منحرفة +إذا كان المسح مائلًا، استدعِ `image.rotate(angle)` قبل التعرف: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +يوفر Aspose OCR أيضًا تصحيحًا تلقائيًا للانحراف، لكن الدوران اليدوي يمنحك تحكمًا أدق. + +### ج) أحرف غير لاتينية +نموذج اللغة الافتراضي هو الإنجليزية. لت **استخراج النص من الفاتورة** المكتوبة بلغة أخرى، اضبط اللغة قبل التعرف: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### د) ملفات PDF كبيرة +عند التعامل مع ملفات PDF متعددة الصفحات، استخرج كل صفحة كصورة أولًا (Aspose PDF → Image) ثم طبّق نفس منطق الـ ROI على كل صفحة. + +--- + +## الخطوة 7 – نصائح الأداء والنصائح الاحترافية + +- **تخزين المحرك في الذاكرة**: إنشاء `OcrEngine` مرارًا داخل حلقة يبطئ الأداء. أنشئه مرة واحدة وأعد استخدامه. +- **المعالجة الدفعية**: إذا كان لديك العشرات من الفواتير، غلف استدعاء الـ OCR داخل `ThreadPoolExecutor` لتوازي العمل المرتبط بـ I/O. +- **التحقق من الثقة**: `ocr_result.confidence` يعطى قيمة عائمة بين 0 و 1. رفض النتائج التي تقل عن 0.85 واستخدم ROI أكبر أو مراجعة يدوية كبديل. + +> **احذر**: ضبط الـ ROI صغيرًا جدًا قد يقطع الأحرف، مما ينتج مخرجات مشوشة. اختبر دائمًا على عدد قليل من الفواتير قبل التعميم. + +--- + +## الخلاصة + +أصبح لديك الآن طريقة قوية وجاهزة للإنتاج **لاستخراج النص من الصورة** باستخدام Aspose OCR، مع إمكانية **تحديد منطقة الاهتمام**، **تحميل الصورة للـ OCR**، واستخراج النص من حقول الفاتورة بثقة. بتقليل نطاق الـ OCR إلى ROI ضيق، تعزز كلًا من السرعة والدقة—مثالي لمعالجة دفعات من آلاف الإيصالات. + +هل أنت مستعد للخطوة التالية؟ جرّب دمج هذا السكريبت في واجهة Flask API حتى يتمكن تطبيق الويب الخاص بك من رفع فاتورة وإرجاع المبلغ الإجمالي فورًا. أو جرب استخدام عدة ROIs لاستخراج التاريخ، رقم الفاتورة، واسم البائع في آنٍ واحد. الاحتمالات لا حصر لها، ومع الأساسيات التي غطيناها، أنت مجهّز جيدًا لمواجهة أي تحدي OCR. + +برمجة سعيدة، ولتكن النصوص المستخرجة دائمًا نظيفة! + +![مخطط تدفق يوضح كيفية استخراج النص من الصورة باستخدام Aspose OCR](workflow.png){: .center-image alt="مخطط تدفق يوضح كيفية استخراج النص من الصورة باستخدام Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/arabic/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..03ca68388 --- /dev/null +++ b/ocr/arabic/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: استخراج النص من الصورة باستخدام OCR غير المتزامن في بايثون. تعلم كيفية + تحويل ملفات tif إلى نص، تحميل الصورة للـ OCR، والتعرف على النص من الصورة بكفاءة. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: ar +og_description: استخراج النص من الصورة باستخدام OCR غير المتزامن في بايثون. يوضح هذا + الدليل كيفية تحويل ملفات tif إلى نص، تحميل الصورة للتعرف الضوئي على الأحرف، والتعرف + على النص من الصورة. +og_title: استخراج النص من الصورة باستخدام بايثون OCR غير المتزامن – دليل شامل +tags: +- OCR +- Python +- AsyncIO +title: استخراج النص من الصورة باستخدام بايثون OCR غير المتزامن – دليل كامل +url: /ar/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استخراج النص من الصورة باستخدام Python Async OCR – دليل كامل + +هل تحتاج إلى **استخراج النص من الصورة** بسرعة؟ باستخدام Python Async OCR يمكنك القيام بذلك في بضع أسطر من الشيفرة فقط. سواء كنت تتعامل مع مسح .tif ضخم أو مجموعة من ملفات JPEG، يوضح لك هذا الدليل كيفية تحويل tif إلى نص، **تحميل الصورة لـ OCR**، وأخيرًا التعرف على النص من الصورة دون حجب حلقة الأحداث الخاصة بك. + +الأمر هو أن معظم المطورين يلجؤون إلى مكتبة متزامنة، ثم يواجهون واجهة مستخدم متجمدة بينما يقوم المحرك بمعالجة البكسلات. في هذا الدليل سنقلب هذا السيناريو باستخدام Aspose OCR Cloud API غير المتزامن، بحيث يبقى تطبيقك مستجيبًا. في النهاية ستحصل على سكريبت قابل للتنفيذ يخرج النص من أي صيغة صورة مدعومة، وستفهم السبب وراء كل خطوة. + +## ما ستتعلمه + +- كيفية إعداد Aspose OCR Cloud SDK للبايثون. +- الشيفرة الدقيقة اللازمة **لتحميل الصورة لـ OCR** وبدء مهمة التعرف غير المتزامنة. +- نصائح للتعامل مع ملفات .tif الكبيرة وتعقيدات الترخيص. +- طرق **استخراج نص الصورة** بأمان، حتى عندما تُرجع الخدمة أخطاء. +- مثال كامل جاهز للنسخ واللصق يمكنك إدراجه في مشروعك. + +> **المتطلبات المسبقة**: Python 3.8+ وملف ترخيص Aspose OCR Cloud (`Aspose.OCR.Java.lic`). لا توجد حزم طرف ثالث أخرى مطلوبة. + +![extract text from image workflow](workflow.png){: .align-center alt="مخطط استخراج النص من الصورة"} + +## استخراج النص من الصورة – نظرة عامة على OCR غير المتزامن + +قبل أن نغوص في الشيفرة، دعنا نفكك التدفق. عندما تستدعي `recognize_async` يرسل SDK الصورة إلى سحابة Aspose، يُنشئ مهمة خلفية، ويعطيك كائن `Task`. انتظار هذه المهمة يُعيد لك `OcrResult` يحتوي على تمثيل النص العادي للصورة. لأن الاستدعاء غير متزامن، يمكنك إطلاق مهام متعددة بالتوازي—مثالي لمعالجة دفعات من الأرشيفات الضخمة للمستندات الممسوحة ضوئيًا. + +### لماذا نستخدم غير المتزامن؟ + +- **I/O غير حابِس** – تبقى حلقة الأحداث حرة لمعالجة أعمال أخرى (مثل خدمة طلبات HTTP). +- **قابلية التوسع** – تشغيل عشرات عمليات التعرف في آن واحد؛ السحابة تقوم بالعمل الشاق. +- **الاستجابة** – تطبيقات الواجهة لا تتجمد أثناء انتظار محرك OCR. + +الآن بعد أن وضّحنا “السبب”، دعنا نرى **كيف**. + +## تحويل TIF إلى نص باستخدام Aspose OCR + +عقبة شائعة هي الافتراض بأن كل مكتبة OCR تدعم .tif أصلاً. Aspose تدعم ذلك، لكن لا يزال عليك تزويدها بكائن `Image`. SDK يُجرد الصيغة، لذا يمكنك ببساطة الإشارة إلى مسار الملف. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**شرح السطور الرئيسية** + +- `ocr_engine.license = ...` – بدون ترخيص صالح تُعيد السحابة خطأ 403. تأكد من أن ملف `.lic` متاح من دليل عمل السكريبت. +- `ocr.Image.from_file(image_path)` – هذه الخطوة **تحمل الصورة لـ OCR**؛ SDK يكتشف الصيغة تلقائيًا، لذا لا تحتاج إلى تحويل .tif مسبقًا. +- `recognize_async` – تُعيد مهمة متوافقة مع الـ coroutine. يمكنك إطلاق عدة منها في استدعاء `gather` إذا كان لديك دفعة. + +> **نصيحة احترافية**: إذا كنت تعالج ملفات TIFF بحجم جيجابايت، فكر في تقسيمها إلى صفحات أولاً. يمكن لـ `Image.from_file` في Aspose قبول فهرس صفحة، مما يقلل من ضغط الذاكرة. + +## التعرف على النص من الصورة بشكل غير متزامن + +دعنا نرى كيف ستستدعي الدالة من سكريبت نموذجي. نقطة الدخول `asyncio.run` هي أبسط طريقة لإطلاق الـ coroutine عندما لا تكون داخل حلقة أحداث (مثل أداة CLI بسيطة). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**ما المتوقع** + +تشغيل السكريبت على مسح واضح وعالي الدقة عادةً ما يُنتج سلسلة متعددة الأسطر تتطابق مع الصفحة المطبوعة. إذا كانت الصورة مشوشة، لا يزال Aspose يحاول تنظيفها، لكن قد ترى أحرفًا مشوهة. في هذه الحالة، فكر في ما قبل المعالجة باستخدام OpenCV (مثل العتبة) قبل تمرير الملف إلى محرك OCR. + +### التعامل مع الأخطاء بأناقة + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +التقاط `OcrException` يضمن عدم تعطل برنامجك عندما تُرجع السحابة خطأ—وهو ما يوقع الكثير من المبتدئين الذين ينسون مشاكل الشبكة. + +## تحميل الصورة لـ OCR – نصائح عملية + +1. **مسار الملف مقابل الـ Bytes** – SDK يقبل مسار ملف، لكن يمكنك أيضًا التحميل من كائن `bytes` إذا كانت الصورة موجودة في الذاكرة (`ocr.Image.from_bytes`). هذا مفيد عندما تكون قد جلبت الملف بالفعل من S3 أو قاعدة بيانات. +2. **الصيغ المدعومة** – بجانب .tif، Aspose يتعامل مع PDF، BMP، GIF، وحتى TIFF متعدد الصفحات. استخدم `Image.from_file("doc.pdf")` لتطبيق OCR مباشرة على ملفات PDF. +3. **الأداء** – للوظائف الدفعة، أعد استخدام نفس كائن `OcrEngine`؛ إنشاء محرك جديد لكل ملف يضيف عبئًا غير ضروري. + +## مثال كامل يعمل (جميع الخطوات في سكريبت واحد) + +فيما يلي السكريبت الكامل الجاهز للتنفيذ الذي يدمج الترخيص، معالجة الأخطاء، ومُحلل وسائط سطر الأوامر البسيط. انسخه، عدل مسار الترخيص، وستكون جاهزًا. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**الناتج المتوقع** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +إذا احتوت الصورة على فقرة بسيطة، سيعرض الطرفية نفس الأسطر مع الحفاظ على فواصل الأسطر. بالنسبة لملفات TIFF متعددة الصفحات، يقوم SDK بدمج الصفحات بالترتيب. + +## الأسئلة المتكررة (FAQ) + +**س: هل يعمل هذا مع أطر غير متزامنة أخرى مثل FastAPI؟** +ج: بالتأكيد. استبدل استدعاء `asyncio.run` بـ `await async_ocr(path)` داخل نقطة النهاية الخاصة بك، وستتعامل FastAPI مع حلقة الأحداث تلقائيًا. + +**س: ماذا لو احتجت إلى معالجة مئات الملفات في آن واحد؟** +ج: استخدم `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**س: هل يمكنني استخراج النص من PDF محمي بكلمة مرور؟** +ج: ليس مباشرة. ستحتاج إلى فك حماية PDF أولًا (مثلاً باستخدام `pikepdf`) ثم تمرير الـ bytes المفكوكة إلى `ocr.Image.from_bytes`. + +**س: كيف أتعامل مع لغات غير الإنجليزية؟** +ج: اضبط اللغة قبل التعرف: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose يدعم أكثر من 60 لغة؛ راجع الوثائق للحصول على المعرفات الدقيقة. + +## الخلاصة + +الآن لديك حل قوي **استخراج النص من الصورة** يستفيد من `asyncio` في بايثون وAspose OCR Cloud API غير المتزامن. باتباع الخطوات أعلاه يمكنك **تحويل tif إلى نص**، **تحميل الصورة لـ OCR**، و**التعرف على النص من الصورة** بطريقة غير حابسة—مثالي لكل من أدوات سطر الأوامر وخدمات الويب عالية الحركة. + +ما التالي؟ جرّب تجميع مجلد من المسحات، جرب إعدادات اللغة، أو قم بتمرير ناتج OCR إلى خط أنابيب معالجة اللغة الطبيعية اللاحق. السماء هي + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/arabic/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/arabic/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..6277a115e --- /dev/null +++ b/ocr/arabic/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: استخراج النص عبر OCR بسرعة باستخدام Aspose OCR. تعلم كيفية تحسين دقة + OCR، تحميل صورة OCR، معالجة صورة OCR مسبقًا، وتشغيل مسح OCR في بايثون. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: ar +og_description: استخراج النص باستخدام OCR بسرعة باستخدام Aspose OCR. تعلّم كيفية تحسين + دقة OCR، تحميل صورة OCR، تمهيد صورة OCR، وتشغيل مسح OCR في بايثون. +og_title: استخراج النص باستخدام OCR – دليل كامل مع Aspose OCR +tags: +- OCR +- Python +- Aspose +title: استخراج النص عبر OCR – دليل كامل مع Aspose OCR +url: /ar/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استخراج النص عبر OCR – دليل كامل مع Aspose OCR + +هل احتجت يومًا إلى **extract text ocr** من مسح غير ثابت ولكنك لم تكن متأكدًا لماذا تبدو النتائج كهراء؟ لست وحدك—العديد من المطورين يواجهون هذه المشكلة عندما تكون الصورة مائلة، أو مشوشة، أو ذات تباين منخفض. الخبر السار هو أن بعض التعديلات على الإعدادات يمكن أن تحول صورة فوضوية إلى نص نظيف قابل للبحث. في هذا الدرس سنستعرض مثالًا كاملاً من البداية إلى النهاية يوضح لك كيفية **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, وأخيرًا **run OCR scan** باستخدام Aspose OCR للغة Python. + +بنهاية هذا الدليل ستحصل على سكريبت قابل للتنفيذ يقرأ ملف JPEG ممسوحًا، ينظفه تلقائيًا، ويطبع النص المستخرج على وحدة التحكم. لا روابط غامضة “انظر الوثائق”—كل ما تحتاجه موجود هنا. + +## ما ستحتاجه + +- **Python 3.8+** (أحدث إصدار مستقر هو الأفضل) +- **Aspose.OCR for Python via .NET** – تثبيت باستخدام `pip install aspose-ocr` +- ملف **license** (`Aspose.OCR.Java.lic`) إذا قمت بشرائه (الإصدار التجريبي المجاني يعمل للاختبار) +- صورة تريد معالجتها (مثال: `skewed_scanned_doc.jpg`) + +هذا كل شيء. إذا كان لديك هذه العناصر، يمكننا القفز مباشرة إلى الكود. + +## الخطوة 1: استخراج النص عبر OCR باستخدام محرك Aspose OCR + +أول شيء تقوم به هو تشغيل محرك OCR وتطبيق الترخيص الخاص بك. فكر في المحرك كالعقل الذي سيقرأ الصورة؛ بدون ترخيص سيفشل في العمل بعد حد تجريبي صغير. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **لماذا هذا مهم:** تطبيق الترخيص مسبقًا يمنع فشل صامت لاحقًا. إذا تخطيت هذه الخطوة، سيعود المحرك إلى وضع مقيد وستحصل فقط على عدد قليل من الأحرف—وهذا بالتأكيد ليس ما تتوقعه عندما تحاول **extract text ocr**. + +## الخطوة 2: تحسين دقة OCR باستخدام ما قبل المعالجة + +المسحات التي تكون مائلة أو ذات حبيبات هي عائق لأي مشروع OCR. يتيح لك Aspose تبديل مجموعة من الإعدادات المفيدة التي تقوم تلقائيًا بتصحيح الميل، وإزالة الضوضاء، وتعزيز التباين. هذا هو جوهر **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – يدور الصورة لتصبح أفقية مرة أخرى، وهو أمر حاسم عندما لا يكون المستند الأصلي مسطحًا تمامًا. +- **remove_noise** – يزيل البقع العشوائية التي تظهر غالبًا في ملفات JPEG منخفضة الدقة. +- **enhance_contrast** – يجعل النص الداكن أغمق والخلفية الفاتحة أفتح، مما يساعد المحرك على تمييز الأحرف. +- **binarization = "Otsu"** – خوارزمية كلاسيكية تحدد أفضل عتبة للتحويل إلى أبيض وأسود. + +> **نصيحة احترافية:** إذا كنت تعلم أن صور المصدر نظيفة بالفعل، يمكنك إيقاف هذه الخيارات لتسريع المعالجة. لكن بالنسبة لمعظم المسحات الواقعية، تركها مفعلة هو الخيار الأكثر أمانًا. + +## الخطوة 3: تحميل صورة OCR للمسح + +الآن بعد أن أصبح المحرك جاهزًا، نحتاج إلى **load image ocr**. تدعم طريقة `Image.from_file` في Aspose صيغ JPEG، PNG، TIFF، وبعض الصيغ الأخرى. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +استبدل `YOUR_DIRECTORY` بالمسار الفعلي على جهازك. إذا كنت تعمل مع تدفق بايت في الذاكرة (مثال: من رفع ويب)، يمكنك أيضًا استخدام `ocr.Image.from_bytes(byte_data)`—سيتعامل المحرك نفسه مع ذلك. + +> **حالة حافة:** ملفات TIFF الكبيرة قد تستهلك الكثير من الذاكرة. إذا واجهت `MemoryError`، فكر في تقليل دقة الصورة أولاً أو استخدام `ocr_engine.config.max_image_size` لتحديد الحد الأقصى للأبعاد. + +## الخطوة 4: تشغيل مسح OCR والحصول على النتائج + +مع تحميل الصورة وتفعيل ما قبل المعالجة، الخطوة الأخيرة هي **run OCR scan**. هذه العملية تقوم بكل الأعمال الثقيلة خلف الكواليس. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +كائن `ocr_result` يحتوي على عدة خصائص مفيدة: + +- `ocr_result.text` – السلسلة النصية العادية التي تهتم بها. +- `ocr_result.confidence` – درجة رقمية (0‑100) تشير إلى الموثوقية العامة. +- `ocr_result.words` – قائمة بكائنات الكلمات مع إحداثيات الصندوق المحيط، مفيدة للتظليل. + +## الخطوة 5: طباعة النص المستخرج + +أخيرًا، نقوم بإخراج النتيجة. في تطبيق حقيقي قد تكتب النص إلى ملف، قاعدة بيانات، أو تغذيه إلى فهرس بحث. لهذا الدرس، `print` بسيط يفي بالغرض. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**الناتج المتوقع** (مثال لفاتورة بسيطة): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +إذا كانت الثقة منخفضة (< 80)، قد ترغب في مراجعة خيارات ما قبل المعالجة أو تجربة طريقة ثنائية مختلفة مثل `"Sauvola"`. + +## إضافي: تصور خط أنابيب ما قبل المعالجة (اختياري) + +أحيانًا يساعد رؤية ما فعله المحرك على الصورة. يتيح لك Aspose تصدير الصورة المعالجة: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +يمكنك بعد ذلك تضمين الصورة في الوثائق: + +extract text ocr workflow diagram showing preprocessing steps + +> **لماذا قد تقوم بذلك:** عندما يبدو نتيجة OCR غير صحيحة، نظرة سريعة على `processed_debug.png` غالبًا ما تكشف ما إذا كانت الصورة لا تزال مظلمة جدًا، أو لا تزال مائلة، أو تحتوي على ضوضاء متبقية. + +## أسئلة شائعة ومشكلات محتملة + +- **ماذا لو كان مستندي متعدد الصفحات؟** + Aspose OCR يعمل صفحة بصفحة. قم بالتكرار على كل صورة صفحة وضم `ocr_result.text`. + +- **هل يمكنني التعرف على لغات غير الإنجليزية؟** + نعم—اضبط `ocr_engine.config.language = "fra"` (أو أي رمز ISO‑639‑2) قبل استدعاء `recognize`. + +- **هل هناك حد لحجم الصورة؟** + المحرك يحدد الحد عند 10 MP افتراضيًا. زد `ocr_engine.config.max_image_size` إذا كنت تحتاج مسحات أكبر، لكن راقب استهلاك الذاكرة. + +- **هل أحتاج إلى محرك OCR منفصل للملفات PDF؟** + بالنسبة للـ PDF يمكنك إما استخراج كل صفحة كصورة أولاً (باستخدام Aspose.PDF) أو استخدام ميزة OCR المدمجة للـ PDF. الخطوات الموضحة هنا تظل نفسها بعد حصولك على صورة. + +## ملخص + +لقد غطينا كيفية **extract text ocr** باستخدام Aspose OCR للغة Python، بدءًا من ترخيص المحرك إلى تعديل الإعدادات التي **improve ocr accuracy**, تحميل ملف المصدر، وأخيرًا **run OCR scan** لاستخراج نص نظيف. السكريبت الكامل جاهز للنسخ واللصق، والآن تفهم لماذا كل علم من أعلام الإعدادات مهم. + +## ما التالي؟ + +- **جرب طرق ثنائية مختلفة** (`"Sauvola"`, `"Bradley"`). بعض الخطوط تستجيب بشكل أفضل للعتبات التكيفية. +- **دمج مع محرك بحث** (مثال: Elasticsearch) باستخدام درجة الثقة لترتيب النتائج. +- **دمج مع مكتبات ما بعد معالجة OCR** مثل `pyspellchecker` لتنظيف الأخطاء الشائعة في التعرف. +- **استكشاف المعالجة الدفعية** لمئات المسحات—غلف الخطوات في دالة ومرر لها مجلدًا من الصور. + +لا تتردد في تعديل الكود، إضافة سجلاتك الخاصة، أو دمجه في خط أنابيب إدارة مستندات أكبر. إذا واجهت أي مشاكل، اترك تعليقًا أدناه—برمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/arabic/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..52e3e2349 --- /dev/null +++ b/ocr/arabic/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-05-03 +description: كيفية إجراء التعرف الضوئي على النص (OCR) لملف PDF باستخدام Aspose OCR + Java. تعلّم كيفية تشغيل OCR على PDF، التعرف على نص PDF، تحويل PDF إلى JSON وتحميل + PDF للتعرف الضوئي على النص في بضع أسطر من الشيفرة فقط. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: ar +og_description: كيفية إجراء OCR لملف PDF باستخدام Aspose OCR Java. يوضح هذا الدليل + كيفية تشغيل OCR على PDF، التعرف على نص PDF، تحويل PDF إلى JSON وتحميل PDF للـ OCR + بسرعة. +og_title: كيفية التعرف الضوئي على النص في ملفات PDF باستخدام Aspose OCR – دليل برمجي + كامل +tags: +- Aspose OCR +- Java +- PDF processing +title: كيفية تحويل PDF إلى نص باستخدام Aspose OCR – دليل خطوة بخطوة كامل +url: /ar/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية التعرف الضوئي على النص في ملفات PDF باستخدام Aspose OCR – دليل كامل خطوة بخطوة + +هل تساءلت يومًا **كيفية التعرف الضوئي على النص في ملفات PDF** دون الحاجة إلى أدوات سطر الأوامر أو دفع مبالغ باهظة لخدمات SaaS؟ لست وحدك. في العديد من المشاريع—أتمتة الفواتير، أرشفة العقود الممسوحة ضوئيًا، أو بناء قاعدة معرفة قابلة للبحث—ستواجه الحاجة لاستخراج النص من ملفات PDF بسرعة وموثوقية. + +الخبر السار؟ باستخدام Aspose OCR for Java يمكنك **تشغيل OCR على PDF**، التعرف على نص صفحات PDF، **تحويل PDF إلى JSON**، وحتى **تحميل PDF للتعرف الضوئي** في بضع أسطر فقط. في هذا الدرس سنستعرض سير العمل بالكامل، نشرح لماذا كل خطوة مهمة، ونقدم لك عينة كود جاهزة يمكنك وضعها مباشرةً في مشروعك. + +## ما ستتعلمه + +- كيفية إعداد محرك Aspose OCR وتطبيق الترخيص الخاص بك. +- الطريقة الدقيقة **لتحميل PDF للتعرف الضوئي** وإدخاله إلى المُعرّف. +- كيفية **التعرف على نص PDF** عبر جميع الصفحات في استدعاء واحد. +- تصدير نتيجة OCR الكاملة إلى ملف **JSON** (مثالي لواجهات برمجة التطبيقات اللاحقة) وصفحة واحدة إلى **XML**. +- نصائح، مشاكل شائعة، وتغييرات قد تحتاجها عند التعامل مع ملفات PDF متعددة الصفحات أو حزم لغات مخصصة. + +> **المتطلبات المسبقة** – تحتاج إلى Java 8 أو أحدث، ملف ترخيص Aspose OCR for Java صالح (`Aspose.OCR.Java.lic`)، وملف JAR الخاص بـ Aspose OCR في مسار الـ classpath. لا توجد مكتبات خارجية أخرى مطلوبة. + +--- + +## كيفية التعرف الضوئي على النص في PDF – تهيئة محرك Aspose OCR + +أول شيء يجب فعله هو إنشاء نسخة من `OcrEngine` وإرفاق الترخيص الخاص بك. هذه الخطوة تفتح مجموعة الميزات الكاملة وتزيل علامة مائية التقييم. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**لماذا هذا مهم:** +بدون ترخيص، يعمل Aspose OCR في وضع “تجريبي” محدود يحد من عدد الصفحات ويضيف علامة مائية إلى الناتج. تطبيق الترخيص مسبقًا يضمن أن بقية سير العمل يعمل دون قيود غير متوقعة. + +--- + +## تشغيل OCR على PDF – تحميل المستند والتعرف على النص + +الآن **نحمّل PDF للتعرف الضوئي**. يتعامل Aspose OCR مع ملفات PDF كنوع خاص `PdfDocument`، والذي يستخرج كل صفحة كصورة داخليًا قبل تمريرها إلى المُعرّف. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**ما الذي يحدث خلف الكواليس؟** +`recognizeDocument` يمر على كل صفحة، يرسترها بدقة DPI مثالية، ثم يشغل محرك OCR. النتيجة هي مصفوفة `OcrPage` حيث يحتوي كل عنصر على النص المكتشف، درجات الثقة، ومعلومات التخطيط. هذا النهج أكثر موثوقية من تمرير بايتات PDF الخام إلى مكتبة OCR عامة. + +--- + +## تحويل نتيجة OCR إلى JSON – تصدير التقرير الكامل + +معظم الأنظمة اللاحقة تفضّل JSON لأنه سهل التحويل في Java، JavaScript، Python، أو حتى PowerShell. يأتي Aspose OCR مع أداة مساعدة `JsonExport` تقوم بتسلسل مصفوفة `OcrPage[]` بالكامل. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**متى تستخدم هذا؟** +إذا كنت بحاجة لإدخال ناتج OCR في فهرس بحث (Elasticsearch, Solr) أو خط أنابيب بيانات، فإن صيغة JSON توفر تمثيلًا منظمًا لكل صفحة، سطر، وكلمة، مع قيم الثقة. + +--- + +## تصدير الصفحة الأولى إلى XML – حفظ صفحة منفردة + +أحيانًا يهمك صفحة واحدة فقط—ربما تحمل الصفحة الأولى عنوانًا أو رقم فاتورة. تسمح لك فئة `XmlExport` بتفريغ `OcrPage` واحدة إلى ملف XML مرتب. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**لماذا XML؟** +الأنظمة القديمة أو بعض سير عمل المؤسسات لا تزال تعتمد على مخططات XML للاستيعاب. الملف المُولد يتبع مخطط Aspose الخاص، مما يجعل التحقق من الصحة سهلًا. + +--- + +## التحقق من الناتج – فحص ملفات JSON و XML + +بعد انتهاء البرنامج، يجب أن ترى ملفين في `YOUR_DIRECTORY`: + +- `report_ocr.json` – يحتوي على مصفوفة من كائنات الصفحات. قد يبدو المقتطف السريع هكذا: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – يحمل نفس المعلومات للصفحة 1، مغلّفة بعلامات ``. + +افتحهما بأي محرر؛ ستلاحظ سلاسل OCR الخام، درجات الثقة، وإحداثيات الصناديق المحيطة. إذا ظهر JSON فارغًا، تأكد من أن ملف PDF المدخل يحتوي فعليًا على محتوى مرسوم (صور ممسوحة) وليس نصًا قابلًا للتحديد—Aspose OCR يعمل فقط على الصور. + +--- + +## مشاكل شائعة ونصائح احترافية + +| المشكلة | السبب | الحل | +|-------|----------------|-----| +| **JSON فارغ** | PDF يحتوي على نص أصلي، ليس صورًا. | استخدم `PdfDocument.fromFile(..., true)` لإجبار الرستر، أو حوّل الصفحات مسبقًا إلى صور. | +| **ثقة منخفضة** | PDF منخفض الدقة أو مضغوط بشدة. | زد DPI عبر `ocrEngine.getImageProcessingOptions().setDpi(300)` قبل `recognizeDocument`. | +| **الترخيص غير موجود** | مسار خاطئ أو ملف مفقود. | استخدم مسارًا مطلقًا أو ضع ملف `.lic` على classpath واستدعِ `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **نفاد الذاكرة في ملفات PDF الكبيرة** | تحميل جميع الصفحات في الذاكرة مرة واحدة. | عالج الصفحات على دفعات: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## توسيع المثال + +- **تشغيل OCR على PDF بلغة محددة** – اضبط `ocrEngine.getLanguage().setLanguage(Language.English)` أو حمّل حزمة لغة مخصصة. +- **تصدير كل صفحة إلى ملف JSON منفصل** – كرّر عبر `ocrPages` واستدعِ `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **دمج مع محرك بحث** – أدخل JSON في معالج `attachment` في Elasticsearch للبحث النصي الكامل. + +--- + +## الخلاصة + +أصبح لديك الآن حل كامل وجاهز للإنتاج حول **كيفية التعرف الضوئي على النص في PDF** باستخدام Aspose OCR for Java. من خلال تهيئة المحرك، تحميل PDF، تشغيل OCR، وتصدير كل من **JSON** و **XML**، يمكنك دمج OCR في أي سير عمل خلفي—سواء كنت تحتاج إلى **تشغيل OCR على PDF**، **التعرف على نص PDF**، **تحويل PDF إلى JSON**، أو ببساطة **تحميل PDF للتعرف الضوئي**. + +جرّبه، عدّل إعداد DPI أو اللغة، وشاهد ملفات PDF غير القابلة للبحث تتحول إلى أصول قابلة للبحث. هل تريد الذهاب أبعد؟ جرّب فهرسة JSON في Elasticsearch، أو عالج XML باستخدام XSLT لتوليد تقارير مخصصة. + +برمجة سعيدة، ولتظل ملفات 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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/arabic/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..76ad604fd --- /dev/null +++ b/ocr/arabic/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,157 @@ +--- +category: general +date: 2026-05-03 +description: 'كيفية تشغيل OCR بسرعة: تعلم استخراج النص من الصورة والتعرف على النص + من النموذج باستخدام Aspose OCR Java. خطوات بسيطة لقراءة الصورة للـ OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: ar +og_description: 'كيفية تشغيل OCR بسرعة: تعلم استخراج النص من الصورة والتعرف على النص + من النموذج باستخدام Aspose OCR Java. خطوات بسيطة لقراءة الصورة للـ OCR.' +og_title: كيفية تشغيل OCR على نموذج – استخراج النص من الصورة +tags: +- ocr +- java +- image-processing +title: كيفية تشغيل التعرف الضوئي على الحروف في نموذج – استخراج النص من الصورة +url: /ar/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تشغيل OCR على نموذج – استخراج النص من الصورة + +Ever wondered **كيفية تشغيل OCR** on a scanned document without spending hours fiddling with obscure libraries? You're not alone. In many projects—whether it's digitizing invoices, archiving contracts, or pulling data from handwritten forms—being able to **استخراج النص من الصورة** files is a daily pain point. + +Here’s the thing: Aspose OCR for Java makes the whole pipeline almost painless. In this tutorial we’ll walk through every line of code you need to **التعرف على النص من النموذج** files, explain why each step matters, and show you how to **قراءة الصورة لـ OCR** results with confidence scores. By the end you’ll have a ready‑to‑run Java class that you can drop into any Maven or Gradle project. + +## ما ستتعلمه + +- إعداد محرك Aspose OCR وتطبيق الترخيص الخاص بك. +- تحميل ملف JPEG أو PNG أو TIFF إلى الذاكرة. +- تشغيل OCR والتكرار على كل سطر من النص المعترف به. +- اكتشاف الأسطر ذات الثقة المنخفضة للمراجعة اليدوية. +- توسيع المثال ليشمل ملفات PDF متعددة الصفحات أو صيغ صور مختلفة. + +لا تحتاج إلى أي خبرة سابقة مع Aspose، فقط بيئة تطوير Java أساسية (JDK 11+ وأي IDE تفضله). لنبدأ. + +![مثال على تشغيل OCR](/images/ocr-demo.png){alt="مثال على تشغيل OCR على نموذج ممسوح"} + +## الخطوة 1: تهيئة محرك OCR – **كيفية تشغيل OCR** + +The very first thing you must do before any OCR operation is to create an `OcrEngine` instance and attach a valid license. Without a license the library runs in demo mode, which limits the number of pages you can process. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**لماذا هذا مهم:** +The `OcrEngine` holds all configuration—language, detection mode, and performance tweaks. By setting the license up front you avoid the silent fallback to trial mode that would otherwise truncate your output. + +## الخطوة 2: تحميل الصورة – **استخراج النص من الصورة** + +Next we need an `Image` object that points to the file you want to scan. Aspose supports a wide range of formats, so you can feed in a scanned PDF page that you’ve already converted to PNG, a raw JPEG, or even a multi‑page TIFF. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**لماذا هذا مهم:** +Loading the image as an `Image` object gives the engine access to pixel data, DPI information, and color depth—all of which affect OCR accuracy. If you skip this step and pass a raw byte array, you’ll lose those helpful hints. + +## الخطوة 3: تشغيل OCR – **التعرف على النص من النموذج** + +Now the fun part: actually recognizing the characters. The `recognize` method returns a `RecognitionResult` that contains a collection of `Line` objects, each with its own confidence score. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**لماذا هذا مهم:** +Calling `recognize` triggers a cascade of internal processes—pre‑processing (deskew, noise removal), segmentation, character classification, and post‑processing (spell‑check, language model). The result object abstracts all that complexity away. + +## الخطوة 4: معالجة النتائج – **قراءة الصورة لـ OCR** الإخراج + +Once you have the `RecognitionResult`, you can iterate through each line, decide what to keep automatically, and flag anything that looks shaky. A confidence threshold of 85 % is a good starting point for most printed forms. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**الناتج المتوقع (عينة):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +In the example above the engine was unsure about the last digit of the total amount, so we printed a warning. You could pipe those lines into a UI for manual correction or log them for later review. + +### الحالات الخاصة والنصائح + +- **صفحات متعددة:** إذا كان لديك PDF متعدد الصفحات، قم بالتكرار على كل فهرس صفحة واستدعِ `Image.fromPdf(pdfPath, pageIndex)`. +- **لغات مختلفة:** اضبط `engine.getLanguage().setLanguage(Language.Spanish);` قبل استدعاء `recognize`. +- **جودة الصورة:** المسحات منخفضة الدقة (< 150 DPI) غالبًا ما تُنتج ثقة أقل من 80 %. يمكن أن يساعد التكبير باستخدام `image.resize(300, 300)`، لكن الحل الأفضل هو مسح أفضل. +- **الأداء:** إعادة استخدام نفس كائن `OcrEngine` للعديد من الصور يقلل الحمل مقارنة بإنشاء كائن جديد في كل مرة. + +## الأسئلة المتكررة + +**هل يمكن تشغيل هذا على خادم بدون واجهة رسومية؟** +بالطبع. المكتبة لا تعتمد على أي مكونات GUI، لذا تعمل بشكل جيد داخل حاويات Docker أو خطوط أنابيب CI. + +**ماذا لو لم يكن لدي ترخيص بعد؟** +ما زال بإمكانك استدعاء `engine.recognize`، لكن وضع التجربة سيتوقف بعد الصفحتين الأوليين ويضيف علامة مائية على الناتج. إنه مثالي للاختبارات السريعة. + +**هل هناك طريقة لاستخراج بيانات منظمة (مثل الجداول)؟** +Aspose OCR توفر فئة `TableRecognizer`، لكن ذلك خارج نطاق هذا الدليل للمبتدئين. بعد إتقان الأساسيات، راجع الوثائق الرسمية لـ `TableRecognizer`. + +## خلاصة الموضوع – **كيفية تشغيل OCR** باختصار + +We’ve covered everything you need to **كيفية تشغيل OCR** on a scanned form: initialize the engine, load the image, execute the recognition, and handle the results intelligently. With just a few lines of Java, you can **استخراج النص من الصورة** files, **التعرف على النص من النموذج** documents, and **قراءة الصورة لـ OCR** output with confidence scores that let you decide when human review is required. + +Next steps? Try swapping the JPEG for a multi‑page TIFF, experiment with different confidence thresholds, or integrate the output into a database for automated data entry. The possibilities are as wide as the documents you need to process. + +Got more questions about OCR, image preprocessing, or licensing? 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/arabic/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/arabic/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..7415eb9e9 --- /dev/null +++ b/ocr/arabic/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-05-03 +description: كيفية استخدام OCR لاستخراج النص من ملفات PDF في جافا. تعلم التعرف على + النص من PDF، تحويل PDF إلى نص، ومعالجة ملفات PDF متعددة الصفحات باستخدام OCR بكفاءة. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: ar +og_description: كيفية استخدام OCR لاستخراج النص من ملفات PDF في Java. يوضح هذا الدليل + كيفية التعرف على النص من PDF، تحويل PDF إلى نص، ومعالجة OCR لملفات PDF متعددة الصفحات. +og_title: كيفية استخدام OCR في جافا – استخراج النص من ملفات PDF متعددة الصفحات +tags: +- ocr +- java +- pdf +- aspose +title: كيفية استخدام OCR في جافا – استخراج النص من ملفات PDF متعددة الصفحات +url: /ar/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية استخدام OCR في جافا – استخراج النص من ملفات PDF متعددة الصفحات + +**كيفية استخدام OCR** في مشروع جافا؟ إذا احتجت يومًا لاستخراج النص من ملفات PDF دون الاعتماد على طبقة النص الداخلية للملف، فأنت في المكان الصحيح. يشرح هذا الدليل خطوة بخطوة حلًا كاملاً قابلاً للتنفيذ **يتعرف على النص من PDF**، يحول PDF إلى نص، ويتعامل حتى مع **PDF متعدد الصفحات باستخدام OCR** بنداء واحد. + +تخيل أنك استلمت عقدًا ممسوحًا — ملف TIFF مكوّن من 12 صفحة داخل PDF. تريد نصًا قابلاً للبحث للفهرسة، لكن الملف لا يحتوي على أحرف مدمجة. لا مشكلة؛ سنوضح لك بالضبط كيفية القيام بذلك، خطوة بخطوة. + +> **ما ستحصل عليه:** مقطع جافا جاهز للتنفيذ باستخدام Aspose.OCR، شرح لأهمية كل سطر، نصائح لتجنب المشكلات الشائعة، وعينة من المخرجات يمكنك التحقق منها فورًا. + +--- + +## ما الذي ستحتاجه + +قبل أن نبدأ، تأكد من وجود ما يلي: + +* **Java 17** (أو أي JDK حديث) – الكود يعمل مع إصدارات أقدم أيضًا، لكن 17 هو الخيار المثالي. +* مكتبة **Aspose OCR for Java** – يمكنك تنزيل ملف JAR من موقع Aspose أو إضافته عبر Maven/Gradle. +* **PDF متعدد الصفحات** (أو TIFF) تريد معالجته. في أمثلتنا سنستخدم `contract_multipage.pdf` الموجود في مجلد اسمه `YOUR_DIRECTORY`. +* ملف ترخيص **Aspose OCR** صالح (`Aspose.OCR.Java.lic`). بدون الترخيص تعمل المكتبة في وضع التقييم، وهو مناسب للاختبار السريع لكنه يضيف علامة مائية. + +هذا كل ما تحتاجه—لا محركات OCR إضافية، لا ملفات تنفيذية أصلية، مجرد JAR واحد وترخيص. + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "How to use OCR in Java – visual overview of the process") + +*نص بديل للصورة: كيفية استخدام OCR في جافا – نظرة بصرية على عملية التحميل، التعرف، وإخراج النص.* + +--- + +## الخطوة 1: إعداد محرك OCR – **كيفية استخدام OCR** بشكل صحيح + +أول شيء يجب فعله هو إنشاء نسخة من محرك OCR وتطبيق الترخيص. بدون الترخيص سيعمل المحرك، لكنك ستظهر علامة مائية تجريبية في المخرجات. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**لماذا هذا مهم:** +`OcrEngine` هو الكائن الأساسي الذي يدير تحليل الصورة، اكتشاف اللغة، واستخراج النص. تطبيق الترخيص مبكرًا يمنع المحرك من الانتقال إلى وضع التجربة لاحقًا، مما قد يؤثر على الدقة. + +--- + +## الخطوة 2: تحميل المستند – **استخراج النص من PDF** بكفاءة + +يمكن لـ Aspose OCR قراءة حاويات PDF وTIFF مباشرة. هنا نقوم بتحميل PDF متعدد الصفحات يحتوي على صور ممسوحة. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**لماذا هذا مهم:** +`PdfDocument.fromFile` يحلل الحاوية ويمنحك إمكانية الوصول إلى كل صفحة كصورة. هذه التجريدية تجعل محرك OCR يتعامل مع كل صفحة بنفس الطريقة، بغض النظر عن الصيغة الأصلية. + +**نصيحة:** إذا كان ملف المصدر TIFF، فإن نفس الاستدعاء يعمل—Aspose يكتشف الصيغة تلقائيًا. لا حاجة لكود إضافي. + +--- + +## الخطوة 3: التعرف على جميع الصفحات مرة واحدة – **التعرف على النص من PDF** بسلاسة + +بدلاً من حلقة عبر الصفحات يدويًا، يمكنك طلب من المحرك معالجة المستند بالكامل بنداء واحد. هذه هي الطريقة الأكثر كفاءة **لتحويل PDF إلى نص** عند التعامل مع **PDF متعدد الصفحات باستخدام OCR**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**لماذا هذا مهم:** +استدعاء `recognizeDocument` مرة واحدة يقلل من الحمل الناتج عن تهيئة المحرك مرارًا. كما يضمن إعدادات لغة موحدة عبر الصفحات، وهو أمر حاسم للوثائق القانونية التي غالبًا ما تمزج الخطوط. + +--- + +## الخطوة 4: إخراج النص المعترف به – **تحويل PDF إلى نص** للفهرسة + +بعد معالجة كل صفحة، نكتفي بالتكرار عبر النتائج وطباعة السلاسل المستخرجة. يمكنك أيضًا كتابة النتائج إلى ملف، قاعدة بيانات، أو إمدادها إلى فهرس بحث. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**المخرجات المتوقعة (مقتطفة):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +إذا كان PDF يحتوي على 12 صفحة، سترى 12 قسمًا `--- Page X ---`، يتبع كل منها النص المستخرج عبر OCR. + +--- + +## نصائح متقدمة لـ **PDF متعدد الصفحات باستخدام OCR** + +### 1. ضبط إعدادات اللغة + +بشكل افتراضي يحاول Aspose اكتشاف اللغة تلقائيًا، لكن يمكنك تسريع العملية بتحديدها: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. التحكم في ما قبل معالجة الصورة + +العقود الممسوحة غالبًا ما تحتوي على ضوضاء. يمكنك تمكين تصحيح الميل والتحويل إلى ثنائي: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. التعامل مع الملفات الكبيرة بأناقة + +إذا كنت تعالج PDFs أكبر من 100 ميغابايت، فكر في تدفق الصفحات بدلاً من تحميل المستند بالكامل مرة واحدة: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +هذا النمط يقلل من ضغط الذاكرة وهو مفيد للوظائف الدفعية. + +### 4. التصدير إلى صيغ هيكلية + +بخلاف النص العادي، يمكنك التصدير إلى JSON أو XML للمعالجة اللاحقة: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## المشكلات الشائعة وكيفية تجنبها + +| المشكلة | لماذا تحدث | الحل | +|---------|------------|------| +| **مخرجات فارغة** | عدم تطبيق الترخيص أو مسار الملف غير صحيح. | تحقق من مسار `setLicense` وتأكد من وجود الملف. | +| **حروف غير مفهومة** | إعداد لغة خاطئ أو مصدر بدقة منخفضة. | اضبط `Language` الصحيح وتأكد من أن الصور المصدرية ≥300 dpi. | +| **أخطاء نفاد الذاكرة** | تحميل PDF ضخم بالكامل مرة واحدة. | استخدم نهج التدفق الموضح أعلاه. | +| **التعرف الجزئي للصفحة** | PDF يحتوي على طبقات نقطية/متجهة مختلطة. | قم بتمهيد PDF أولًا: `pdfDoc.flatten();` قبل OCR. | + +--- + +## ملخص – ما تم تغطيته + +* **كيفية استخدام OCR** مع Aspose في جافا. +* **استخراج النص من PDF** (أو TIFF) بنداء واحد. +* **التعرف على النص من PDF** عبر جميع الصفحات دون حلقات يدوية. +* **تحويل PDF إلى نص** وإخراجه بشكل منظم. +* نصائح للتعامل مع **PDF متعدد الصفحات باستخدام OCR**، بما في ذلك تعديل اللغة ومعالجة الذاكرة. + +الآن لديك مقطع جاهز للإنتاج يمكنك إدراجه في أي مشروع جافا. لا تتردد في تعديل خيارات معالجة الصورة، تغيير وجهة الإخراج، أو دمج النتيجة في فهرس بحث. + +--- + +## الخطوات التالية + +* **استكشف الميزات المتقدمة لـ Aspose OCR** – مثل التعرف على الخط اليدوي أو الامتثال لـ PDF/A. +* **اجمع OCR مع معالجة PDF** (مثلاً إضافة طبقة نص مخفية مرة أخرى إلى PDF لجعلها قابلة للبحث). +* **أتمتة المعالجة الدفعية** بقراءة مجلد من PDFs وكتابة كل نتيجة إلى ملف `.txt` مطابق. + +إذا واجهت أي صعوبات، فإن منتديات Aspose مكان ممتاز لطرح الأسئلة، ومرجع API يوفر تفاصيل شاملة عن كل طريقة تم استخدامها هنا. + +برمجة سعيدة، واستمتع بتحويل تلك المسحات العنيدة إلى نص قابل للبحث! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/arabic/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..8beffd4ed --- /dev/null +++ b/ocr/arabic/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-05-03 +description: قراءة ملف ثنائي في جافا لتحميل ترخيص Aspose OCR. تعلم استخدام FileInputStream، + معالجة البيانات الثنائية، ونصائح عملية في هذا الدليل خطوة بخطوة. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: ar +og_description: قراءة ملف ثنائي في جافا لتحميل ترخيص Aspose OCR. اتبع هذا الدليل الكامل + لإتقان FileInputStream ومعالجة البيانات الثنائية في جافا. +og_title: قراءة ملف ثنائي جافا – تحميل بايتات الترخيص لـ Aspose OCR +tags: +- Java +- File I/O +- OCR +title: قراءة ملف ثنائي جافا – تحميل بايتات الترخيص لـ Aspose OCR +url: /ar/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# قراءة ملف ثنائي Java – تحميل بايتات الترخيص لـ Aspose OCR + +هل احتجت يوماً إلى **قراءة ملف ثنائي Java** عند التعامل مع ترخيص لمكتبة طرف ثالث؟ لست وحدك. يواجه معظم مطوري Java هذه المشكلة عندما يحاولون تمرير ملف `.lic` إلى محرك OCR، والحيل المعتادة للملفات النصية لا تنفع. + +في هذا الدرس سنستعرض مثالًا كاملاً قابلاً للتنفيذ يوضح بالضبط كيفية فتح ملف ترخيص ثنائي، سحب بايتاته إلى الذاكرة، وتمرير هذه البايتات إلى Aspose OCR for Java. خلال الشرح ستتعرف على سبب كون `FileInputStream` الأداة المناسبة، كيفية التعامل مع احتمالية حدوث `IOException`، وبعض النصائح الاحترافية التي قد لا تجدها في الوثائق الرسمية. + +بنهاية الدليل ستتمكن من **قراءة ملف ثنائي Java**، إنشاء كائن `License`، وربطه بـ `OcrEngine` دون أي عناء. + +## ما يغطيه هذا الدليل + +- المتطلبات المسبقة: Java 17+، Maven (أو Gradle)، ومكتبة Aspose OCR for Java. +- كود خطوة بخطوة يقرأ ملف `.lic` الثنائي باستخدام `FileInputStream`. +- شرح كل سطر لتفهم *السبب* وراء *الطريقة*. +- معالجة الحالات الخاصة (ملف مفقود، بايتات تالفة) ونصائح عملية للتصحيح. +- مقتطف نهائي مستقل يمكنك نسخه ولصقه في بيئة التطوير الخاصة بك وتشغيله فورًا. + +إذا تساءلت يوماً ما إذا كنت بحاجة إلى API خاص لقراءة ملفات الترخيص، الجواب هو **لا** تمامًا — مجرد I/O ثنائي تقليدي. لنبدأ. + +## الخطوة 1: قراءة ملف ثنائي Java باستخدام FileInputStream + +أول شيء نحتاجه هو طريقة موثوقة لسحب البايتات الخام من ملف الترخيص على القرص. في Java، `FileInputStream` هو الأداة الأساسية لهذا الغرض. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**لماذا هذا يعمل:** `Files.readAllBytes` ينشئ داخليًا `FileInputStream`، يقرأ كامل التيار، ويغلقه تلقائيًا. إنه آمن، مختصر، ويتجنب مشكلة “نسيان إغلاق التيار”. إذا كنت تفضّل النمط الكلاسيكي، يمكنك استبداله بكتلة `try‑with‑resources` تستخدم `FileInputStream` مباشرة. + +### نصيحة احترافية + +إذا كان ملف الترخيص كبيرًا (نادرًا، لكن ممكن)، فكر في قراءته على دفعات بدلاً من تحميله بالكامل مرة واحدة. بالنسبة لمعظم ملفات ترخيص OCR—عادةً أقل من بضعة كيلوبايت—الطريقة الأحادية كافية تمامًا. + +## الخطوة 2: إنشاء كائن License لـ Aspose OCR + +الآن بعد أن حصلنا على البايتات الخام، نحتاج إلى تحويلها إلى كائن `License` متوافق مع Aspose. توفر المكتبة فئة `License` التي تقبل مصفوفة بايتات. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**لماذا هذا مهم:** بتمرير البايتات مباشرة، تتجنب أي مشاكل متعلقة بالمسارات (مثل الالتباس بين المسار النسبي ومسار دليل العمل) وتبقي نشر التطبيق محمولًا—فقط ضع ملف `.lic` في أي مكان يعمل فيه تطبيقك. + +## الخطوة 3: ربط الترخيص بمحرك OCR + +بعد أن أصبح كائن `License` جاهزًا، الخطوة الأخيرة هي إرفاقه بـ `OcrEngine`. هذه الخطوة تضمن تشغيل مكوّن OCR في وضع مرخص بدلاً من وضع التقييم. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **ملاحظة:** بعض إصدارات Aspose القديمة تعرض حقلًا عامًا `license` بدلاً من طريقة setter. عدّل الكود وفقًا لذلك (`ocrEngine.license = license;`) إذا واجهت خطأ تجميع. + +## الخطوة 4: التحقق من تحميل الترخيص بنجاح (اختياري لكن مفيد) + +فحص سريع يوفر ساعات من التصحيح لاحقًا. فئة `License` لا تُطلق استثناءً عند النجاح، لكن يمكنك تجربة عملية OCR بسيطة للتأكد. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +إذا رأيت رسالة “License applied successfully”، فأنت جاهز. إذا لم تظهر، تحقق من مسار الملف، سلامة البايتات، وأنك تستخدم الإصدار الصحيح من Aspose. + +## مثال كامل يعمل + +جمع كل الأجزاء معًا ينتج برنامجًا مختصرًا جاهزًا للنسخ واللصق. يمكنك وضعه في ملف `Main.java` وتشغيله. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**الناتج المتوقع (مع وجود الصورة التجريبية):** + +``` +License applied successfully – OCR engine is ready. +``` + +إذا كان ملف الترخيص مفقودًا أو تالفًا، ستظهر رسالة خطأ واضحة مثل: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## الأخطاء الشائعة وكيفية تجنّبها + +- **الارتباك في المسارات:** المسارات النسبية تُفسَّر بالنسبة لدليل عمل JVM، وليس موقع ملف المصدر. استخدم مسارًا مطلقًا أو ضع ملف `.lic` بجوار الـ JAR وابدأ بالوصول إليه عبر `getResourceAsStream`. +- **ترتيب البايتات الخطأ:** لا تحاول قراءة ملف ثنائي باستخدام `Reader` (موجه للأحرف). سيتسبب ذلك في فساد البيانات. التزم بواجهات `FileInputStream`. +- **عدم توافق الإصدارات:** بعض إصدارات Aspose القديمة تتوقع `license.setLicense("path/to/file")` بدلاً من `setLicenseBytes`. راجع ملاحظات الإصدار إذا صادفت `NoSuchMethodError`. +- **نسيان إغلاق التيارات:** إذا رجعت إلى نهج `FileInputStream` الكلاسيكي، احرص على تغليفه بكتلة `try‑with‑resources` لضمان الإغلاق. + +## الخلاصة + +أنت الآن تعرف كيف **تقرا ملف ثنائي Java** لتحميل ترخيص Aspose OCR، إنشاء كائن `License`، وربطه بـ `OcrEngine`. العملية تعتمد على التعامل الصحيح مع البيانات الثنائية عبر `FileInputStream` (أو `Files.readAllBytes` الحديثة)، وبعض استدعاءات API البسيطة. + +من هنا يمكنك الانتقال إلى مهام OCR الفعلية—استخراج النص من ملفات PDF، الصور، أو المستندات الممسوحة ضوئيًا—مع الثقة أن طبقة الترخيص لن تعيقك. إذا رغبت في استكشاف مواضيع ذات صلة، اطلع على دروس حول **Java FileInputStream**، **معالجة البيانات الثنائية Java**، و**قراءة ملف الترخيص Java** لمكتبات أخرى. + +برمجة سعيدة، ولتكن نتائج 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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/arabic/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..7d2f3adca --- /dev/null +++ b/ocr/arabic/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-05-03 +description: تعلم كيفية التعرف على النص من الصورة وتحويل الصورة إلى نص باستخدام Aspose + OCR للـ Java. يتضمن نصائح لتحسين دقة OCR وتشغيل OCR على ملفات PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: ar +og_description: دليل خطوة بخطوة للتعرف على النص من الصورة باستخدام Aspose OCR للغة + Java. تعلم كيفية تحويل الصورة إلى نص، تحسين دقة OCR وتشغيل OCR على ملفات PNG. +og_title: التعرف على النص من الصورة باستخدام Aspose OCR – دليل جافا +tags: +- OCR +- Java +- Aspose +- Image Processing +title: التعرف على النص من الصورة باستخدام Aspose OCR – دليل Java الكامل +url: /ar/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# التعرف على النص من الصورة باستخدام Aspose OCR – دليل Java الكامل + +هل احتجت يومًا إلى **التعرف على النص من الصورة** لكنك لم تكن متأكدًا أي مكتبة ستعطيك نتائج موثوقة؟ لست وحدك—العديد من المطورين يواجهون هذه المشكلة عندما يحاولون استخراج البيانات من ملفات PDF الممسوحة، الإيصالات، أو تقارير المختبر. الخبر السار هو أن Aspose OCR for Java يجعل العملية بأكملها سهلة للغاية، ويمكنك حتى **تحويل الصورة إلى نص** ببضع أسطر فقط. + +في هذا البرنامج التعليمي سنستعرض كل ما تحتاج إلى معرفته: من تحميل صورة للتعرف الضوئي على الأحرف (OCR)، تعديل الإعدادات لـ **تحسين دقة OCR**، إلى أخيرًا **تشغيل OCR على ملفات PNG** وطباعة النص المستخرج. لا إطالة، مجرد مثال عملي قابل للتنفيذ يمكنك إدراجه في مشروعك اليوم. + +--- + +## ما ستحتاجه + +| المتطلب المسبق | السبب | +|--------------|--------| +| Java 17 (or newer) | Aspose OCR يستهدف Java 8+، لكن أحدث JDK يمنحك أداءً أفضل. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | المحرك الأساسي الذي يقوم بالمعالجة الثقيلة. | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | يفعل مجموعة الميزات الكاملة؛ وإلا ستحصل على علامة مائية تجريبية. | +| An image file (PNG, JPEG, TIFF, etc.) containing clear text | سنستخدم `lab_report.png` كمثال عملي. | +| A custom dictionary (optional) | يحسن التعرف على المصطلحات المتخصصة مثل “hemoglobin”. | + +إذا كان أي من هذه غير مألوف بالنسبة لك، لا تقلق—تثبيت ملف JAR وإنشاء ملف نصي بسيط هي مهام بسيطة سنغطيها لاحقًا. + +## الخطوة 1 – إعداد المشروع واستيراد الاعتمادات + +أولاً، أنشئ مشروع Maven (أو Gradle) جديد وأضف اعتماد Aspose OCR. يمكن لمستخدمي Maven لصق هذا المقتطف في ملف `pom.xml` الخاص بهم: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +إذا كنت تفضل Gradle، فإن المكافئ هو: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **نصيحة احترافية:** راقب رقم الإصدار؛ الإصدارات الأحدث غالبًا ما تحتوي على إصلاحات أخطاء تؤثر مباشرة على **تحسين دقة OCR**. + +الآن، أنشئ فئة Java باسم `OcrDemo.java`. في أعلى الملف، استورد الفئات المطلوبة: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## الخطوة 2 – تهيئة محرك OCR وتطبيق الترخيص الخاص بك + +لا يمكنك **تشغيل OCR على ملفات PNG** دون إبلاغ المحرك أولاً بأنه مرخص. إليك الطريقة: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +لماذا كائن `License` الإضافي؟ تقوم Aspose بفصل معالجة الترخيص عن المحرك لتتمكن من تبديل الترخيص في أي وقت، وهو ما يمكن أن يكون مفيدًا في سيناريوهات SaaS متعددة المستأجرين. + +## الخطوة 3 – تحميل قاموس مخصص (اختياري لكن قوي) + +إذا كنت تتعامل مع مصطلحات طبية، صيغ كيميائية، أو أسماء علامات تجارية، يمكن للقاموس المخصص أن **يحسن دقة OCR** بشكل كبير. القاموس هو ملف نصي عادي يحتوي على كلمة واحدة في كل سطر: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **لماذا يعمل:** يستخدم محرك OCR القاموس لتوجيه نموذج اللغة نحو الكلمات التي تهتم بها، مما يقلل من الأخطاء مثل “hemo­globin” → “hemoglobin”. + +إذا لم يكن لديك قاموس، فقط تخط هذه السطر—ما زالت Aspose تعمل جيدًا مع حزم اللغات المدمجة. + +## الخطوة 4 – تحميل الصورة التي تريد معالجتها + +الآن نقوم فعليًا **بتحميل الصورة للتعرف الضوئي على الأحرف (OCR)**. تدعم Aspose العديد من الصيغ، لكن PNG يعتبر خاليًا من الفقدان، مما يجعله خيارًا آمنًا للمستندات الممسوحة. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **حالة خاصة:** إذا كانت صورتك ضخمة (أكثر من 5 ميغابايت)، فكر في تقليل حجمها أولاً لتسريع المعالجة. توفر فئة `Image` طريقة `resize` يمكنك استدعاؤها قبل التعرف. + +## الخطوة 5 – تشغيل عملية OCR واسترجاع النص + +مع إعداد كل شيء، شغّل محرك OCR. تُعيد طريقة `recognize` كائن `OcrResult` الذي يحتوي على السلسلة المستخرجة، درجات الثقة، وحتى الصناديق المحيطة إذا كنت تحتاج إلى معلومات التخطيط. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +عند تشغيل البرنامج، يجب أن ترى شيئًا مشابهًا لـ: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +هذا كل شيء—لقد نجحت في **التعرف على النص من الصورة** و**تحويل الصورة إلى نص** باستخدام Aspose OCR. + +## الخطوة 6 – المشكلات الشائعة وكيفية إصلاحها + +| العَرَض | السبب المحتمل | الحل | +|---------|--------------|-----| +| إخراج فارغ | الترخيص غير مُطبق أو منتهي | تحقق من مسار `Aspose.OCR.Java.lic` وتأكد من أنه يتطابق مع الإصدار. | +| حروف مشوشة | الصورة منخفضة الدقة أو مضغوطة بشدة | استخدم مصدرًا بدقة أعلى أو قم بمعالجة مسبقة للصورة (تثنائي، تصحيح الميل). | +| كلمات متخصصة مفقودة | لا يوجد قاموس مخصص | أضف ملف قاموس يحتوي على المصطلحات المفقودة، كلمة واحدة في كل سطر. | +| معالجة بطيئة على دفعات كبيرة | لا توجد معالجة متعددة الخيوط | أنشئ مجموعة من كائنات `OcrEngine` (هي آمنة للخيوط) وعالج الصور بشكل متوازي. | + +## الخطوة 7 – توسيع المثال: حفظ النتائج إلى ملف + +إذا كنت بحاجة إلى الاحتفاظ بالنص المستخرج للتحليل لاحقًا، ببساطة اكتبها إلى ملف: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +الآن لديك خط أنابيب قابل لإعادة الاستخدام يقوم **بتحميل الصورة للتعرف الضوئي على الأحرف (OCR)**، يستخرج المحتوى، ويحفظه أينما تريد. + +## إضافي: تشغيل OCR على ملفات PNG متعددة في مجلد + +غالبًا ما تحتاج المشاريع الواقعية إلى معالجة عشرات المسحات. إليك حلقة سريعة تلتقط كل ملف `.png` في دليل: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +تذكر إعادة استخدام نفس كائن `ocrEngine`—إنشاء كائن جديد لكل ملف يضيف عبئًا غير ضروري. + +## الخاتمة + +الآن لديك حل كامل من البداية إلى النهاية يتيح لك **التعرف على النص من الصورة** باستخدام Aspose OCR for Java. من تحميل الصورة، وإثراء المحرك اختياريًا بقاموس مخصص لـ **تحسين دقة OCR**، وحتى **تشغيل OCR على ملفات PNG** وحفظ الناتج، الكود جاهز للإدراج في أي مشروع Java. + +ما الخطوة التالية؟ جرّب إمداد النص المستخرج إلى خط أنابيب معالجة اللغة الطبيعية، أو جرب OCR على الملاحظات المكتوبة يدويًا (تقدم Aspose أيضًا وضعًا للخط اليدوي). الاحتمالات لا حصر لها، وقد فتحت الآن الخطوة الأولى. + +برمجة سعيدة! إذا واجهت أي مشاكل، لا تتردد في ترك تعليق أدناه—دعنا نحل المشكلات معًا. + +![لقطة شاشة لنتيجة OCR في وحدة التحكم – التعرف على النص من الصورة](/images/ocr_console_result.png "مثال على التعرف على النص من الصورة") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/chinese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/chinese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..76498ba2a --- /dev/null +++ b/ocr/chinese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR Java 从图像中提取表格。学习如何加载图像进行 OCR,从 PNG 中提取表格,转换图像表格文本,并快速识别收据图像。 +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: zh +og_description: 使用 Aspose OCR Java 从图像中提取表格。本指南展示了如何加载图像进行 OCR、从 PNG 中提取表格、转换图像表格文本以及识别收据图像。 +og_title: 从图像中提取表格 – Aspose OCR Java 教程 +tags: +- Aspose OCR +- Java +- Image Processing +title: 从图像中提取表格 – 完整的 Aspose OCR Java 指南 +url: /zh/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从图像中提取表格 – 完整的 Aspose OCR Java 指南 + +是否曾经需要**从图像中提取表格**但总是碰壁?也许你手上有一张扫描的收据或拍摄的发票,表格数据埋在 PNG 中。本文将完整演示如何*加载图像进行 OCR*、将图片转化为结构化行,并**将图像表格文本**转换为 Java 中可用的形式。 + +我们会一步步走过,从授权 Aspose OCR 引擎到打印检测到的每个单元格。结束后,你将能够**识别收据图像**文件并轻松提取其中的表格。 + +## 你将学到 + +- 如何初始化 Aspose OCR 引擎并应用许可证。 +- 为什么开启表格检测是**从图像中提取表格**的关键。 +- 完整的代码示例,演示**加载图像进行 OCR**并在 PNG 上运行识别。 +- 处理多表格、低分辨率扫描以及常见坑点的方法。 +- 如何**将图像表格文本**转换为可打印(或可写入数据库)的格式。 + +无需查阅外部文档——所有内容都在这里。 + +## 前置条件 + +- Java 17 或更高(代码使用了现代模块系统)。 +- Aspose OCR for Java 许可证文件 (`Aspose.OCR.Java.lic`)。如果只是试验,临时评估密钥也可使用。 +- 包含清晰表格的 PNG 图像(例如 `receipt_with_table.png`)。 +- Maven 或 Gradle 用于拉取 Aspose OCR 依赖: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **专业提示:** 将许可证文件放在 `src/main/resources` 文件夹旁边,这样路径在不同环境下保持稳定。 + +--- + +## 步骤 1 – 初始化 OCR 引擎以**从图像中提取表格** + +在引擎能够工作之前,需要先确认你的合法身份。 + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*原因说明:* 没有有效许可证时,OCR 引擎会以试用模式运行,可能截断结果或添加水印——这会导致表格提取不可靠。 + +--- + +## 步骤 2 – 启用表格检测(**从 png 中提取表格**) + +表格检测默认是关闭的,需要手动打开开关。 + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +开启此标志后,Aspose OCR 会把对齐的文本块视为行和列,这正是你在**从图像中提取表格**时所需要的。 + +--- + +## 步骤 3 – **加载图像进行 OCR** 并 **识别收据图像** + +现在我们把图片真正送入引擎。 + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +如果你面对的是**识别收据图像**的场景,可能需要先对图像进行预处理(去倾斜、提升对比度)。这超出本快速指南的范围,但对噪声较多的扫描件非常有帮助。 + +--- + +## 步骤 4 – 处理 OCR 结果并 **将图像表格文本** 转换 + +`OcrResult` 对象可能包含一个或多个表格。我们遍历它们并打印每个单元格。 + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**此代码的作用:** + +- 检查是否检测到表格;若没有,提示进行质量调优。 +- 对每个表格,使用制表符分隔的方式打印行,便于 CSV 导入。 +- `Cell::getText` 调用是**将图像表格文本**的核心——它从每个单元格中提取原始 OCR 字符串。 + +### 预期输出 + +假设 `receipt_with_table.png` 包含一个简单的 3 × 2 表格,输出大致如下: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +如果图像中有多个表格,它们之间会用空行分隔。 + +--- + +## 步骤 5 – 验证提取的表格并处理边缘情况 + +### 常见坑点 + +| 问题 | 产生原因 | 快速解决方案 | +|------|----------|--------------| +| **未检测到表格** | 图像过于模糊或对比度低 | 在 OCR 前使用二值化 (`ImageProcessing.applyThreshold`) | +| **单元格合并** | 表格线条太淡,OCR 将其视为一个块 | 在 `ocrEngine.getConfig()` 中提升 `TableDetectionSensitivity` | +| **列顺序错误** | 图像倾斜导致对齐错误 | 使用 `ImageProcessing.deskew` 或将图像旋转 90° | + +### 接下来可以做什么 + +- **导出为 CSV** – 将 `System.out.println(line);` 替换为 `FileWriter`,将数据持久化。 +- **写入数据库** – 将每行映射为 POJO,使用 JPA 完成持久化。 +- **结合其他 API** – 对于收据处理,你还可以使用正则表达式在 OCR 文本中提取总额等信息。 + +--- + +## 完整可运行示例(复制粘贴即用) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +运行此程序,指向包含清晰表格的 PNG,即可在控制台看到整齐的行输出。 + +--- + +## 结论 + +现在你已经掌握了使用 Aspose OCR for Java **从图像中提取表格**的完整端到端方案。从授权到**加载图像进行 OCR**、开启**从 png 中提取表格**,再到**将图像表格文本**转换,每一步都有说明和实用技巧。 + +接下来,可以尝试将输出写入 CSV 文件、推送到关系型数据库,或与收据总额提取流程结合。相同的模式同样适用于发票、价目表以及任何隐藏在网格后的扫描文档。 + +对低分辨率收据的处理或批量处理有疑问?欢迎在下方留言,祝编码愉快! + +![Extract tables from image example](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/chinese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..262ca1781 --- /dev/null +++ b/ocr/chinese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR 在 Python 中提取图像文字。学习一步步的 Python OCR 教程,支持混合的拉丁文和西里尔文。 +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: zh +og_description: 快速使用 Python 从图像中提取文本。本指南展示了如何在 Python 中使用 Aspose OCR 处理混合拉丁‑西里尔字母的图像。 +og_title: 使用 Python 从图像提取文本 – 完整 Aspose OCR 演练 +tags: +- OCR +- Python +- Aspose +title: 使用 Python 从图像提取文本 – 完整的 Aspose OCR 指南 +url: /zh/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从图像中提取文本 Python – 完整的 Aspose OCR 指南 + +是否曾经需要 **extract text from image python**,但不确定哪个库能够同时处理拉丁字符和西里尔字符的混合?你并不是唯一遇到这种情况的人——开发者在对多语言截图进行 OCR 时经常会卡在这一步。 + +好消息是,Aspose OCR for Python 让整个过程几乎无痛。在本教程中,我们将演示如何安装包、应用许可证、加载包含多语言的图像,最后用几行代码提取识别出的文本。完成后,你将拥有一个可直接运行的脚本,随时可以放入任何项目中使用。 + +## 你将学到 + +- 如何在虚拟环境中设置 **Aspose OCR Python**。 +- 为什么提示语言(如拉丁文和西里尔文)可以加速检测。 +- 使用单一函数调用 **extract text from image python** 所需的完整代码。 +- 处理混合语言 OCR 时的常见陷阱以及规避方法。 + +### 前置条件 + +- 已在机器上安装 Python 3.8 或更高版本。 +- 一份 Aspose OCR 许可证文件(`Aspose.OCR.Java.lic`)。免费试用可用于测试,但正式许可证会去除水印。 +- 一张包含拉丁字符和西里尔字符的 PNG/JPEG 图像(这里称为 `mixed_latin_cyrillic.png`)。 + +只要上述条件满足,你就可以开始——无需额外框架或沉重的依赖。 + +--- + +## 第一步 – Extract Text from Image Python:安装 Aspose OCR + +首先,从 PyPI 获取库,并确保环境能够找到许可证文件。 + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **专业提示:** 如果遇到权限错误,请在 `pip install` 命令后添加 `--user`,或以管理员身份运行终端。 + +库安装完毕后,我们将导入它并将引擎指向我们的许可证。 + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +为什么此时需要许可证?如果没有许可证,引擎会以 **评估模式** 运行,限制页面数量并在输出中添加水印。提前提供许可证可确保后续的 `recognize` 调用返回干净的文本。 + +--- + +## 第二步 – 加载包含混合拉丁‑西里尔内容的图像 + +接下来,将图片加载到内存中。Aspose OCR 使用其自有的 `Image` 类,屏蔽底层文件格式的差异。 + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +如果你在想其他格式是否支持——答案是肯定的,JPEG、BMP、TIFF 甚至 PDF 都受支持。只需更改文件扩展名,`from_file` 方法会自动处理其余工作。 + +--- + +## 第三步 – 为更快检测提供语言提示(可选但有帮助) + +当你知道图像中包含哪些语言时,可以提前给引擎一个提示。这不是强制要求,但 **显著降低处理时间** 并提升混合语言 OCR 的准确性。 + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +提示列表接受 Aspose OCR 支持的任何语言(例如 `"Arabic"`、`"Japanese"`)。如果跳过此步骤,引擎会尝试所有内置语言,在大批量处理时会更慢。 + +--- + +## 第四步 – 运行 OCR 引擎并提取文本 + +现在是关键时刻:真正进行字符识别。`recognize` 方法返回一个 `OcrResult` 对象,里面包含纯文本、置信度分数,甚至还有需要时的边界框信息。 + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **工作原理:** 在内部,Aspose OCR 将神经网络文本检测器与语言特定分类器相结合。通过传入 `Image` 对象,你无需手动进行二值化等预处理。 + +--- + +## 第五步 – 查看提取的文本 + +最后,将结果打印到控制台。在实际应用中,你可能会将其写入文件、写入数据库,或传递给翻译 API。 + +```python +print("Recognised text:") +print(extracted_text) +``` + +运行脚本后,你应该会看到类似以下的输出: + +``` +Recognised text: +Hello мир! This is a test. +``` + +该输出证明我们成功 **extract text from image python**,在一次调用中同时处理了拉丁和西里尔字符。 + +--- + +## 完整可运行示例 + +下面是完整脚本,可直接复制粘贴到名为 `extract_ocr.py` 的文件中。只需将占位路径替换为实际目录即可。 + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +保存文件,激活虚拟环境,然后运行: + +```bash +python extract_ocr.py +``` + +你应当会看到识别出的文本打印出来,证明脚本端到端工作正常。 + +--- + +## 常见问题与边缘情况 + +**如果图像模糊怎么办?** +Aspose OCR 内置去倾斜和降噪功能,但对于严重退化的照片,你可能需要使用 OpenCV 进行预处理(例如,先做高斯模糊再阈值化)。`Image` 类也可以接受 NumPy 数组,这样就能在调用 `recognize` 前链式自定义滤镜。 + +**能一次处理整个文件夹的图像吗?** +完全可以。将逻辑包装在 `for` 循环中,将 `from_file` 换成读取每个文件名,并把结果存入字典。如果使用云版,请注意遵守 API 速率限制。 + +**每种语言需要单独的许可证吗?** +不需要,单个 Aspose OCR 许可证覆盖所有受支持语言。`language_hints` 列表仅用于性能提示。 + +**PDF 输入怎么办?** +将 `Image.from_file` 替换为 `ocr.Image.from_file("document.pdf")`。OCR 引擎会自动对每页进行光栅化并返回合并后的文本。 + +--- + +## 结论 + +我们已经展示了一种简洁、可投产的方式,使用 Aspose OCR **extract text from image python**。从安装、授权、加载、语言提示、识别到显示,这几步涵盖了获取可靠的拉丁‑西里尔混合内容所需的全部要点。 + +接下来,你可以探索批量 **image to text conversion**、将输出集成到 **Python OCR tutorial** 的自然语言处理流程,或尝试其他语言提示以处理多语言文档。可能性无限,代码已经在你手中。 + +有其他使用场景或遇到问题?欢迎留言分享经验,让我们一起讨论。祝编码愉快! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/chinese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..013b7d236 --- /dev/null +++ b/ocr/chinese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR 即时提取图像中的文本。学习如何定义感兴趣区域、加载图像进行 OCR,并在几分钟内从发票中提取文本。 +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: zh +og_description: 使用 Aspose OCR 从图像中提取文本。本指南展示如何定义感兴趣区域、加载图像进行 OCR,以及高效地从发票中提取文本。 +og_title: 使用 Aspose OCR 从图像中提取文本 – 完整教程 +tags: +- ocr +- python +- image-processing +title: 使用 Aspose OCR 从图像中提取文本 – 步骤指南 +url: /zh/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose OCR 从图像中提取文本 – 步骤指南 + +需要 **快速从图像中提取文本** 吗?你并不孤单——开发者经常要应对噪声扫描件、收据和发票。在本教程中,我们将完整演示一个解决方案,既展示如何 *从图像中提取文本*,又演示如何 **定义感兴趣区域 (ROI)**、**加载图像进行 OCR**,以及如何从发票中提取所需的精确行。 + +我们将覆盖从安装 Aspose OCR 库到处理旋转页面等边缘情况的全部内容。完成后,你将拥有一个可直接运行的脚本,只需一次调用即可提取目标文本——无需手动裁剪。 + +## 你将学到 + +- 如何使用 Aspose 的 Python API **加载图像进行 OCR**。 +- 最佳的 **定义感兴趣区域 (ROI)** 方法,只处理图片中重要的部分。 +- 如何 **从发票中提取文本** 字段,而不必读取整页。 +- 高效 **处理图像与 OCR** 的技巧,避免常见陷阱。 + +**先决条件** – 最近的 Python 3.9+ 环境、有效的 Aspose OCR 许可证文件,以及一张图像(例如发票 PNG)。不需要其他外部工具。 + +--- + +## 第一步 – 初始化 OCR 引擎(基础设置) + +在 **处理图像与 OCR** 之前,需要一个持有许可证的引擎实例。这一步至关重要,因为未授权的引擎只能返回有限的结果集。 + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*为什么重要*:`OcrEngine` 对象是库的核心;它管理语言模型、图像预处理和授权。提前设置许可证可确保获得完整的准确度且不会出现水印。 + +--- + +## 第二步 – 加载图像进行 OCR + +引擎准备好后,我们需要 **加载图像进行 OCR**。Aspose 支持多种格式(PNG、JPEG、TIFF),但使用 `Image.from_file` 能保证图像被正确解码。 + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **专业提示**:将图像文件保持在 5 MB 以下可获得最快的处理速度。更大的文件可以在 OCR 前使用 `image.resize(width, height)` 进行降采样。 + +--- + +## 第三步 – 定义感兴趣区域 (ROI) + +大多数发票包含大量无关文字——地址块、页脚等。通过 **定义感兴趣区域**,我们告诉引擎只在金额或日期所在的位置进行识别,从而提升速度和准确度。 + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*工作原理*:`Rectangle` 类在虚拟上裁剪图像;OCR 引擎永远不会看到矩形之外的像素,因此 ROI 之外的噪声会被忽略。 + +--- + +## 第四步 – 识别 ROI 内的文本 + +在引擎、图像和 ROI 都准备好后,我们终于可以 **从图像中提取文本**。`recognize` 方法返回一个 `OcrResult` 对象,包含检测到的字符串和置信度分数。 + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**预期输出**(典型发票合计行示例): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +如果 ROI 定位正确,你将只看到所需的那一行——没有其他内容。 + +--- + +## 第五步 – 完整可运行示例(复制粘贴即用) + +下面是把前面所有步骤串联起来的完整脚本。将其保存为 `extract_invoice_roi.py` 并运行 `python extract_invoice_roi.py`。 + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +运行脚本后,你应该在控制台看到目标行的输出。如果得到空字符串,请再次检查 ROI 坐标——偏差几像素就可能导致文本被完全排除。 + +--- + +## 第六步 – 常见变体与边缘情况 + +### a) 不同的发票布局 +不同供应商的发票往往会把合计金额框放在不同位置。要在多种布局下 **处理图像与 OCR**,可以考虑: + +- **多个 ROI**:依次使用多个矩形运行引擎,并挑选置信度最高的结果。 +- **动态 ROI 检测**:使用轻量级图像处理库(如 OpenCV)先定位 “Total” 标签,然后相对计算 ROI。 + +### b) 旋转或倾斜的图像 +如果扫描件倾斜,在识别前调用 `image.rotate(angle)`: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR 也提供自动去倾斜功能,但手动旋转可以让你获得更精细的控制。 + +### c) 非拉丁字符 +默认语言模型是英语。要 **从发票中提取文本**(其他语言),请在识别前设置语言: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) 大型 PDF +处理多页 PDF 时,先将每页提取为图像(Aspose PDF → Image),然后对每页使用相同的 ROI 逻辑。 + +--- + +## 第七步 – 性能技巧与专业提示 + +- **缓存引擎**:在循环中反复创建 `OcrEngine` 会拖慢速度。实例化一次后重复使用。 +- **批量处理**:如果有数十份发票,可将 OCR 调用包装在 `ThreadPoolExecutor` 中,实现 I/O‑bound 并行。 +- **置信度检查**:`ocr_result.confidence` 返回 0 到 1 之间的浮点数。将低于 0.85 的结果视为失败,并回退到更大的 ROI 或人工复核。 + +> **注意**:ROI 设得过小可能会截断字符,导致输出乱码。务必先在少量样本发票上测试后再大规模使用。 + +--- + +## 结论 + +现在,你已经掌握了使用 Aspose OCR **从图像中提取文本** 的完整、可投入生产的方法,涵盖 **定义感兴趣区域**、**加载图像进行 OCR**,以及可靠 **从发票中提取文本** 的技巧。通过将 OCR 限制在紧凑的 ROI 内,你可以同时提升速度和准确度——这对于批量处理成千上万张收据尤为理想。 + +准备好下一步了吗?尝试将此脚本集成到 Flask API 中,让你的 Web 应用能够上传发票并即时返回合计金额。或者实验多个 ROI,一次性提取日期、发票号和供应商名称。可能性无限,只要掌握了这里的基础,你就能应对任何 OCR 挑战。 + +祝编码愉快,愿你的提取文本始终干净整洁! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="使用 Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/chinese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..a397db5cf --- /dev/null +++ b/ocr/chinese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Python 的异步 OCR 从图像中提取文本。了解如何将 tif 转换为文本,加载图像进行 OCR,并高效识别图像中的文本。 +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: zh +og_description: 使用 Python 异步 OCR 从图像中提取文本。本指南展示了如何将 tif 转换为文本、加载图像进行 OCR,以及识别图像中的文本。 +og_title: 使用 Python 异步 OCR 从图像提取文本 – 完整指南 +tags: +- OCR +- Python +- AsyncIO +title: 使用 Python 异步 OCR 从图像提取文本 – 完整指南 +url: /zh/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Python 异步 OCR 从图像提取文本 – 完整指南 + +需要 **快速从图像中提取文本** 吗?使用 Python 的异步 OCR,只需几行代码即可实现。无论你面对的是巨大的 .tif 扫描文件,还是少量 JPEG,本教程都会教你如何将 tif 转换为文本、加载图像进行 OCR,最终在不阻塞事件循环的情况下识别图像中的文字。 + +事实是——大多数开发者会先选择同步库,随后在引擎处理像素时看到 UI 冻结。在本指南中,我们将通过使用 Aspose OCR Cloud 的异步 API 来颠覆这种做法,让你的应用保持响应。完成后,你将拥有一个可直接运行的脚本,能够从任何受支持的图像格式中提取文本,并且了解每一步背后的原理。 + +## 你将学到 + +- 如何为 Python 设置 Aspose OCR Cloud SDK。 +- **加载图像进行 OCR** 并启动异步识别任务的完整代码。 +- 处理大型 .tif 文件和授权细节的技巧。 +- 即使服务返回错误,也能安全 **提取图像文本** 的方法。 +- 一个完整的、可直接复制粘贴的示例,随时可以放入你的项目中。 + +> **先决条件**:Python 3.8+ 和 Aspose OCR Cloud 授权文件 (`Aspose.OCR.Java.lic`)。不需要其他第三方包。 + +--- + +![extract text from image workflow](workflow.png){: .align-center alt="从图像提取文本工作流"} + +## 异步 OCR 概览 – 从图像提取文本 + +在深入代码之前,先梳理一下整体流程。当你调用 `recognize_async` 时,SDK 会将图像发送到 Aspose 的云端,启动后台任务,并返回一个 `Task` 对象。await 该任务即可得到包含图片纯文本表示的 `OcrResult`。由于调用是异步的,你可以并行发起多个任务——这对于批量处理大量扫描文档非常理想。 + +### 为什么使用异步? + +- **非阻塞 I/O** – 你的事件循环可以继续处理其他工作(例如,响应 HTTP 请求)。 +- **可扩展性** – 一次性启动数十个识别任务,云端负责繁重计算。 +- **响应性** – UI 应用在等待 OCR 引擎时不会卡死。 + +现在“为什么”已经说明,下面来看 **怎么做**。 + +## 使用 Aspose OCR 将 TIF 转换为文本 + +常见的绊脚石是误以为所有 OCR 库都原生支持 .tif。Aspose 确实支持,但仍需提供一个 `Image` 对象。SDK 抽象了格式,你只需指向文件路径即可。 + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**关键代码行说明** + +- `ocr_engine.license = ...` – 没有有效授权时,云端会返回 403 错误。确保 `.lic` 文件在脚本工作目录可访问。 +- `ocr.Image.from_file(image_path)` – 这一步 **加载图像进行 OCR**;SDK 会自动检测格式,无需事先将 .tif 转换。 +- `recognize_async` – 返回一个可与协程配合的任务。如果有批量需求,可在 `gather` 调用中启动多个此类任务。 + +> **专业提示**:如果处理的是 GB 级别的 TIFF,建议先将其拆分为单页。Aspose 的 `Image.from_file` 支持传入页索引,可降低内存压力。 + +## 异步识别图像文本 + +下面展示在典型脚本中如何调用该函数。`asyncio.run` 是在没有已有事件循环(例如普通 CLI 工具)时触发协程的最简方式。 + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**预期结果** + +对清晰的高分辨率扫描运行脚本,通常会得到与打印页面相匹配的多行字符串。若图像噪声较大,Aspose 仍会尝试清理,但可能出现乱码。此时,可在将文件送入 OCR 引擎前使用 OpenCV(如阈值化)进行预处理。 + +### 优雅地处理错误 + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +捕获 `OcrException` 可防止云端返回错误时程序崩溃——这常是忘记网络抖动导致的新手常见问题。 + +## 加载图像进行 OCR – 实用技巧 + +1. **文件路径 vs. 字节流** – SDK 接受文件路径,也可以通过 `ocr.Image.from_bytes` 从 `bytes` 对象加载图像(当图像已在内存中,例如从 S3 或数据库获取时非常方便)。 +2. **支持的格式** – 除 .tif 外,Aspose 还能处理 PDF、BMP、GIF,甚至多页 TIFF。使用 `Image.from_file("doc.pdf")` 可直接 OCR PDF。 +3. **性能** – 对于批量作业,复用同一个 `OcrEngine` 实例;为每个文件创建新引擎会带来不必要的开销。 + +## 完整可运行示例(一步到位脚本) + +下面是完整的、可直接运行的脚本,已整合授权、错误处理以及简易的命令行参数解析。复制粘贴后,修改授权文件路径,即可使用。 + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**预期输出** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +如果图像包含一段普通段落,控制台会显示相同的行并保留换行。对于多页 TIFF,SDK 会按顺序拼接各页内容。 + +## 常见问题解答 (FAQ) + +**Q: 这能在其他异步框架(如 FastAPI)中使用吗?** +A: 完全可以。将 `asyncio.run` 调用替换为在你的端点内部 `await async_ocr(path)`,FastAPI 会自行管理事件循环。 + +**Q: 如果一次需要处理上百个文件怎么办?** +A: 使用 `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: 能否从受密码保护的 PDF 中提取文本?** +A: 不能直接。需要先解锁 PDF(例如使用 `pikepdf`),然后将解密后的字节传给 `ocr.Image.from_bytes`。 + +**Q: 如何处理非英文语言?** +A: 在识别前设置语言: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose 支持超过 60 种语言,具体标识请查阅文档。 + +## 结论 + +现在,你已经拥有一套利用 Python `asyncio` 与 Aspose OCR Cloud 异步 API 的 **从图像提取文本** 解决方案。通过上述步骤,你可以 **将 tif 转换为文本**、**加载图像进行 OCR**,以及 **异步识别图像文本**,实现非阻塞操作——无论是命令行工具还是高并发 Web 服务都适用。 + +接下来可以尝试批量处理文件夹中的扫描件,实验语言设置,或将 OCR 输出管道化到下游的 NLP 流程中。前路无限广阔。 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/chinese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..0c76186e1 --- /dev/null +++ b/ocr/chinese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR 快速提取文本。了解如何提升 OCR 准确率、加载图像 OCR、预处理图像 OCR,以及在 Python 中运行 + OCR 扫描。 +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: zh +og_description: 使用 Aspose OCR 快速提取文本。掌握如何提升 OCR 准确率、加载图像 OCR、预处理图像 OCR,以及在 Python + 中运行 OCR 扫描。 +og_title: 提取文本 OCR – 使用 Aspose OCR 的完整指南 +tags: +- OCR +- Python +- Aspose +title: 提取文本 OCR – Aspose OCR 完整指南 +url: /zh/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Aspose OCR 完整指南 + +是否曾经需要从倾斜的扫描件中 **extract text ocr**,却不明白为什么结果像乱码?你并不孤单——很多开发者在图像倾斜、噪声大或对比度低时都会遇到这种情况。好消息是,只需少量配置调整,就能把混乱的图片转化为干净、可搜索的文本。在本教程中,我们将完整演示一个端到端的示例,展示如何 **improve ocr accuracy**、**load image ocr**、**preprocess image ocr**,以及最终使用 Aspose OCR for Python 进行 OCR 扫描。 + +阅读完本指南后,你将拥有一个可运行的脚本,能够读取扫描的 JPEG,自动清理图像,并将提取的文本打印到控制台。无需神秘的“查看文档”链接——所有内容都在这里。 + +## 你需要的环境 + +- **Python 3.8+**(建议使用最新的稳定版本) +- **Aspose.OCR for Python via .NET** – 使用 `pip install aspose-ocr` 安装 +- 一个 **license file** (`Aspose.OCR.Java.lic`),如果已购买(免费试用可用于测试) +- 你想要处理的图像(例如 `skewed_scanned_doc.jpg`) + +就是这些。如果你已经准备好上述内容,我们可以直接进入代码。 + +## 步骤 1:使用 Aspose OCR 引擎进行 Extract Text OCR + +首先,需要启动 OCR 引擎并应用许可证。可以把引擎看作读取图像的大脑;如果没有许可证,它只会在极小的演示限制内工作。 + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **为什么重要:** 预先应用许可证可以避免后续的静默失败。如果跳过此步骤,引擎会回退到受限模式,你只能得到寥寥几个字符——这绝不是在尝试 extract text ocr 时所期望的结果。 + +## 步骤 2:通过预处理提升 OCR 准确率 + +倾斜或颗粒感的扫描件是任何 OCR 项目的噩梦。Aspose 允许你切换一系列实用设置,自动去倾斜、去噪并提升对比度。这正是 **improve ocr accuracy** 的核心。 + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – 将图像旋转回水平,对于原始文档未完全平整的情况至关重要。 +- **remove_noise** – 清除低分辨率 JPEG 中常见的随机噪点。 +- **enhance_contrast** – 使深色文字更深,浅色背景更亮,帮助引擎区分字符。 +- **binarization = "Otsu"** – 一种经典算法,用于决定黑白转换的最佳阈值。 + +> **小技巧:** 如果你知道源图像已经很干净,可以关闭这些选项以加快处理速度。但对于大多数实际扫描,保持开启是最安全的选择。 + +## 步骤 3:加载图像进行 OCR 扫描 + +引擎准备就绪后,我们需要 **load image ocr**。Aspose 的 `Image.from_file` 方法支持 JPEG、PNG、TIFF 等多种格式。 + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +将 `YOUR_DIRECTORY` 替换为你机器上的实际路径。如果使用内存字节流(例如来自网页上传),也可以使用 `ocr.Image.from_bytes(byte_data)`——同一引擎会处理它。 + +> **特殊情况:** 大尺寸 TIFF 文件可能占用大量内存。如果出现 `MemoryError`,请考虑先对图像进行降采样,或使用 `ocr_engine.config.max_image_size` 限制尺寸。 + +## 步骤 4:运行 OCR 扫描并获取结果 + +图像已加载且预处理已启用,最后一步是 **run OCR scan**。此调用在后台完成所有繁重工作。 + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +`ocr_result` 对象包含多个有用属性: + +- `ocr_result.text` – 你关心的纯文本字符串。 +- `ocr_result.confidence` – 表示整体可靠性的数值分数(0‑100)。 +- `ocr_result.words` – 包含单词对象及其边界框坐标的列表,便于高亮显示。 + +## 步骤 5:打印提取的文本 + +最后,我们输出结果。在实际应用中,你可能会将文本写入文件、数据库或导入搜索索引。对于本教程,简单的 `print` 就足够。 + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**预期输出**(简易发票示例): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +如果 confidence 较低(< 80),你可能需要重新检查预处理选项,或尝试其他二值化方法,如 `"Sauvola"`。 + +## 额外:可视化预处理流水线(可选) + +有时查看引擎对图像的处理效果会很有帮助。Aspose 允许导出处理后的位图: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +然后你可以将图像嵌入文档中: + +提取文本 OCR 工作流图,展示预处理步骤 + +> **为什么这样做:** 当 OCR 结果不理想时,快速查看 `processed_debug.png` 往往能发现图像是否仍然太暗、仍有倾斜或仍残留噪声。 + +## 常见问题与注意事项 + +- **如果我的文档是多页的怎么办?** + Aspose OCR 按页工作。遍历每页图像并将 `ocr_result.text` 连接起来。 + +- **我可以识别除英语之外的语言吗?** + 可以——在调用 `recognize` 前设置 `ocr_engine.config.language = "fra"`(或任何 ISO‑639‑2 代码)。 + +- **图像大小有上限吗?** + 引擎默认上限为 10 MP。如果需要更大扫描,可增加 `ocr_engine.config.max_image_size`,但请注意内存使用。 + +- **PDF 需要单独的 OCR 引擎吗?** + 对于 PDF,你可以先使用 Aspose.PDF 将每页提取为图像,或使用内置的 PDF OCR 功能。获取图像后,步骤保持不变。 + +## 小结 + +我们已经介绍了如何使用 Aspose OCR for Python **extract text ocr**,包括为引擎授权、调整能够 **improve ocr accuracy** 的设置、加载源文件,最后 **run OCR scan** 以提取干净的文本。完整脚本已可直接复制粘贴,你也了解了每个配置标志的意义。 + +## 接下来怎么做? + +- **尝试不同的二值化方法**(`"Sauvola"`、`"Bradley"`)。某些字体对自适应阈值更敏感。 +- **与搜索引擎集成**(例如 Elasticsearch),利用 confidence 分数对结果进行排序。 +- **结合 OCR 后处理** 库,如 `pyspellchecker`,清理常见的识别错误。 +- **探索批量处理** 数百个扫描件——将步骤封装为函数并传入图像文件夹。 + +随意修改代码,添加自己的日志,或将其嵌入更大的文档管理流水线。如果遇到任何问题,欢迎在下方留言——祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/chinese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..da395a7ee --- /dev/null +++ b/ocr/chinese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-05-03 +description: 如何使用 Aspose OCR Java 对 PDF 进行 OCR。学习如何在 PDF 上运行 OCR、识别 PDF 文本、将 PDF 转换为 + JSON,以及仅用几行代码加载 PDF 进行 OCR。 +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: zh +og_description: 如何使用 Aspose OCR Java 对 PDF 进行 OCR。本指南展示了如何在 PDF 上运行 OCR、识别 PDF 文本、将 + PDF 转换为 JSON,以及快速加载 PDF 进行 OCR。 +og_title: 使用 Aspose OCR 对 PDF 进行 OCR – 完整编程教程 +tags: +- Aspose OCR +- Java +- PDF processing +title: 如何使用 Aspose OCR 对 PDF 进行 OCR – 完整的逐步指南 +url: /zh/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何使用 Aspose OCR 对 PDF 进行 OCR – 完整分步指南 + +是否曾想过 **如何对 PDF 进行 OCR**,而不必与命令行工具搏斗或支付昂贵的 SaaS 费用?你并不孤单。在许多项目中——发票自动化、扫描合同的归档,或构建可搜索的知识库——你都会遇到需要快速、可靠地从 PDF 中提取文本的情况。 + +好消息是?使用 Aspose OCR for Java,你可以 **在 PDF 上运行 OCR**,识别 PDF 页面中的文本,**将 PDF 转换为 JSON**,甚至 **加载 PDF 进行 OCR**,只需几行代码。本教程将完整演示工作流,解释每一步的意义,并提供一段可直接运行的代码示例,帮助你快速集成到自己的项目中。 + +## 你将学到 + +- 如何设置 Aspose OCR 引擎并应用许可证。 +- **加载 PDF 进行 OCR** 的准确方法以及如何将其传递给识别器。 +- 如何一次性 **识别文本 PDF** 中的所有页面。 +- 将完整的 OCR 结果导出为 **JSON** 文件(便于下游 API 使用)以及将单页导出为 **XML**。 +- 处理多页 PDF 或自定义语言包时的技巧、常见坑点和变体。 + +> **Prerequisites** – 你需要 Java 8 或更高版本、有效的 Aspose OCR for Java 许可证文件 (`Aspose.OCR.Java.lic`),以及在类路径中的 Aspose OCR JAR。无需其他外部库。 + +--- + +## 如何 OCR PDF – 初始化 Aspose OCR 引擎 + +首先需要创建 `OcrEngine` 实例并加载许可证。这一步会解锁全部功能并去除评估水印。 + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**为什么这很重要:** +如果没有许可证,Aspose OCR 只能在受限的“试用”模式下运行,页面数量受限且输出会带有水印。提前应用许可证可确保后续流程不受意外限制。 + +--- + +## 在 PDF 上运行 OCR – 加载文档并识别文本 + +现在我们 **加载 PDF 进行 OCR**。Aspose OCR 将 PDF 视为一种特殊的 `PdfDocument` 类型,内部会先将每页转换为图像,再交给识别器处理。 + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**内部到底发生了什么?** +`recognizeDocument` 会遍历每一页,以最佳 DPI 进行光栅化,然后运行 OCR 引擎。结果是一个 `OcrPage` 数组,每个元素包含检测到的文本、置信度分数以及布局信息。这种方式比直接将原始 PDF 字节喂给通用 OCR 库要可靠得多。 + +--- + +## 将 OCR 结果转换为 JSON – 导出完整报告 + +大多数下游系统更喜欢 JSON,因为它易于在 Java、JavaScript、Python,甚至 PowerShell 中反序列化。Aspose OCR 提供了 `JsonExport` 辅助类,可将整个 `OcrPage[]` 数组序列化。 + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**何时使用它?** +如果你需要将 OCR 输出写入搜索索引(Elasticsearch、Solr)或数据管道,JSON 格式能够为每页、每行、每词提供结构化的表示,并包含置信度值。 + +--- + +## 导出第一页为 XML – 保存单独页面 + +有时你只关心单页——比如首页包含标题或发票号。`XmlExport` 类可以将单个 `OcrPage` 导出为整洁的 XML 文件。 + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**为什么是 XML?** +某些遗留系统或企业工作流仍然依赖 XML Schema 进行数据摄取。生成的文件遵循 Aspose 自己的 schema,验证起来非常方便。 + +--- + +## 验证输出 – 检查 JSON 与 XML 文件 + +程序执行完毕后,你应在 `YOUR_DIRECTORY` 中看到两个文件: + +- `report_ocr.json` – 包含页面对象数组。示例片段可能如下: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – 包含第 1 页的相同信息,外层为 `` 标签。 + +使用任意编辑器打开它们,你会看到原始 OCR 字符串、置信度分数以及边界框坐标。如果 JSON 为空,请确认输入的 PDF 实际包含光栅化内容(扫描图像),而不是可选文本——Aspose OCR 只对图像有效。 + +--- + +## 常见坑点 & 专业技巧 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Empty JSON** | PDF 包含原生文本,而非图像。 | 使用 `PdfDocument.fromFile(..., true)` 强制光栅化,或先将页面转换为图像。 | +| **Low confidence** | 源 PDF 分辨率低或压缩严重。 | 在 `recognizeDocument` 前调用 `ocrEngine.getImageProcessingOptions().setDpi(300)` 提高 DPI。 | +| **License not found** | 路径错误或文件缺失。 | 使用绝对路径,或将 `.lic` 文件放在类路径上并调用 `lic.setLicense("Aspose.OCR.Java.lic")`。 | +| **Out‑of‑memory on huge PDFs** | 所有页面一次性加载到内存。 | 分批处理页面:`recognizeDocument(pdfDoc, startPage, endPage)`。 | + +--- + +## 扩展示例 + +- **使用特定语言进行 PDF OCR** – 设置 `ocrEngine.getLanguage().setLanguage(Language.English)` 或加载自定义语言包。 +- **将每页导出为单独的 JSON 文件** – 遍历 `ocrPages`,调用 `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`。 +- **与搜索引擎集成** – 将 JSON 输入 Elasticsearch 的 `attachment` 处理器,实现全文检索。 + +--- + +## 结论 + +现在,你已经拥有一套完整、可投入生产的 **如何对 PDF 进行 OCR** 解决方案,使用 Aspose OCR for Java。通过初始化引擎、加载 PDF、运行 OCR,并导出 **JSON** 与 **XML**,你可以将 OCR 集成到任何后端工作流中——无论是 **在 PDF 上运行 OCR**、**识别文本 PDF**、**将 PDF 转换为 JSON**,还是仅仅 **加载 PDF 进行 OCR**。 + +动手试一试,调节 DPI 或语言设置,观察原本不可搜索的 PDF 变成可检索的资产。想更进一步?尝试将 JSON 索引到 Elasticsearch,或使用 XSLT 对 XML 进行后处理,生成自定义报告。 + +祝编码愉快,愿你的 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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/chinese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..176340585 --- /dev/null +++ b/ocr/chinese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,155 @@ +--- +category: general +date: 2026-05-03 +description: 如何快速运行 OCR:学习使用 Aspose OCR Java 从图像提取文本并从表单识别文本。读取图像进行 OCR 的简单步骤。 +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: zh +og_description: 如何快速运行 OCR:学习使用 Aspose OCR Java 从图像中提取文本并识别表单中的文字。简易的图像 OCR 读取步骤。 +og_title: 如何在表单上运行 OCR – 从图像中提取文本 +tags: +- ocr +- java +- image-processing +title: 如何在表单上运行 OCR——从图像中提取文本 +url: /zh/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在表单上运行 OCR – 从图像中提取文本 + +是否曾想过在扫描文档上 **how to run ocr** 而不需要花费数小时去摆弄晦涩的库?你并不孤单。在许多项目中——无论是数字化发票、归档合同,还是从手写表单中提取数据——能够 **extract text from image** 文件是日常的痛点。 + +事实是:Aspose OCR for Java 让整个流程几乎毫不费力。在本教程中,我们将逐行讲解你需要的代码,以 **recognize text from form** 文件,解释每一步为何重要,并展示如何 **read image for ocr** 结果以及置信度分数。完成后,你将拥有一个可直接运行的 Java 类,能够放入任何 Maven 或 Gradle 项目中。 + +## 你将学到 + +- 设置 Aspose OCR 引擎并应用许可证。 +- 将 JPEG、PNG 或 TIFF 加载到内存中。 +- 运行 OCR 并遍历每一行识别的文本。 +- 发现低置信度的行以进行人工审查。 +- 将示例扩展到多页 PDF 或其他图像格式。 + +不需要任何 Aspose 经验,只需一个基本的 Java 开发环境(JDK 11+ 以及任意你喜欢的 IDE)。让我们开始吧。 + +![how to run ocr example](/images/ocr-demo.png){alt="在扫描表单上运行 OCR 示例"} + +## 步骤 1:初始化 OCR 引擎 – **how to run ocr** + +在进行任何 OCR 操作之前,你必须做的第一件事是创建一个 `OcrEngine` 实例并附加有效的许可证。没有许可证时,库会以演示模式运行,限制可处理的页面数量。 + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**为什么这很重要:** +`OcrEngine` 包含所有配置——语言、检测模式和性能调优。提前设置许可证可以避免在没有许可证时静默回退到试用模式,从而导致输出被截断。 + +## 步骤 2:加载图像 – **extract text from image** + +接下来我们需要一个指向要扫描文件的 `Image` 对象。Aspose 支持多种格式,你可以提供已经转换为 PNG 的扫描 PDF 页面、原始 JPEG,甚至是多页 TIFF。 + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**为什么这很重要:** +将图像加载为 `Image` 对象使引擎能够访问像素数据、DPI 信息和颜色深度——这些都会影响 OCR 的准确性。如果跳过此步骤直接传入原始字节数组,你将失去这些有用的提示。 + +## 步骤 3:运行 OCR – **recognize text from form** + +现在是有趣的部分:实际识别字符。`recognize` 方法返回一个 `RecognitionResult`,其中包含一系列 `Line` 对象,每个对象都有自己的置信度分数。 + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**为什么这很重要:** +调用 `recognize` 会触发一系列内部流程——预处理(去倾斜、噪声去除)、分割、字符分类以及后处理(拼写检查、语言模型)。结果对象将所有这些复杂性抽象出来。 + +## 步骤 4:处理结果 – **read image for ocr** 输出 + +获得 `RecognitionResult` 后,你可以遍历每一行,自动决定保留哪些内容,并标记看起来不可靠的行。对于大多数印刷表单,85% 的置信度阈值是一个不错的起点。 + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**预期输出(示例):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +在上面的示例中,引擎对总金额的最后一位数字不确定,因此我们打印了警告。你可以将这些行输送到 UI 进行手动校正,或记录下来以供后续审查。 + +### 边缘情况与技巧 + +- **Multiple pages(多页):** 如果有多页 PDF,循环遍历每个页面索引并调用 `Image.fromPdf(pdfPath, pageIndex)`。 +- **Different languages(不同语言):** 在调用 `recognize` 之前设置 `engine.getLanguage().setLanguage(Language.Spanish);`。 +- **Image quality(图像质量):** 低分辨率扫描(< 150 DPI)通常导致置信度低于 80%。使用 `image.resize(300, 300)` 放大可以有所帮助,但最好的解决方案是更好的扫描。 +- **Performance(性能):** 对多张图像复用同一个 `OcrEngine` 实例,可减少相较于每次创建新实例的开销。 + +## 常见问题 + +**我可以在无头服务器上运行它吗?** +绝对可以。该库没有 GUI 依赖,因此可以在 Docker 容器或 CI 流水线中正常运行。 + +**如果我还没有许可证怎么办?** +仍然可以调用 `engine.recognize`,但演示模式将在前 2 页后停止并在输出上加水印。非常适合快速测试。 + +**有没有办法提取结构化数据(例如表格)?** +Aspose OCR 提供了 `TableRecognizer` 类,但这超出了本入门指南的范围。掌握基础后,可查阅官方文档了解 `TableRecognizer`。 + +## 总结 – **how to run ocr** 要点 + +我们已经覆盖了在扫描表单上 **how to run ocr** 所需的全部内容:初始化引擎、加载图像、执行识别以及智能处理结果。只需几行 Java 代码,你就可以 **extract text from image** 文件、**recognize text from form** 文档,并通过 **read image for ocr** 输出的置信度分数决定何时需要人工审查。 + +下一步?尝试将 JPEG 换成多页 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/chinese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..f9cdb0f47 --- /dev/null +++ b/ocr/chinese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-05-03 +description: 如何在 Java 中使用 OCR 从 PDF 文件中提取文本。学习识别 PDF 中的文字、将 PDF 转换为文本,并高效处理 OCR 多页 + PDF。 +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: zh +og_description: 如何在 Java 中使用 OCR 从 PDF 文件中提取文本。本指南展示了如何识别 PDF 中的文本、将 PDF 转换为文本,以及处理 + OCR 多页 PDF。 +og_title: 如何在 Java 中使用 OCR – 从多页 PDF 中提取文本 +tags: +- ocr +- java +- pdf +- aspose +title: 如何在 Java 中使用 OCR – 从多页 PDF 中提取文本 +url: /zh/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 Java 中使用 OCR – 从多页 PDF 中提取文本 + +**如何使用 OCR** 在 Java 项目中?如果你曾经需要从 PDF 文件中提取文本,而不依赖 PDF 的内部文本层,那么你来对地方了。本教程将手把手演示一个完整、可直接运行的解决方案,**从 PDF 识别文本**、将 PDF 转换为文本,甚至只需一次调用即可处理 **OCR 多页 PDF**。 + +想象一下,你收到一份扫描的合同——PDF 中嵌入了 12 页的 TIFF。你希望得到可搜索的文本用于索引,但文件中没有嵌入字符。没问题;我们将一步步展示如何实现。 + +> **你将获得:** 一个使用 Aspose.OCR 的可直接运行的 Java 代码片段、每行代码意义的解释、常见坑的提示,以及可以立即验证的示例输出。 + +--- + +## 你需要的准备 + +在开始之前,请确保拥有: + +* **Java 17**(或任意近期 JDK)——代码同样兼容旧版本,但 17 是最佳选择。 +* **Aspose OCR for Java** 库——可从 Aspose 官网下载 JAR,或通过 Maven/Gradle 引入。 +* 一个你想要处理的 **多页 PDF**(或 TIFF)。示例中使用 `contract_multipage.pdf`,放置在 `YOUR_DIRECTORY` 文件夹下。 +* 有效的 **Aspose OCR 许可证文件**(`Aspose.OCR.Java.lic`)。如果没有许可证,库会以评估模式运行,仍可测试但会添加水印。 + +就这些——不需要额外的 OCR 引擎、无需本地二进制文件,只要一个 JAR 和许可证。 + +--- + +![如何在 Java 中使用 OCR 示例](https://example.com/ocr-demo.png "如何在 Java 中使用 OCR – 过程的可视化概览") + +*图片 alt 文本:如何在 Java 中使用 OCR 示例 – 加载、识别、输出文本的可视化概览。* + +--- + +## 步骤 1:设置 OCR 引擎 – **如何使用 OCR** 正确 + +第一步必须创建 OCR 引擎实例并应用许可证。未设置许可证时引擎仍可工作,但输出会带有试用水印。 + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**为什么这很重要:** +`OcrEngine` 是负责图像分析、语言检测和文本提取的核心对象。提前设置许可证可以防止引擎后续回退到试用模式,从而影响识别准确度。 + +--- + +## 步骤 2:加载文档 – **从 PDF 提取文本** 高效 + +Aspose OCR 能直接读取 PDF 和 TIFF 容器。这里我们加载包含扫描图像的多页 PDF。 + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**为什么这很重要:** +`PdfDocument.fromFile` 解析容器并让你以图像的形式访问每一页。该抽象层使 OCR 引擎能够统一处理每页,无论原始格式为何。 + +**提示:** 如果源文件是 TIFF,使用相同的调用即可——Aspose 会自动检测格式,无需额外代码。 + +--- + +## 步骤 3:一次性识别所有页面 – **从 PDF 识别文本** 流畅 + +无需自行遍历页面,只需让引擎一次性处理整个文档。这是在处理 **OCR 多页 PDF** 时将 **PDF 转换为文本** 的最高效方式。 + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**为什么这很重要:** +一次调用 `recognizeDocument` 可以减少因重复初始化引擎而产生的开销。同时,它确保所有页面使用相同的语言设置,这对经常混合字体的法律文档尤为关键。 + +--- + +## 步骤 4:输出识别后的文本 – **将 PDF 转换为文本** 供索引使用 + +所有页面处理完毕后,只需遍历结果并打印提取的字符串。你也可以将其写入文件、数据库,或直接送入搜索索引。 + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**预期输出(截断示例):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +如果 PDF 包含 12 页,你会看到十二个 `--- Page X ---` 区块,每个区块后面跟随 OCR 提取的文本。 + +--- + +## 高级技巧:处理 **OCR 多页 PDF** + +### 1. 调整语言设置 + +默认情况下 Aspose 会自动检测语言,但指定语言可以加快识别速度: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. 控制图像预处理 + +扫描的合同常有噪点。你可以开启去倾斜和二值化: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. 优雅地处理大文件 + +如果处理的 PDF 超过 100 MB,建议采用流式读取页面而不是一次性加载整个文档: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +此模式可降低内存压力,适合批处理任务。 + +### 4. 导出为结构化格式 + +除了纯文本,你还可以导出为 JSON 或 XML,以便后续处理: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## 常见坑点及规避方法 + +| 坑点 | 产生原因 | 解决方案 | +|------|----------|----------| +| **输出为空** | 未正确应用许可证或文件路径错误。 | 检查 `setLicense` 路径并确认文件存在。 | +| **出现乱码** | 语言设置错误或源图像分辨率过低。 | 设置正确的 `Language`,并确保源图像分辨率 ≥300 dpi。 | +| **内存溢出** | 一次性加载了巨大的 PDF。 | 使用上文的流式处理方式。 | +| **部分页面识别失败** | PDF 包含光栅/矢量混合层。 | 在 OCR 前先调用 `pdfDoc.flatten();` 将 PDF 扁平化。 | + +--- + +## 回顾 – 本文覆盖内容 + +* 使用 Aspose 在 Java 中 **如何使用 OCR**。 +* 在一次调用中 **从 PDF(或 TIFF)提取文本**。 +* **从 PDF 识别文本**,无需手动遍历页面。 +* **将 PDF 转换为文本** 并整洁输出。 +* 处理 **OCR 多页 PDF** 的技巧,包括语言优化和内存友好的流式处理。 + +现在,你拥有一段完整、可直接投入生产的代码片段,可嵌入任何 Java 项目。随意调整图像处理选项、修改输出目标,或将结果集成到搜索索引中。 + +--- + +## 后续步骤 + +* **探索 Aspose OCR 的高级功能**——如手写识别或 PDF/A 合规性。 +* **将 OCR 与 PDF 操作结合**(例如在 PDF 中添加隐藏文本层,实现可搜索的 PDF)。 +* **实现批量处理**:读取文件夹中的多个 PDF,并将每个结果写入对应的 `.txt` 文件。 + +如果遇到问题,Aspose 论坛是求助的好去处,API 参考文档也提供了本教程中使用的每个方法的详尽说明。 + +祝编码愉快,尽情将顽固的扫描件转化为可搜索的文本吧! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/chinese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..0a9a32bf6 --- /dev/null +++ b/ocr/chinese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-05-03 +description: 在 Java 中读取二进制文件以加载 Aspose OCR 许可证。学习 FileInputStream 的使用、二进制数据处理以及本分步指南中的实用技巧。 +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: zh +og_description: 在 Java 中读取二进制文件以加载 Aspose OCR 许可证。通过本完整指南,掌握 Java 中 FileInputStream + 与二进制数据处理。 +og_title: 读取二进制文件 Java – 为 Aspose OCR 加载许可证字节 +tags: +- Java +- File I/O +- OCR +title: 在 Java 中读取二进制文件 – 为 Aspose OCR 加载许可证字节 +url: /zh/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 读取二进制文件 Java – 为 Aspose OCR 加载许可证字节 + +是否曾在处理第三方库的许可证时需要 **读取二进制文件 Java**?你并不孤单。大多数 Java 开发者在尝试将 `.lic` 文件喂给 OCR 引擎时都会遇到这个难题,而普通的文本文件处理方式根本行不通。 + +在本教程中,我们将通过一个完整、可运行的示例,演示如何打开二进制许可证文件、将其字节读取到内存中,并将这些字节交给 Aspose OCR for Java。过程中你会看到为什么 `FileInputStream` 是合适的工具,如何处理可能的 `IOException`,以及一些官方文档中未必提及的实用技巧。 + +阅读完本指南后,你将能够以 **读取二进制文件 Java** 的方式创建 `License` 对象,并将其分配给 `OcrEngine`,轻松完成授权。 + +## 本指南涵盖内容 + +- 前置条件:Java 17+、Maven(或 Gradle)以及 Aspose OCR for Java 库。 +- 使用 `FileInputStream` 读取二进制 `.lic` 文件的逐步代码。 +- 对每行代码的解释,帮助你理解 *为什么* 要这样写 *怎么* 做。 +- 边缘情况处理(文件缺失、字节损坏)以及实用的调试技巧。 +- 一个完整的、可直接复制粘贴到 IDE 中运行的代码片段。 + +如果你曾想知道是否需要特殊的 API 来读取许可证文件,答案是响亮的 **不**——只需普通的二进制 I/O 即可。让我们开始吧。 + +## 步骤 1:使用 FileInputStream 读取二进制文件 Java + +首先,我们需要一种可靠的方式从磁盘上的许可证文件中提取原始字节。在 Java 中,`FileInputStream` 正是为此而生的工作马。 + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**为什么这样可行:** `Files.readAllBytes` 在内部会创建一个 `FileInputStream`,读取整个流并在完成后自动关闭。它安全、简洁,避免了“忘记关闭流”的常见陷阱。如果你更喜欢传统写法,也可以直接使用 `FileInputStream` 并配合 try‑with‑resources。 + +### 小技巧 + +如果许可证文件非常大(虽然不太可能,但仍有可能),可以考虑分块读取而不是一次性加载。对于大多数 OCR 许可证文件——通常只有几千字节——一次性读取完全足够。 + +## 步骤 2:为 Aspose OCR 创建 License 对象 + +现在我们已经拿到原始字节,需要将它们转换为 Aspose 可识别的 `License` 实例。库提供了接受字节数组的 `License` 类。 + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**这样做的意义:** 直接传入字节数组可以避免路径相关的问题(例如相对工作目录的混淆),并保持部署的可移植性——只需将 `.lic` 文件放在应用运行的任意位置即可。 + +## 步骤 3:将 License 绑定到 OCR Engine + +拥有 `License` 对象后,最后一步是将其附加到 `OcrEngine`。此步骤确保 OCR 组件以授权模式运行,而不是评估沙箱。 + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **注意:** 某些旧版 Aspose 公开了 `license` 字段而非 setter 方法。如果出现编译错误,请相应地改为 `ocrEngine.license = license;`。 + +## 步骤 4:验证许可证是否成功加载(可选但推荐) + +一次快速的检查可以为后续调试节省大量时间。`License` 类在成功时不会抛异常,但你可以尝试一次无害的 OCR 操作来确认。 + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +如果看到 “License applied successfully” 的提示,说明一切正常。否则,请再次检查文件路径、字节完整性以及使用的 Aspose 版本是否匹配。 + +## 完整可运行示例 + +将上述所有代码片段组合起来,即可得到一个简洁、可直接复制粘贴的程序。把它放进 `Main.java` 并运行即可。 + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**预期输出(假设示例图片存在):** + +``` +License applied successfully – OCR engine is ready. +``` + +如果许可证文件缺失或损坏,你会看到类似下面的明确错误信息: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## 常见坑点及规避方法 + +- **路径混淆:** 相对路径是相对于 JVM 的工作目录,而不是源码文件所在位置。请使用绝对路径,或将 `.lic` 文件与 JAR 放在同一目录下并通过 `getResourceAsStream` 读取。 +- **字节顺序错误:** 切勿使用 `Reader`(面向字符的)读取二进制文件,这会导致数据损坏。务必使用基于 `FileInputStream` 的 API。 +- **版本不匹配:** 某些旧版 Aspose 只支持 `license.setLicense("path/to/file")`,而不是 `setLicenseBytes`。如遇 `NoSuchMethodError`,请查阅对应版本的发布说明。 +- **忘记关闭流:** 如果回退到传统的 `FileInputStream` 用法,请务必使用 try‑with‑resources 块确保流被正确关闭。 + +## 结论 + +现在,你已经掌握了如何 **读取二进制文件 Java** 来加载 Aspose OCR 许可证、创建 `License` 对象并将其注入 `OcrEngine`。整个过程核心在于使用 `FileInputStream`(或更现代的 `Files.readAllBytes`)正确处理二进制数据,并调用几行简洁的 API。 + +接下来,你可以继续进行实际的 OCR 任务——从 PDF、图片乃至扫描文档中提取文本——而无需担心授权层面的障碍。如果你对相关主题感兴趣,建议阅读 **Java FileInputStream**、**binary data handling Java** 和 **read license file Java** 等教程。 + +祝编码愉快,愿你的 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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/chinese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..fabcfccc5 --- /dev/null +++ b/ocr/chinese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-05-03 +description: 学习如何使用 Aspose OCR for Java 识别图像中的文字并将图像转换为文本。包括提高 OCR 准确率的技巧以及在 PNG 文件上运行 + OCR。 +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: zh +og_description: 使用 Aspose OCR for Java 进行图像文字识别的分步指南。学习将图像转换为文本、提升 OCR 准确率以及在 PNG + 上运行 OCR。 +og_title: 使用 Aspose OCR 识别图像中的文本 – Java 教程 +tags: +- OCR +- Java +- Aspose +- Image Processing +title: 使用 Aspose OCR 从图像识别文本 – 完整 Java 指南 +url: /zh/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose OCR 识别图像文字 – 完整 Java 指南 + +是否曾需要**识别图像中的文字**,但不确定哪个库能提供可靠的结果?你并不孤单——许多开发者在首次尝试从扫描的 PDF、收据或实验报告中提取数据时都会遇到这个难题。好消息是,Aspose OCR for Java 让整个过程变得轻而易举,你甚至可以仅用几行代码**将图像转换为文字**。 + +在本教程中,我们将逐步讲解你需要了解的全部内容:从加载用于 OCR 的图像、调整设置以**提高 OCR 准确率**,到最终**在 PNG 文件上运行 OCR**并打印提取的文字。内容简洁实用,提供可直接在项目中使用的可运行示例。 + +--- + +## 你需要的准备 + +在开始之前,请确保你的机器上具备以下条件: + +| 先决条件 | 原因 | +|--------------|--------| +| Java 17 (or newer) | Aspose OCR 支持 Java 8+,但使用最新的 JDK 可获得更佳性能。 | +| Aspose OCR for Java library (`aspose-ocr.jar`) | 核心引擎,负责主要工作。 | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | 有效的 Aspose OCR 许可证文件 (`Aspose.OCR.Java.lic`)。启用全部功能;否则会出现试用水印。 | +| An image file (PNG, JPEG, TIFF, etc.) containing clear text | 包含清晰文字的图像文件(PNG、JPEG、TIFF 等)。我们将使用 `lab_report.png` 作为示例。 | +| A custom dictionary (optional) | 自定义词典(可选)。可显著提升对领域特定词汇(如 “hemoglobin”)的识别准确率。 | + +如果上述内容有陌生之处,请不要慌——安装 JAR 包和创建简单的文本文件都是微不足道的操作,我们稍后会进行说明。 + +## 步骤 1 – 设置项目并导入依赖 + +首先,创建一个新的 Maven(或 Gradle)项目并添加 Aspose OCR 依赖。Maven 用户可以将以下代码片段粘贴到 `pom.xml` 中: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +如果你更喜欢使用 Gradle,则等价代码如下: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **专业提示:** 关注版本号;较新版本通常包含直接影响**提高 OCR 准确率**的 bug 修复。 + +接下来,创建一个名为 `OcrDemo.java` 的 Java 类。在文件顶部导入所需的类: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## 步骤 2 – 初始化 OCR 引擎并应用许可证 + +在告知引擎已获得许可证之前,无法**在 PNG 文件上运行 OCR**。下面演示如何操作: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +为什么需要额外的 `License` 对象?Aspose 将许可证处理与引擎分离,以便你可以在运行时切换许可证,这在多租户 SaaS 场景中非常实用。 + +## 步骤 3 – 加载自定义词典(可选但强大) + +如果你处理医学术语、化学式或品牌名称等,自定义词典可以显著**提高 OCR 准确率**。词典是每行一个单词的纯文本文件: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **原因:** OCR 引擎会利用词典对语言模型进行偏置,使其更倾向于你关心的词汇,从而减少诸如 “hemo­globin” → “hemoglobin” 的误识别。 + +如果没有词典,只需跳过此行——Aspose 使用内置语言包也能表现良好。 + +## 步骤 4 – 加载要处理的图像 + +现在我们真正**加载用于 OCR 的图像**。Aspose 支持多种格式,但 PNG 是无损的,因而是扫描文档的安全选择。 + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **特殊情况:** 如果图像体积很大(超过 5 MB),建议先进行缩小以加快处理速度。`Image` 类提供了 `resize` 方法,可在识别前调用。 + +## 步骤 5 – 运行 OCR 过程并获取文本 + +准备就绪后,启动 OCR 引擎。`recognize` 方法返回一个 `OcrResult` 对象,其中包含提取的字符串、置信度分数,若需要布局信息,还会提供边界框。 + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +运行程序后,你应该会看到类似如下的输出: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +就这样——你已成功使用 Aspose OCR **识别图像文字**并**将图像转换为文字**。 + +## 步骤 6 – 常见问题及解决方案 + +即使使用了可靠的库,也可能会遇到一些小问题: + +| 症状 | 可能原因 | 解决办法 | +|---------|--------------|-----| +| 空白输出 | 许可证未应用或已过期 | 检查 `Aspose.OCR.Java.lic` 的路径,并确保其与版本匹配。 | +| 字符乱码 | 图像分辨率低或压缩过度 | 使用更高分辨率的源图像或对图像进行预处理(二值化、去倾斜)。 | +| 缺少领域特定词汇 | 没有自定义词典 | 添加包含缺失词汇的词典文件,每行一个词。 | +| 大批量处理慢 | 未使用多线程 | 创建 `OcrEngine` 实例池(线程安全),并并行处理图像。 | + +## 步骤 7 – 扩展示例:将结果保存到文件 + +如果需要将提取的文本保存以供后续分析,只需将其写入文件: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +现在你拥有一个可复用的流水线,能够**加载 OCR 图像**、提取内容并将其存储到任意位置。 + +## 额外内容:在文件夹中对多个 PNG 文件运行 OCR + +实际项目常需处理数十个扫描件。下面是一个快速循环,遍历目录中的每个 `.png` 文件: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +请记得复用同一个 `ocrEngine` 实例——为每个文件创建新实例会导致不必要的开销。 + +## 结论 + +现在,你已经拥有一个功能完整、端到端的解决方案,使用 Aspose OCR for Java **识别图像文字**。从加载图像、可选地使用自定义词典来**提高 OCR 准确率**,再到**在 PNG 文件上运行 OCR**并保存输出,代码已准备好直接嵌入任何 Java 项目。 + +接下来可以尝试将提取的文本输入自然语言处理管道,或尝试对手写笔记进行 OCR(Aspose 也提供手写模式)。可能性无限,而你已经迈出了第一步。 + +祝编码愉快!如果遇到任何问题,欢迎在下方留言——我们一起排查。 + +![控制台中 OCR 结果的截图 – 识别图像文字](/images/ocr_console_result.png "识别图像文字示例") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/czech/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..1414ff32f --- /dev/null +++ b/ocr/czech/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Extrahujte tabulky z obrázku pomocí Aspose OCR Java. Naučte se načíst + obrázek pro OCR, extrahovat tabulku z PNG, převést text tabulky v obrázku a rychle + rozpoznat obrázek účtenky. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: cs +og_description: Extrahujte tabulky z obrázku pomocí Aspose OCR Java. Tento průvodce + ukazuje, jak načíst obrázek pro OCR, extrahovat tabulku z PNG, převést text tabulky + z obrázku a rozpoznat obrázek účtenky. +og_title: Extrahovat tabulky z obrázku – Aspose OCR Java tutoriál +tags: +- Aspose OCR +- Java +- Image Processing +title: Extrahovat tabulky z obrázku – Kompletní průvodce Aspose OCR Java +url: /cs/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahování tabulek z obrázku – Kompletní průvodce Aspose OCR pro Javu + +Už jste někdy potřebovali **extrahovat tabulky z obrázku** soubory, ale narazili na překážku? Možná máte naskenovanou účtenku nebo vyfocenou fakturu a tabulková data jsou ukryta v PNG. V tomto tutoriálu uvidíte přesně, jak *načíst obrázek pro OCR*, převést ten obrázek na strukturované řádky a **převést text tabulky z obrázku** na něco, s čím můžete pracovat v Javě. + +Provedeme vás každým krokem, od licencování motoru Aspose OCR až po výpis každé buňky detekovaných tabulek. Na konci budete schopni **rozpoznat soubory s obrázkem účtenky** a vytáhnout jejich tabulky bez potíží. + +## Co se naučíte + +- Jak inicializovat motor Aspose OCR a použít vaši licenci. +- Proč povolení detekce tabulek je klíčem k **extrahování tabulek z obrázku**. +- Přesný kód potřebný k **načtení obrázku pro OCR** a spuštění rozpoznání na PNG. +- Způsoby, jak zacházet s více tabulkami, skeny s nízkým rozlišením a běžnými úskalími. +- Jak **převést text tabulky z obrázku** do formátu vhodného pro tisk (nebo pro databázi). + +Žádná externí dokumentace není potřeba — vše, co potřebujete, je zde. + +## Požadavky + +- Java 17 nebo novější (kód používá moderní modulový systém). +- Licenční soubor Aspose OCR pro Java (`Aspose.OCR.Java.lic`). Pokud jen experimentujete, funguje také dočasný evaluační klíč. +- PNG obrázek, který obsahuje jasnou tabulku (např. `receipt_with_table.png`). +- Maven nebo Gradle pro stažení závislosti Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Umístěte licenční soubor vedle složky `src/main/resources`, aby cesta zůstala stabilní napříč prostředími. + +--- + +## Krok 1 – Inicializace OCR motoru pro **extrahování tabulek z obrázku** + +Než může motor něco dělat, musí vědět, že jste oprávněný uživatel. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Proč je to důležité:* Bez platné licence běží OCR motor v režimu zkušební verze, což může ořezávat výsledky nebo přidávat nechtěné vodoznaky — což činí extrakci tabulek nespolehlivou. + +--- + +## Krok 2 – Povolení detekce tabulek (**extrahovat tabulku z png**) + +Detekce tabulek není ve výchozím nastavení zapnutá; musíte přepnout přepínač. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Povolení tohoto příznaku říká Aspose OCR, aby považoval skupiny zarovnaného textu za řádky a sloupce, což je přesně to, co potřebujete, když chcete **extrahovat tabulky z obrázku** soubory ve formátu PNG. + +--- + +## Krok 3 – **Načíst obrázek pro OCR** a **rozpoznat obrázek účtenky** + +Nyní skutečně vložíme obrázek do motoru. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Pokud řešíte scénář **rozpoznání obrázku účtenky**, možná budete chtít předzpracovat obrázek (odklonit, zvýšit kontrast). To je mimo rozsah tohoto rychlého průvodce, ale stojí za prozkoumání u špinavých skenů. + +--- + +## Krok 4 – Zpracování výsledku OCR a **převod textu tabulky z obrázku** + +Objekt `OcrResult` může obsahovat jednu nebo více tabulek. Projděme je a vytiskněme každou buňku. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**What this does:** + +- Kontroluje, zda byly nalezeny nějaké tabulky; pokud ne, navrhne úpravu kvality. +- Pro každou tabulku vytiskne řádky s buňkami oddělenými tabulátorem, což je pohodlný formát pro import do CSV. +- Volání `Cell::getText` je jádrem **převodu textu tabulky z obrázku** — získává surový OCR řetězec z každé buňky. + +### Očekávaný výstup + +Předpokládejme, že `receipt_with_table.png` obsahuje jednoduchou tabulku 3 × 2, uvidíte něco jako: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Pokud obrázek obsahuje více tabulek, každá bude oddělena prázdným řádkem. + +--- + +## Krok 5 – Ověření extrahovaných tabulek a řešení okrajových případů + +### Běžné úskalí + +| Problém | Proč k tomu dochází | Rychlé řešení | +|-------|----------------|-----------| +| **Nebyla nalezena žádná tabulka** | Image too blurry or low contrast | Apply binarization (`ImageProcessing.applyThreshold`) before OCR | +| **Sloučené buňky** | Table lines are faint, OCR treats them as one block | Increase `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Nesprávné pořadí sloupců** | Skewed image causing mis‑alignment | Use `ImageProcessing.deskew` or rotate the image by 90° | + +### Co dělat dál + +- **Export do CSV** – nahraďte `System.out.println(line);` pomocí `FileWriter` pro uložení dat. +- **Zavést do databáze** – mapujte každý řádek na POJO a použijte JPA pro persistenci. +- **Kombinovat s dalšími API** – pro zpracování účtenek můžete také extrahovat součty pomocí regulárních výrazů na OCR textu. + +## Kompletní funkční příklad (připravený ke kopírování a vložení) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Spusťte tento program, nasměrujte jej na PNG, který obsahuje jasnou tabulku, a sledujte, jak se konzole zaplní přehledně formátovanými řádky. + +## Závěr + +Nyní máte robustní, end‑to‑end řešení pro **extrahování tabulek z obrázku** souborů pomocí Aspose OCR pro Javu. Od licencování po **načtení obrázku pro OCR**, povolení **extrahování tabulky z png** a nakonec **převod textu tabulky z obrázku**, každý krok je pokrytý vysvětleními a praktickými tipy. + +Dále zkuste propojit výstup do CSV souboru, vložit řádky do relační databáze nebo zkombinovat krok OCR s rutinou pro extrakci celkové částky z účtenky. Stejný vzor funguje pro faktury, ceníky i jakýkoli naskenovaný dokument, který skrývá data za mřížkou. + +Máte otázky ohledně zpracování nízkého rozlišení účtenek nebo škálování na dávkové zpracování? Zanechte komentář níže a šťastné programování! + +![Příklad extrahování tabulek z obrázku](https://example.com/assets/extract-tables-from-image.png "Extrahování tabulek z obrázku – ukázkový výstup") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/czech/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..bd403a15b --- /dev/null +++ b/ocr/czech/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Extrahujte text z obrázku v Pythonu pomocí Aspose OCR. Naučte se krok + za krokem tutoriál OCR v Pythonu s podporou smíšených latinských a cyrilických znaků. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: cs +og_description: Rychle extrahujte text z obrázku v Pythonu. Tento průvodce ukazuje, + jak použít Aspose OCR v Pythonu pro smíšené latinsko‑cyrilské obrázky. +og_title: Extrahování textu z obrázku v Pythonu – Kompletní průvodce Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Extrahování textu z obrázku v Pythonu – Kompletní průvodce Aspose OCR +url: /cs/python-java/general/extract-text-from-image-python-complete-aspose-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 Pythonu – Kompletní průvodce Aspose OCR + +Už jste někdy potřebovali **extrahovat text z obrázku v Pythonu**, ale nebyli jste si jisti, která knihovna zvládne směs latinských a cyrilických znaků? Nejste v tom sami — vývojáři často narazí na tento problém při OCR vícejazykových screenshotů. + +Dobrou zprávou je, že Aspose OCR pro Python dělá celý proces téměř bezbolestný. V tomto tutoriálu vás provedeme instalací balíčku, aplikací licence, načtením obrázku se smíšeným jazykem a nakonec vytažením rozpoznaného textu během několika řádků kódu. Na konci budete mít připravený skript, který můžete vložit do libovolného projektu. + +## Co se naučíte + +- Jak nastavit **Aspose OCR Python** ve virtuálním prostředí. +- Proč naznačování jazyků (např. latinského a cyrilického) urychluje detekci. +- Přesný kód potřebný k **extrahování textu z obrázku v Pythonu** jedním voláním funkce. +- Běžné úskalí při práci s OCR pro smíšené jazyky a jak se jim vyhnout. + +### Požadavky + +- Python 3.8 nebo novější nainstalovaný na vašem počítači. +- Licenční soubor Aspose OCR (`Aspose.OCR.Java.lic`). Bezplatná zkušební verze funguje pro testování, ale licencovaný soubor odstraňuje vodoznaky. +- Obrázek PNG/JPEG, který obsahuje jak latinské, tak cyrilické znaky (budeme ho nazývat `mixed_latin_cyrillic.png`). + +Pokud máte tyto položky zaškrtnuté, můžete začít — žádné další frameworky ani těžké závislosti nejsou potřeba. + +--- + +## Krok 1 – Extrahování textu z obrázku v Pythonu: Instalace Aspose OCR + +First thing’s first: get the library from PyPI and make sure your environment can locate the license file. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Tip:** Pokud narazíte na chybu oprávnění, přidejte `--user` k příkazu `pip install` nebo spusťte terminál jako administrátor. + +Now that the package is on your system, we’ll import it and point the engine at our license. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Why do we need a license at this stage? Without it the engine runs in **evaluation mode**, which limits the number of pages and adds a watermark to the output. Supplying the license up‑front ensures the later `recognize` call returns clean text. + +--- + +## Krok 2 – Načtení obrázku se smíšeným latinským‑cyrilickým obsahem + +Next, we bring the picture into memory. Aspose OCR works with its own `Image` class, which abstracts away the underlying file format. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +If you’re wondering whether other formats work—yes, JPEG, BMP, TIFF, and even PDF are supported. Just swap the file extension and the `from_file` method will handle the rest. + +--- + +## Krok 3 – Naznačte jazyky pro rychlejší detekci (volitelné, ale užitečné) + +When you know the languages present in the image, you can give the engine a heads‑up. This isn’t mandatory, but it **significantly reduces processing time** and improves accuracy for mixed‑language OCR. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +The hint list accepts any language supported by Aspose OCR (e.g., `"Arabic"`, `"Japanese"`). If you skip this step, the engine will try every built‑in language, which can be slower on large batches. + +--- + +## Krok 4 – Spusťte OCR engine a extrahujte text + +Now the moment of truth: actually recognise the characters. The `recognize` method returns an `OcrResult` object that holds the plain text, confidence scores, and even bounding boxes if you need them later. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Why this works:** Under the hood Aspose OCR combines a neural‑network text detector with language‑specific classifiers. By feeding it an `Image` object, you bypass any need for manual preprocessing like binarisation. + +--- + +## Krok 5 – Zobrazte extrahovaný text + +Finally, let’s print the result to the console. In a real application you might write it to a file, push it to a database, or feed it into a translation API. + +```python +print("Recognised text:") +print(extracted_text) +``` + +When you run the script, you should see something like: + +``` +Recognised text: +Hello мир! This is a test. +``` + +That output confirms we successfully **extrahovat text z obrázku v Pythonu**, handling both Latin and Cyrillic characters in a single pass. + +--- + +## Kompletní funkční příklad + +Below is the complete script you can copy‑paste into a file called `extract_ocr.py`. Just replace the placeholder paths with your actual directories. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Save the file, activate your virtual environment, and run: + +```bash +python extract_ocr.py +``` + +You should see the recognised text printed, confirming the script works end‑to‑end. + +--- + +## Často kladené otázky a okrajové případy + +**Co když je obrázek rozmazaný?** +Aspose OCR includes built‑in de‑skewing and noise reduction, but for heavily degraded photos you might want to pre‑process with OpenCV (e.g., apply a Gaussian blur and threshold). The `Image` class can also accept a NumPy array, so you can chain custom filters before calling `recognize`. + +**Mohu zpracovat celý adresář obrázků?** +Absolutely. Wrap the logic in a `for` loop, change `from_file` to read each filename, and store the results in a dictionary. Remember to respect API rate limits if you’re using the cloud version. + +**Potřebuji samostatnou licenci pro každý jazyk?** +No, a single Aspose OCR license covers all supported languages. The `language_hints` list is just a performance hint. + +**Co s PDF vstupem?** +Replace `Image.from_file` with `ocr.Image.from_file("document.pdf")`. The OCR engine will automatically rasterise each page and return concatenated text. + +--- + +## Závěr + +We’ve just shown a concise, production‑ready way to **extrahovat text z obrázku v Pythonu** using Aspose OCR. The steps—install, license, load, hint languages, recognise, and display—cover everything you need to get reliable results for mixed Latin‑Cyrillic content. + +From here you could explore advanced topics like **image to text conversion** for batch processing, integrate the output with a **Python OCR tutorial** on natural‑language processing, or experiment with other language hints for multilingual documents. The sky’s the limit, and the code is already in your hands. + +Got a different use case or ran into an issue? Drop a comment, share your experience, and let’s keep the conversation going. Happy coding! + +![Příklad extrahování textu z obrázku v Pythonu](/images/extract-text-from-image-python.png "Snímek obrazovky ukazující výstup OCR – extrahování textu z obrázku v Pythonu") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/czech/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..09e289c01 --- /dev/null +++ b/ocr/czech/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Okamžitě extrahujte text z obrázku pomocí Aspose OCR. Naučte se definovat + oblast zájmu, načíst obrázek pro OCR a extrahovat text z faktury během několika + minut. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: cs +og_description: Extrahujte text z obrázku pomocí Aspose OCR. Tento průvodce ukazuje, + jak definovat oblast zájmu, načíst obrázek pro OCR a efektivně extrahovat text z + faktury. +og_title: Extrahovat text z obrázku pomocí Aspose OCR – kompletní tutoriál +tags: +- ocr +- python +- image-processing +title: Extrahování textu z obrázku pomocí Aspose OCR – krok za krokem +url: /cs/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahovat text z obrázku pomocí Aspose OCR – krok za krokem průvodce + +Potřebujete **rychle extrahovat text z obrázku**? Nejste sami – vývojáři se neustále potýkají s šumem ve skenech, účtenkami a fakturami. V tomto tutoriálu projdeme kompletní řešení, které nejen ukazuje, jak *extrahovat text z obrázku*, ale také demonstruje, jak **definovat oblast zájmu**, **načíst obrázek pro OCR** a získat přesně tu řádku, kterou potřebujete z faktury. + +Probereme vše od instalace knihovny Aspose OCR až po řešení okrajových případů, jako jsou natočené stránky. Na konci budete mít spustitelný skript, který v jediném volání získá požadovaný text – žádné ruční ořezávání není potřeba. + +## Co se naučíte + +- Jak **načíst obrázek pro OCR** pomocí Aspose Python API. +- Nejlepší způsob, jak **definovat oblast zájmu** (ROI), abyste zpracovávali jen tu část obrázku, která je podstatná. +- Jak **extrahovat text z faktury** bez načítání celé stránky. +- Tipy pro **zpracování obrázku s OCR** efektivně a jak se vyhnout běžným úskalím. + +**Prerequisites** – aktuální prostředí Python 3.9+, platný licenční soubor Aspose OCR a obrázek (např. PNG faktury). Žádné další externí nástroje nejsou vyžadovány. + +--- + +## Krok 1 – Inicializace OCR enginu (primární nastavení) + +Než budete moci **zpracovávat obrázek s OCR**, potřebujete instanci enginu, která obsahuje vaši licenci. Tento krok je klíčový, protože nelicencovaný engine vrátí jen omezený výsledek. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Why this matters*: Objekt `OcrEngine` je srdcem knihovny; spravuje jazykové modely, předzpracování obrázku a licencování. Nastavení licence předem zajišťuje plnou přesnost a žádné vodoznaky. + +--- + +## Krok 2 – Načtení obrázku pro OCR + +Nyní, když je engine připraven, musíme **načíst obrázek pro OCR**. Aspose podporuje mnoho formátů (PNG, JPEG, TIFF), ale použití `Image.from_file` zaručuje, že obrázek bude správně dekódován. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: Uchovávejte své soubory obrázků pod 5 MB pro nejrychlejší zpracování. Větší soubory lze zmenšit pomocí `image.resize(width, height)` před OCR. + +--- + +## Krok 3 – Definování oblasti zájmu (ROI) + +Většina faktur obsahuje spoustu nepodstatného textu – adresní bloky, patičky atd. **Definováním oblasti zájmu** říkáme enginu, aby hledal jen tam, kde se nachází částka nebo datum, což zvyšuje rychlost i přesnost. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*How it works*: Třída `Rectangle` virtuálně ořízne obrázek; OCR engine nikdy nevidí pixely mimo obdélník, takže šum mimo ROI je ignorován. + +--- + +## Krok 4 – Rozpoznání textu uvnitř ROI + +S připraveným enginem, obrázkem a ROI můžeme konečně **extrahovat text z obrázku**. Metoda `recognize` vrací objekt `OcrResult` obsahující detekovaný řetězec a skóre důvěry. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Expected output** (příklad typické řádky celkové částky na faktuře): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Pokud je ROI správně umístěna, uvidíte jen řádek, který potřebujete – nic dalšího. + +--- + +## Krok 5 – Kompletní funkční příklad (připravený ke kopírování a vložení) + +Níže je celý skript, který spojuje všechny předchozí kroky. Uložte jej jako `extract_invoice_roi.py` a spusťte `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Spusťte skript a v konzoli by se měla vypsat cílená řádka. Pokud získáte prázdný řetězec, zkontrolujte souřadnice ROI – několik pixelů posunutých může text úplně vyloučit. + +--- + +## Krok 6 – Běžné varianty a okrajové případy + +### a) Různé rozvržení faktur +Faktury od různých dodavatelů často posouvají pole s celkovou částkou. Pro **zpracování obrázku s OCR** napříč více rozvrženími zvažte: + +- **Multiple ROIs**: Spusťte engine sekvenčně s několika obdélníky a vyberte výsledek s nejvyšší důvěrou. +- **Dynamic ROI detection**: Použijte lehkou knihovnu pro zpracování obrazu (např. OpenCV) k nalezení štítku „Total“ a poté vypočítejte ROI relativně k němu. + +### b) Otočené nebo zkosené obrázky +Pokud je sken nakloněn, zavolejte `image.rotate(angle)` před rozpoznáním: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR také nabízí automatické vyrovnání, ale ruční rotace vám dává přesnější kontrolu. + +### c) Ne‑latinské znaky +Výchozí jazykový model je angličtina. Pro **extrahování textu z faktury** psané v jiném jazyce nastavte jazyk před rozpoznáním: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Velké PDF soubory +Při práci s vícestránkovými PDF nejprve každou stránku převést na obrázek (Aspose PDF → Image) a poté použít stejnou ROI logiku pro každou stránku. + +--- + +## Krok 7 – Tipy na výkon a profesionální tipy + +- **Cache the engine**: Vytváření `OcrEngine` opakovaně v cyklu zpomaluje. Vytvořte jej jednou a znovu použijte. +- **Batch processing**: Pokud máte desítky faktur, zabalte volání OCR do `ThreadPoolExecutor` pro paralelizaci I/O‑vazebných úloh. +- **Confidence check**: `ocr_result.confidence` vrací číslo mezi 0 a 1. Odmítněte výsledky pod 0.85 a přejděte na větší ROI nebo manuální revizi. + +> **Watch out**: Nastavení ROI příliš malého může oříznout znaky, což vede k poškozenému výstupu. Vždy otestujte na několika vzorových fakturách před rozšířením. + +--- + +## Závěr + +Nyní máte solidní, produkčně připravenou metodu pro **extrahování textu z obrázku** pomocí Aspose OCR, včetně způsobu **definování oblasti zájmu**, **načtení obrázku pro OCR** a spolehlivého **extrahování textu z faktury**. Omezením OCR na úzkou ROI zvýšíte jak rychlost, tak přesnost – ideální pro hromadné zpracování tisíců účtenek. + +Jste připraveni na další krok? Zkuste integrovat tento skript do Flask API, aby vaše webová aplikace mohla nahrát fakturu a okamžitě vrátit celkovou částku. Nebo experimentujte s více ROI pro získání data, čísla faktury a jména dodavatele najednou. Možnosti jsou neomezené a s pokrytými základy jste dobře vybaveni pro jakýkoli OCR úkol. + +Happy coding, and may your extracted text always be clean! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Workflow diagram showing how to extract text from image using Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/czech/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..af1ca35e1 --- /dev/null +++ b/ocr/czech/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-05-03 +description: Extrahujte text z obrázku pomocí asynchronního OCR v Pythonu. Naučte + se, jak převést tif na text, načíst obrázek pro OCR a efektivně rozpoznat text z + obrázku. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: cs +og_description: Extrahujte text z obrázku pomocí asynchronního OCR v Pythonu. Tento + průvodce ukazuje, jak převést tif na text, načíst obrázek pro OCR a rozpoznat text + z obrázku. +og_title: Extrahování textu z obrázku pomocí asynchronního OCR v Pythonu – kompletní + průvodce +tags: +- OCR +- Python +- AsyncIO +title: Extrahování textu z obrázku pomocí Python Async OCR – Kompletní průvodce +url: /cs/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahování textu z obrázku pomocí Python Async OCR – Kompletní průvodce + +Potřebujete rychle **extrahovat text z obrázku**? S async OCR v Pythonu to můžete udělat během několika řádků kódu. Ať už pracujete s obrovským .tif skenem nebo s několika JPEGy, tento tutoriál vám ukáže, jak převést tif na text, načíst obrázek pro OCR a nakonec rozpoznat text z obrázku, aniž byste blokovali svůj event loop. + +Věc je taková—většina vývojářů sáhne po synchronní knihovně a pak zírá na zamrzlé UI, zatímco engine zpracovává pixely. V tomto průvodci to obrátíme tím, že použijeme asynchronní API Aspose OCR Cloud, takže vaše aplikace zůstane responzivní. Na konci budete mít spustitelný skript, který vytáhne text z libovolného podporovaného formátu obrázku, a pochopíte, proč se každý krok provádí. + +## Co se naučíte + +- Jak nastavit Aspose OCR Cloud SDK pro Python. +- Přesný kód potřebný k **načtení obrázku pro OCR** a spuštění asynchronního úkolu rozpoznávání. +- Tipy pro práci s velkými .tif soubory a zvláštnostmi licencování. +- Způsoby, jak **extrahovat text z obrázku** bezpečně, i když služba vrátí chyby. +- Kompletní, připravený k zkopírování příklad, který můžete vložit do svého projektu. + +> **Předpoklad**: Python 3.8+ a licenční soubor Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Žádné další balíčky třetích stran nejsou vyžadovány. + +--- + +![pracovní postup extrahování textu z obrázku](workflow.png){: .align-center alt="pracovní postup extrahování textu z obrázku"} + +## Extrahování textu z obrázku – Přehled Async OCR + +Než se ponoříme do kódu, rozbalme tok. Když zavoláte `recognize_async`, SDK pošle obrázek do Aspose cloud, spustí úlohu na pozadí a vrátí vám objekt `Task`. Čekání na tento úkol vám poskytne `OcrResult` obsahující čistý textový výstup obrázku. Protože volání je asynchronní, můžete spustit více úloh paralelně—ideální pro dávkové zpracování velkých archivů naskenovaných dokumentů. + +### Proč používat Async? + +- **Non‑blocking I/O** – Váš event loop zůstane volný pro další úkoly (např. obsluhu HTTP požadavků). +- **Scalability** – Spusťte najednou desítky rozpoznání; cloud provede těžkou práci. +- **Responsiveness** – UI aplikace se nezamrzne při čekání na OCR engine. + +Nyní, když je „proč“ jasné, podívejme se na **jak**. + +## Převod TIF na text pomocí Aspose OCR + +Častým úskalím je předpoklad, že každá OCR knihovna nativně podporuje .tif. Aspose ano, ale stále musíte předat `Image` objekt. SDK abstrahuje formát, takže můžete jednoduše ukázat na cestu k souboru. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Vysvětlení klíčových řádků** + +- `ocr_engine.license = ...` – Bez platné licence cloud vrací chybu 403. Ujistěte se, že soubor `.lic` je přístupný z pracovního adresáře skriptu. +- `ocr.Image.from_file(image_path)` – Tento krok **načte obrázek pro OCR**; SDK automaticky detekuje formát, takže nemusíte předem převádět .tif. +- `recognize_async` – Vrací úkol kompatibilní s coroutine. Můžete spustit několik z nich v `gather` volání, pokud máte dávku. + +> **Tip**: Pokud zpracováváte gigabajtové TIFFy, zvažte jejich rozdělení na stránky nejprve. `Image.from_file` od Aspose může přijmout index stránky, což snižuje zatížení paměti. + +## Asynchronní rozpoznání textu z obrázku + +Podívejme se, jak byste volali funkci z typického skriptu. Vstupní bod `asyncio.run` je nejjednodušší způsob, jak spustit coroutine, když nejste již uvnitř event loop (např. v jednoduchém CLI nástroji). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Co očekávat** + +Spuštění skriptu na čistém, vysokém rozlišení skenu obvykle vrátí víceřádkový řetězec odpovídající tištěné stránce. Pokud je obrázek šumivý, Aspose se stále snaží jej vyčistit, ale můžete vidět poškozené znaky. V takovém případě zvažte předzpracování pomocí OpenCV (např. prahování) před předáním souboru OCR engine. + +### Elegantní zpracování chyb + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Zachycení `OcrException` zajistí, že váš program nezhavaruje, když cloud vrátí chybu—něco, co často zaskočí nováčky, kteří zapomenou na výpadky sítě. + +## Načtení obrázku pro OCR – Praktické tipy + +1. **File Path vs. Bytes** – SDK přijímá cestu k souboru, ale můžete také načíst z objektu `bytes`, pokud obrázek žije v paměti (`ocr.Image.from_bytes`). To je užitečné, když jste již soubor načetli ze S3 nebo databáze. +2. **Supported Formats** – Kromě .tif Aspose podporuje PDF, BMP, GIF a dokonce i více‑stránkové TIFFy. Použijte `Image.from_file("doc.pdf")` pro přímé OCR PDF. +3. **Performance** – Pro dávkové úlohy znovu použijte stejnou instanci `OcrEngine`; vytvoření nového enginu pro každý soubor přidává zbytečnou režii. + +## Kompletní funkční příklad (všechny kroky v jednom skriptu) + +Níže je kompletní, připravený ke spuštění skript, který zahrnuje licencování, zpracování chyb a jednoduchý parser argumentů příkazové řádky. Zkopírujte jej, upravte cestu k licenci a jste připraveni. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Očekávaný výstup** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Pokud obrázek obsahuje jednoduchý odstavec, konzole zobrazí stejné řádky a zachová zalomení řádků. Pro více‑stránkové TIFFy SDK spojí stránky v pořadí. + +## Často kladené otázky (FAQ) + +**Q: Funguje to s jinými async frameworky jako FastAPI?** +A: Rozhodně. Nahraďte volání `asyncio.run` za `await async_ocr(path)` ve vašem endpointu a FastAPI se postará o event loop za vás. + +**Q: Co když potřebuji zpracovat stovky souborů najednou?** +A: Použijte `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Mohu extrahovat text z PDF chráněného heslem?** +A: Ne přímo. Nejprve musíte PDF odemknout (např. pomocí `pikepdf`) a pak předat dešifrované bajty do `ocr.Image.from_bytes`. + +**Q: Jak zacházet s jazyky jinými než angličtinou?** +A: Nastavte jazyk před rozpoznáním: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose podporuje více než 60 jazyků; podívejte se do dokumentace na přesné identifikátory. + +## Závěr + +Nyní máte robustní řešení **extrahování textu z obrázku**, které využívá Python `asyncio` a asynchronní API Aspose OCR Cloud. Dodržením výše uvedených kroků můžete **převést tif na text**, **načíst obrázek pro OCR** a **rozpoznat text z obrázku** neblokujícím způsobem—ideální pro nástroje příkazové řádky i služby s vysokým provozem. + +Co dál? Zkuste dávkovat složku se skeny, experimentujte s nastavením jazyků nebo přesměrujte výstup OCR do následného NLP pipeline. Obloha je + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/czech/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..6a385c21a --- /dev/null +++ b/ocr/czech/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Rychle extrahujte text pomocí Aspose OCR. Naučte se, jak zlepšit přesnost + OCR, načíst obrázek pro OCR, předzpracovat obrázek pro OCR a spustit OCR sken v + Pythonu. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: cs +og_description: Rychle extrahujte text pomocí Aspose OCR. Naučte se, jak zlepšit přesnost + OCR, načíst obrázek pro OCR, předzpracovat obrázek pro OCR a spustit OCR sken v + Pythonu. +og_title: Extrahování textu OCR – Kompletní průvodce s Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Extrahování textu OCR – Kompletní průvodce s Aspose OCR +url: /cs/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Kompletní průvodce s Aspose OCR + +Už jste někdy potřebovali **extract text ocr** z rozmazaného skenu, ale nebyli jste si jisti, proč výsledek vypadá jako nesmysl? Nejste v tom sami — mnoho vývojářů narazí na tento problém, když je obrázek nakloněný, šumivý nebo prostě jen málo kontrastní. Dobrou zprávou je, že několik úprav konfigurace může proměnit nepořádný obrázek v čistý, prohledávatelný text. V tomto tutoriálu projdeme kompletní, end‑to‑end příklad, který vám ukáže, jak **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, a nakonec **run OCR scan** s Aspose OCR pro Python. + +Na konci tohoto průvodce budete mít spustitelný skript, který načte naskenovaný JPEG, automaticky jej vyčistí a vytiskne extrahovaný text do konzole. Žádné tajemné odkazy „see the docs“ — vše, co potřebujete, je zde. + +## Co budete potřebovat + +- **Python 3.8+** (nejnovější stabilní verze funguje nejlépe) +- **Aspose.OCR for Python via .NET** – nainstalujte pomocí `pip install aspose-ocr` +- **licenční soubor** (`Aspose.OCR.Java.lic`) pokud jste si jej zakoupili (bezplatná zkušební verze funguje pro testování) +- Obrázek, který chcete zpracovat (např. `skewed_scanned_doc.jpg`) + +To je vše. Pokud máte tyto komponenty, můžeme rovnou přejít k kódu. + +## Krok 1: Extract Text OCR s Aspose OCR Engine + +Prvním krokem je spustit OCR engine a použít vaši licenci. Představte si engine jako mozek, který bude číst obrázek; bez licence odmítne fungovat nad rámec malého demo limitu. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Proč je to důležité:** Aplikace licence předem zabraňuje tichému selhání později. Pokud tento krok přeskočíte, engine přejde do omezeného režimu a získáte jen několik znaků — rozhodně to není to, co očekáváte, když se snažíte **extract text ocr**. + +## Krok 2: Improve OCR Accuracy with Pre‑processing + +Skeny, které jsou šikmé nebo zrnitělé, jsou noční můrou každého OCR projektu. Aspose vám umožňuje přepínat několik užitečných nastavení, která automaticky deskew, denoise a zvyšují kontrast. Toto je jádro **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – otočí obrázek zpět do vodorovné polohy, což je klíčové, když originální dokument nebyl dokonale rovný. +- **remove_noise** – odstraní náhodné skvrny, které se často objevují v nízkokvalitních JPEGech. +- **enhance_contrast** – zesílí tmavý text a zesvětlí světlé pozadí, což pomáhá engine rozlišovat znaky. +- **binarization = "Otsu"** – klasický algoritmus, který určuje nejlepší práh pro převod na černobílý obraz. + +> **Tip:** Pokud víte, že vaše zdrojové obrázky jsou již čisté, můžete tyto možnosti vypnout pro zrychlení zpracování. Ale pro většinu reálných skenů je ponechání zapnutých nejbezpečnější volbou. + +## Krok 3: Load Image OCR pro skenování + +Nyní, když je engine připraven, potřebujeme **load image ocr**. Metoda `Image.from_file` od Aspose podporuje JPEG, PNG, TIFF a několik dalších formátů. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Nahraďte `YOUR_DIRECTORY` skutečnou cestou na vašem počítači. Pokud pracujete s proudem bajtů v paměti (např. z webového uploadu), můžete také použít `ocr.Image.from_bytes(byte_data)` — stejný engine to zvládne. + +> **Edge case:** Velké TIFF soubory mohou spotřebovávat hodně paměti. Pokud narazíte na `MemoryError`, zvažte nejprve down‑sampling obrázku nebo použijte `ocr_engine.config.max_image_size` k omezení rozměrů. + +## Krok 4: Run OCR Scan a získat výsledky + +S obrázkem načteným a předzpracováním povoleným je posledním krokem **run OCR scan**. Toto volání provede veškerou těžkou práci na pozadí. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Objekt `ocr_result` obsahuje několik užitečných vlastností: + +- `ocr_result.text` – prostý řetězec, který vás zajímá. +- `ocr_result.confidence` – číselné skóre (0‑100) udávající celkovou spolehlivost. +- `ocr_result.words` – seznam objektů slov s koordináty ohraničujícího rámečku, užitečné pro zvýraznění. + +## Krok 5: Vytisknout extrahovaný text + +Na závěr výstupíme výsledek. Ve skutečné aplikaci můžete text zapsat do souboru, databáze nebo ho poslat do vyhledávacího indexu. Pro tento tutoriál stačí jednoduchý `print`. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Očekávaný výstup** (příklad pro jednoduchou fakturu): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Pokud je důvěryhodnost nízká (< 80), možná budete chtít znovu zvážit možnosti předzpracování nebo vyzkoušet jinou metodu binarizace, jako je `"Sauvola"`. + +## Bonus: Vizualizace pipeline předzpracování (volitelné) + +Někdy pomůže vidět, co engine udělal s obrázkem. Aspose vám umožní exportovat zpracovaný bitmap. + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Můžete pak vložit obrázek do dokumentace: + +extract text ocr workflow diagram showing preprocessing steps + +> **Proč to udělat:** Když výsledek OCR vypadá špatně, rychlý pohled na `processed_debug.png` často odhalí, zda byl obrázek stále příliš tmavý, stále nakloněný, nebo měl zbylý šum. + +## Časté otázky a úskalí + +- **Co když je můj dokument více stránek?** + Aspose OCR pracuje stránku po stránce. Procházejte každou stránkovou obrázek a spojte `ocr_result.text`. + +- **Mohu rozpoznávat jazyky jiné než angličtinu?** + Ano — nastavte `ocr_engine.config.language = "fra"` (nebo jakýkoli kód ISO‑639‑2) před voláním `recognize`. + +- **Je nějaký limit na velikost obrázku?** + Engine omezuje na 10 MP ve výchozím nastavení. Zvyšte `ocr_engine.config.max_image_size`, pokud potřebujete větší skeny, ale sledujte využití paměti. + +- **Potřebuji samostatný OCR engine pro PDF?** + Pro PDF můžete buď nejprve extrahovat každou stránku jako obrázek (pomocí Aspose.PDF), nebo použít vestavěnou funkci PDF OCR. Kroky zde uvedené zůstávají stejné, jakmile máte obrázek. + +## Shrnutí + +Probrali jsme, jak **extract text ocr** pomocí Aspose OCR pro Python, od licencování engine po ladění nastavení, která **improve ocr accuracy**, načtení zdrojového souboru a nakonec **run OCR scan** pro získání čistého textu. Kompletní skript je připraven ke zkopírování a vložení a nyní chápete, proč je každá konfigurační vlajka důležitá. + +## Co dál? + +- **Experimentujte s různými metodami binarizace** (`"Sauvola"`, `"Bradley"`). Některá písma reagují lépe na adaptivní prahy. +- **Integrujte s vyhledávacím enginem** (např. Elasticsearch) pomocí skóre důvěryhodnosti pro řazení výsledků. +- **Kombinujte s OCR post‑processing** knihovnami jako `pyspellchecker` pro čištění běžných chyb rozpoznávání. +- **Prozkoumejte hromadné zpracování** stovek skenů — zabalte kroky do funkce a předávejte jí složku s obrázky. + +Klidně upravte kód, přidejte vlastní logování nebo jej zapojte do větší pipeline pro správu dokumentů. Pokud narazíte na nějaké problémy, zanechte komentář níže — šťastné kódování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/czech/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/czech/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..f22c08658 --- /dev/null +++ b/ocr/czech/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Jak provést OCR PDF pomocí Aspose OCR Java. Naučte se, jak spustit OCR + na PDF, rozpoznat text v PDF, převést PDF do JSON a načíst PDF pro OCR pomocí několika + řádků kódu. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: cs +og_description: Jak provést OCR PDF pomocí Aspose OCR Java. Tento průvodce ukazuje, + jak spustit OCR na PDF, rozpoznat text v PDF, převést PDF do JSON a rychle načíst + PDF pro OCR. +og_title: Jak provést OCR PDF pomocí Aspose OCR – Kompletní programovací tutoriál +tags: +- Aspose OCR +- Java +- PDF processing +title: Jak provést OCR PDF pomocí Aspose OCR – Kompletní průvodce krok za krokem +url: /cs/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak provést OCR PDF pomocí Aspose OCR – Kompletní krok‑za‑krokem průvodce + +Už jste se někdy zamýšleli **jak provést OCR PDF** soubory bez boje s nástroji příkazové řádky nebo placenými SaaS řešeními? Nejste v tom sami. V mnoha projektech – automatizace faktur, archivace naskenovaných smluv nebo tvorba prohledávatelné znalostní báze – narazíte na potřebu rychle a spolehlivě extrahovat text z PDF. + +Dobrá zpráva? S Aspose OCR pro Java můžete **spustit OCR na PDF**, rozpoznat text PDF stránek, **převést PDF do JSON** a dokonce **načíst PDF pro OCR** během několika řádků kódu. V tomto tutoriálu projdeme celý workflow, vysvětlíme, proč je každý krok důležitý, a poskytneme připravený kód, který můžete vložit do svého projektu. + +## Co se naučíte + +- Jak nastavit Aspose OCR engine a aplikovat licenci. +- Jak **načíst PDF pro OCR** a předat jej rozpoznávači. +- Jak **rozpoznat text PDF** na všech stránkách jedním voláním. +- Export celého OCR výsledku do souboru **JSON** (ideální pro downstream API) a jedné stránky do **XML**. +- Tipy, úskalí a varianty, které můžete potřebovat při práci s více‑stránkovými PDF nebo vlastními jazykovými balíčky. + +> **Předpoklady** – Potřebujete Java 8 nebo novější, platný licenční soubor Aspose OCR pro Java (`Aspose.OCR.Java.lic`) a Aspose OCR JAR na classpath. Žádné další externí knihovny nejsou vyžadovány. + +--- + +## Jak provést OCR PDF – Inicializace Aspose OCR Engine + +Prvním krokem je vytvořit instanci `OcrEngine` a připojit vaši licenci. Tento krok odemkne plnou sadu funkcí a odstraní vodotisk z hodnocení. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Proč je to důležité:** +Bez licence běží Aspose OCR v omezeném režimu „trial“, který omezuje počet stránek a přidává vodotisk do výstupu. Aplikace licence hned na začátku zajistí, že zbytek pipeline bude fungovat bez neočekávaných omezení. + +--- + +## Spusťte OCR na PDF – Načtěte dokument a rozpoznávejte text + +Nyní **načteme PDF pro OCR**. Aspose OCR zachází s PDF jako se speciálním typem `PdfDocument`, který interně extrahuje každou stránku jako obrázek, než ji předá rozpoznávači. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Co se děje pod kapotou?** +`recognizeDocument` iteruje přes každou stránku, rasterizuje ji při optimálním DPI a poté spustí OCR engine. Výsledkem je pole `OcrPage[]`, kde každý prvek obsahuje detekovaný text, skóre důvěry a informace o rozložení. Tento přístup je mnohem spolehlivější než předávání surových PDF bajtů do obecné OCR knihovny. + +--- + +## Převod OCR výsledku do JSON – Export kompletního reportu + +Většina downstream systémů preferuje JSON, protože se snadno deserializuje v Javě, JavaScriptu, Pythonu nebo dokonce PowerShellu. Aspose OCR obsahuje pomocníka `JsonExport`, který serializuje celé pole `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Kdy to použijete?** +Pokud potřebujete OCR výstup poslat do vyhledávacího indexu (Elasticsearch, Solr) nebo datového pipeline, formát JSON vám poskytne strukturovanou reprezentaci každé stránky, řádku a slova, včetně hodnot důvěry. + +--- + +## Export první stránky do XML – Uložení jednotlivé stránky + +Někdy vás zajímá jen jedna stránka – třeba první, která obsahuje název nebo číslo faktury. Třída `XmlExport` vám umožní uložit jediný `OcrPage` do úhledného XML souboru. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Proč XML?** +Legacy systémy nebo některé podnikové workflow stále spoléhají na XML schémata pro ingestování dat. Vygenerovaný soubor používá vlastní schéma Aspose, takže validace je přímočará. + +--- + +## Ověřte výstup – Zkontrolujte JSON a XML soubory + +Po dokončení programu byste měli ve složce `YOUR_DIRECTORY` vidět dva soubory: + +- `report_ocr.json` – Obsahuje pole objektů stránek. Rychlý úryvek může vypadat takto: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Obsahuje stejnou informaci pro stránku 1, zabalenou v tagách ``. + +Otevřete je v libovolném editoru; uvidíte surové OCR řetězce, skóre důvěry a souřadnice ohraničujících boxů. Pokud je JSON prázdný, zkontrolujte, že vstupní PDF skutečně obsahuje rasterizovaný obsah (naskenované obrázky) a ne vybratelný text – Aspose OCR funguje jen na obrázcích. + +--- + +## Časté úskalí a profesionální tipy + +| Problém | Proč se stává | Řešení | +|---------|----------------|--------| +| **Prázdný JSON** | PDF obsahuje nativní text, ne obrázky. | Použijte `PdfDocument.fromFile(..., true)` k vynucení rasterizace, nebo předem převádějte stránky na obrázky. | +| **Nízká důvěra** | Vstupní PDF má nízké rozlišení nebo je silně komprimováno. | Zvyšte DPI voláním `ocrEngine.getImageProcessingOptions().setDpi(300)` před `recognizeDocument`. | +| **Licence nenalezena** | Špatná cesta nebo chybějící soubor. | Použijte absolutní cestu nebo umístěte `.lic` soubor na classpath a zavolejte `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Nedostatek paměti u velkých PDF** | Všechny stránky jsou načteny do paměti najednou. | Zpracovávejte stránky po částech: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Rozšíření příkladu + +- **Spustit OCR na PDF s konkrétním jazykem** – nastavte `ocrEngine.getLanguage().setLanguage(Language.English)` nebo načtěte vlastní jazykový balíček. +- **Exportovat každou stránku do samostatných JSON souborů** – iterujte přes `ocrPages` a zavolejte `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrace s vyhledávačem** – pošlete JSON do Elasticsearch `attachment` procesoru pro full‑textové vyhledávání. + +--- + +## Závěr + +Nyní máte kompletní, produkčně připravené řešení pro **jak provést OCR PDF** pomocí Aspose OCR pro Java. Inicializací engine, načtením PDF, spuštěním OCR a exportem jak **JSON**, tak **XML**, můžete OCR integrovat do libovolného backendového workflow – ať už potřebujete **spustit OCR na PDF**, **rozpoznat text PDF**, **převést PDF do JSON**, nebo jen **načíst PDF pro OCR**. + +Vyzkoušejte to, upravte DPI nebo jazyková nastavení a sledujte, jak se vaše dříve neprůhledné PDF mění v prohledávatelné zdroje. Potřebujete jít dál? Zkuste indexovat JSON do Elasticsearch, nebo post‑processovat XML pomocí XSLT pro generování vlastních reportů. + +Šťastné kódování a ať jsou vaše PDF vždy čitelné! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/czech/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..2fad25020 --- /dev/null +++ b/ocr/czech/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'Jak rychle spustit OCR: naučte se extrahovat text z obrázku a rozpoznávat + text z formuláře pomocí Aspose OCR Java. Jednoduché kroky pro čtení obrázku pro + OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: cs +og_description: 'jak rychle spustit OCR: naučte se extrahovat text z obrázku a rozpoznávat + text z formuláře pomocí Aspose OCR Java. Jednoduché kroky pro čtení obrázku pro + OCR.' +og_title: jak spustit OCR na formuláři – extrahovat text z obrázku +tags: +- ocr +- java +- image-processing +title: Jak spustit OCR na formuláři – extrahovat text z obrázku +url: /cs/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# jak spustit ocr na formuláři – extrahovat text z obrázku + +Už jste se někdy zamýšleli **jak spustit ocr** na naskenovaném dokumentu, aniž byste strávili hodiny hraním si s nejasnými knihovnami? Nejste v tom sami. V mnoha projektech — ať už jde o digitalizaci faktur, archivaci smluv nebo získávání dat z ručně psaných formulářů — schopnost **extrahovat text z obrázku** je každodenní bolestivý bod. + +Zde je pravda: Aspose OCR for Java dělá celý proces téměř bezbolestný. V tomto tutoriálu projdeme každý řádek kódu, který potřebujete k **rozpoznání textu z formuláře**, vysvětlíme, proč je každý krok důležitý, a ukážeme vám, jak **číst obrázek pro ocr** výsledky s důvěryhodnostními skóre. Na konci budete mít připravenou Java třídu, kterou můžete vložit do libovolného Maven nebo Gradle projektu. + +## Co se naučíte + +- Nastavení Aspose OCR engine a aplikace licence. +- Načtení JPEG, PNG nebo TIFF do paměti. +- Spuštění OCR a iterace přes každou řádku rozpoznaného textu. +- Identifikace řádků s nízkou důvěrou pro ruční kontrolu. +- Rozšíření příkladu na vícestránkové PDF nebo jiné formáty obrázků. + +Žádná předchozí zkušenost s Aspose není vyžadována, stačí základní Java vývojové prostředí (JDK 11+ a libovolné IDE). Pojďme na to. + +![how to run ocr example](/images/ocr-demo.png){alt="jak spustit ocr na naskenovaném formuláři příklad"} + +## Krok 1: Inicializace OCR engine – **jak spustit ocr** + +První věc, kterou musíte udělat před jakoukoliv OCR operací, je vytvořit instanci `OcrEngine` a připojit platnou licenci. Bez licence knihovna běží v demo režimu, který omezuje počet stránek, které můžete zpracovat. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Proč je to důležité:** +`OcrEngine` obsahuje veškerou konfiguraci — jazyk, režim detekce a ladění výkonu. Nastavením licence hned na začátku se vyhnete tichému přepnutí do trial režimu, který by jinak ořízl váš výstup. + +## Krok 2: Načtení obrázku – **extrahovat text z obrázku** + +Dále potřebujeme objekt `Image`, který ukazuje na soubor, který chcete skenovat. Aspose podporuje širokou škálu formátů, takže můžete načíst naskenovanou PDF stránku, kterou jste už převedli na PNG, surový JPEG nebo dokonce vícestránkový TIFF. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Proč je to důležité:** +Načtení obrázku jako objektu `Image` poskytuje engine přístup k pixelovým datům, informacím o DPI a barevné hloubce — všechny tyto faktory ovlivňují přesnost OCR. Pokud tento krok přeskočíte a předáte jen surové pole bajtů, přijdete o tyto užitečné nápovědy. + +## Krok 3: Spuštění OCR – **rozpoznat text z formuláře** + +Teď ta zábavná část: skutečné rozpoznání znaků. Metoda `recognize` vrací `RecognitionResult`, který obsahuje kolekci objektů `Line`, z nichž každý má své vlastní skóre důvěry. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Proč je to důležité:** +Volání `recognize` spouští řetězec interních procesů — předzpracování (odklon, odstranění šumu), segmentaci, klasifikaci znaků a následné zpracování (kontrola pravopisu, jazykový model). Objekt výsledku abstrahuje veškerou tuto složitost. + +## Krok 4: Zpracování výsledků – **číst obrázek pro ocr** výstup + +Jakmile máte `RecognitionResult`, můžete iterovat přes každou řádku, automaticky rozhodnout, co ponechat, a označit vše, co vypadá nejistě. Prahová hodnota důvěry 85 % je dobrým výchozím bodem pro většinu tištěných formulářů. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Očekávaný výstup (ukázka):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +V ukázce výše si engine nebyl jistý poslední číslicí celkové částky, takže jsme vytiskli varování. Tyto řádky můžete poslat do UI pro ruční opravu nebo je zaznamenat pro pozdější revizi. + +### Okrajové případy a tipy + +- **Více stránek:** Pokud máte vícestránkový PDF, projděte každý index stránky a zavolejte `Image.fromPdf(pdfPath, pageIndex)`. +- **Různé jazyky:** Nastavte `engine.getLanguage().setLanguage(Language.Spanish);` před voláním `recognize`. +- **Kvalita obrázku:** Nízké rozlišení skenů (< 150 DPI) často dává důvěru pod 80 %. Upscaling pomocí `image.resize(300, 300)` může pomoci, ale nejlepší řešení je lepší sken. +- **Výkon:** Opětovné používání stejné instance `OcrEngine` pro mnoho obrázků snižuje režii oproti vytváření nové instance pokaždé. + +## Často kladené otázky + +**Mohu to spustit na serveru bez grafického rozhraní?** +Ano. Knihovna nemá žádné GUI závislosti, takže funguje bez problémů v Docker kontejnerech nebo CI pipelinech. + +**Co když ještě nemám licenci?** +Stále můžete volat `engine.recognize`, ale demo režim zastaví po prvních 2 stránkách a přidá vodoznak do výstupu. Je to ideální pro rychlé testy. + +**Existuje způsob, jak extrahovat strukturovaná data (např. tabulky)?** +Aspose OCR poskytuje třídu `TableRecognizer`, ale to přesahuje rámec tohoto úvodního průvodce. Jakmile zvládnete základy, podívejte se do oficiální dokumentace na `TableRecognizer`. + +## Shrnutí – **jak spustit ocr** v kostce + +Probrali jsme vše, co potřebujete k **jak spustit ocr** na naskenovaném formuláři: inicializaci engine, načtení obrázku, provedení rozpoznání a inteligentní zpracování výsledků. Pouhých několika řádků Java vám umožní **extrahovat text z obrázku**, **rozpoznat text z formuláře** a **číst obrázek pro ocr** výstup s důvěryhodnostními skóre, které vám pomohou rozhodnout, kdy je nutná lidská kontrola. + +Další kroky? Zkuste nahradit JPEG vícestránkovým TIFF, experimentujte s různými prahy důvěry, nebo integrujte výstup do databáze pro automatické zadávání dat. Možnosti jsou tak široké, jako jsou dokumenty, které potřebujete zpracovat. + +Máte další otázky ohledně OCR, předzpracování obrázků nebo licencování? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/czech/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..43b5e1027 --- /dev/null +++ b/ocr/czech/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-05-03 +description: Jak použít OCR k extrakci textu z PDF souborů v Javě. Naučte se rozpoznávat + text z PDF, převádět PDF na text a efektivně zpracovávat OCR vícestránkové PDF. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: cs +og_description: Jak použít OCR k extrahování textu z PDF souborů v Javě. Tento průvodce + ukazuje, jak rozpoznat text z PDF, převést PDF na text a zpracovat OCR vícestránkové + PDF. +og_title: Jak použít OCR v Javě – Extrahovat text z vícestránkových PDF +tags: +- ocr +- java +- pdf +- aspose +title: Jak použít OCR v Javě – Extrahovat text z vícestránkových PDF +url: /cs/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak používat OCR v Javě – Extrahovat text z vícestránkových PDF + +**Jak používat OCR** v projektu Java? Pokud jste někdy potřebovali získat text z PDF souborů, aniž byste se spolehli na interní textovou vrstvu PDF, jste na správném místě. Tento tutoriál vás provede kompletním, spustitelným řešením, které **rozpoznává text z PDF**, převádí PDF na text a dokonce zvládne **OCR vícestránkové PDF** jedním voláním. + +Představte si, že obdržíte naskenovanou smlouvu — 12‑stránkový TIFF uvnitř PDF. Potřebujete vyhledávat text pro indexaci, ale soubor neobsahuje žádné vložené znaky. Žádný problém; ukážeme vám přesně, jak to udělat, krok za krokem. + +> **Co získáte:** připravený úryvek Java kódu používající Aspose.OCR, vysvětlení, proč je každý řádek důležitý, tipy na běžné úskalí a ukázkový výstup, který můžete okamžitě ověřit. + +--- + +## Co budete potřebovat + +Než se pustíme dál, ujistěte se, že máte: + +* **Java 17** (nebo jakýkoli aktuální JDK) – kód funguje i se staršími verzemi, ale 17 je optimální. +* **Aspose OCR for Java** knihovnu – můžete si stáhnout JAR ze stránek Aspose nebo ji přidat přes Maven/Gradle. +* **Vícestránkové PDF** (nebo TIFF), které chcete zpracovat. V našich příkladech použijeme `contract_multipage.pdf` umístěný ve složce `YOUR_DIRECTORY`. +* Platný **licenční soubor Aspose OCR** (`Aspose.OCR.Java.lic`). Bez něj knihovna běží v evaluačním režimu, což je v pořádku pro rychlý test, ale přidá vodoznak. + +To je vše — žádné další OCR enginy, žádné nativní binárky, jen jeden JAR a licence. + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "How to use OCR in Java – visual overview of the process") + +*Alt text obrázku: jak používat OCR v Javě – vizuální přehled načítání, rozpoznávání a výstupu textu.* + +--- + +## Krok 1: Nastavení OCR enginu – **Jak používat OCR** správně + +První, co musíte udělat, je vytvořit instanci OCR enginu a aplikovat licenci. Bez licence engine stále funguje, ale ve výstupu uvidíte zkušební vodoznak. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Proč je to důležité:** +`OcrEngine` je hlavní objekt, který koordinuje analýzu obrazu, detekci jazyka a extrakci textu. Nastavení licence hned na začátku zabrání tomu, aby engine později přešel do zkušebního režimu, což by mohlo ovlivnit přesnost. + +--- + +## Krok 2: Načtení dokumentu – **Extrahovat text z PDF** efektivně + +Aspose OCR dokáže číst přímo kontejnery PDF i TIFF. Zde načteme vícestránkové PDF, které obsahuje naskenované obrázky. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Proč je to důležité:** +`PdfDocument.fromFile` rozebere kontejner a poskytne vám přístup ke každé stránce jako k obrázku. Tato abstrakce umožňuje OCR engineu zacházet se všemi stránkami jednotně, bez ohledu na původní formát. + +**Tip:** Pokud je váš zdrojový soubor TIFF, stejný příkaz funguje — Aspose automaticky detekuje formát. Žádný další kód není potřeba. + +--- + +## Krok 3: Rozpoznání všech stránek najednou – **Rozpoznat text z PDF** plynule + +Místo toho, abyste sami procházeli stránky ve smyčce, můžete požádat engine, aby zpracoval celý dokument jedním voláním. To je nejefektivnější způsob, jak **převést PDF na text**, když pracujete s **OCR vícestránkovým PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Proč je to důležité:** +Volání `recognizeDocument` jednou snižuje režii způsobenou opakovaným inicializováním enginu. Zaručuje také konzistentní nastavení jazyka napříč stránkami, což je klíčové pro právní dokumenty, kde se často míchají různé fonty. + +--- + +## Krok 4: Výstup rozpoznaného textu – **Převést PDF na text** pro indexaci + +Nyní, když jsou všechny stránky zpracovány, jednoduše projdeme výsledky a vytiskneme extrahované řetězce. Můžete je také zapsat do souboru, databáze nebo předat do vyhledávacího indexu. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Očekávaný výstup (zkrácený):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Pokud PDF obsahuje 12 stránek, uvidíte dvanáct sekcí `--- Page X ---`, z nichž každá bude následována OCR‑extrahovaným textem. + +--- + +## Pokročilé tipy pro **OCR vícestránkové PDF** + +### 1. Úprava nastavení jazyka + +Ve výchozím nastavení se Aspose snaží automaticky detekovat jazyk, ale můžete proces urychlit jeho explicitním zadáním: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Řízení předzpracování obrazu + +Naskenované smlouvy často obsahují šum. Můžete povolit korekci sklonu a binarizaci: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Šetrné zacházení s velkými soubory + +Pokud zpracováváte PDF větší než 100 MB, zvažte streamování stránek místo načítání celého dokumentu najednou: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Tento přístup snižuje zatížení paměti a hodí se pro dávkové úlohy. + +### 4. Export do strukturovaných formátů + +Mimo prostý text můžete exportovat do JSON nebo XML pro další zpracování: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Časté úskalí a jak se jim vyhnout + +| Úskalí | Proč se to stane | Řešení | +|--------|------------------|--------| +| **Prázdný výstup** | Licence není aplikována nebo je špatná cesta k souboru. | Ověřte cestu v `setLicense` a potvrďte, že soubor existuje. | +| **Špatné znaky** | Nesprávné nastavení jazyka nebo nízké rozlišení zdroje. | Nastavte správný `Language` a zajistěte, že zdrojové obrázky jsou ≥300 dpi. | +| **Chyby out‑of‑memory** | Načítání obrovského PDF najednou. | Použijte výše ukázaný streamingový přístup. | +| **Částečné rozpoznání stránky** | PDF obsahuje smíšené rastrové/vektorové vrstvy. | Před OCR nejprve zploštěte PDF: `pdfDoc.flatten();`. | + +--- + +## Shrnutí – Co jsme probrali + +* **Jak používat OCR** s Aspose v Javě. +* **Extrahovat text z PDF** (nebo TIFF) jedním voláním. +* **Rozpoznat text z PDF** napříč všemi stránkami bez ručních smyček. +* **Převést PDF na text** a čistě jej vypsat. +* Tipy pro práci s **OCR vícestránkovým PDF**, včetně úprav jazyka a paměťově šetrného streamování. + +Nyní máte kompletní, připravený úryvek, který můžete vložit do libovolného Java projektu. Klidně upravte možnosti zpracování obrazu, změňte cíl výstupu nebo integrujte výsledek do vyhledávacího indexu. + +--- + +## Další kroky + +* **Prozkoumejte pokročilé funkce Aspose OCR** — například rozpoznávání rukopisu nebo shodu s PDF/A. +* **Kombinujte OCR s manipulací PDF** (např. přidejte zpět skrytou textovou vrstvu do PDF pro vyhledávatelné PDF). +* **Automatizujte dávkové zpracování** načítáním složky PDF a zápisem každého výsledku do odpovídajícího `.txt` souboru. + +Pokud narazíte na problémy, fórum Aspose je skvělým místem, kde se můžete zeptat, a referenční dokumentace API poskytuje podrobné informace ke všem použitým metodám. + +Šťastné programování a užívejte si převod těch neústupných skenů na prohledávatelný text! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/czech/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..5b82264ca --- /dev/null +++ b/ocr/czech/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Čtěte binární soubor v Javě pro načtení licence Aspose OCR. Naučte se + používat FileInputStream, práci s binárními daty a praktické tipy v tomto krok‑za‑krokem + průvodci. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: cs +og_description: Čtěte binární soubor v Javě pro načtení licence Aspose OCR. Postupujte + podle tohoto kompletního průvodce a osvojte si FileInputStream a práci s binárními + daty v Javě. +og_title: Čtení binárního souboru v Javě – Načtení licenčních bajtů pro Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Čtení binárního souboru v Javě – Načtení licenčních bajtů pro Aspose OCR +url: /cs/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Čtení binárního souboru v Javě – Načtení bajtů licence pro Aspose OCR + +Už jste někdy potřebovali **read binary file Java** při práci s licencí pro knihovnu třetí strany? Nejste v tom sami. Většina Java vývojářů narazí na tento problém, když se snaží načíst soubor `.lic` do OCR enginu, a běžné triky pro textové soubory prostě nefungují. + +V tomto tutoriálu projdeme kompletním, spustitelným příkladem, který přesně ukazuje, jak otevřít binární licenční soubor, načíst jeho bajty do paměti a předat je Aspose OCR pro Java. Během toho uvidíte, proč je `FileInputStream` správným nástrojem, jak zacházet s možnými `IOException` a několik profesionálních tipů, které v oficiální dokumentaci nenajdete. + +Na konci tohoto návodu budete schopni **read binary file Java** styl, vytvořit objekt `License` a přiřadit jej k `OcrEngine` bez potíží. + +## Co tento průvodce pokrývá + +- Požadavky: Java 17+, Maven (nebo Gradle) a knihovna Aspose OCR pro Java. +- Krok‑za‑krokem kód, který načítá binární soubor `.lic` pomocí `FileInputStream`. +- Vysvětlení každého řádku, abyste pochopili *proč* za *jak*. +- Zpracování okrajových případů (chybějící soubor, poškozené bajty) a praktické tipy na ladění. +- Finální, samostatný úryvek, který můžete zkopírovat a vložit do svého IDE a okamžitě spustit. + +Pokud jste se někdy ptali, zda potřebujete speciální API pro čtení licenčních souborů, odpověď zní rozhodné **ne** – stačí staré dobré binární I/O. Pojďme na to. + +## Krok 1: Čtení binárního souboru v Javě pomocí FileInputStream + +Prvním, co potřebujeme, je spolehlivý způsob, jak získat surové bajty z licenčního souboru na disku. V Javě je `FileInputStream` právě tím nástrojem. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Proč to funguje:** `Files.readAllBytes` interně vytvoří `FileInputStream`, přečte celý stream a zavře jej za vás. Je to bezpečné, stručné a vyhýbá se klasickému problému „zapomenout zavřít stream“. Pokud dáváte přednost klasickému vzoru, můžete jej nahradit blokem try‑with‑resources používajícím `FileInputStream` přímo. + +### Pro tip + +Pokud je licenční soubor obrovský (málo pravděpodobné, ale možné), zvažte jeho streamování po částech místo načtení najednou. Pro většinu OCR licenčních souborů – obvykle pod několika kilobajty – je jednorázový přístup naprosto v pořádku. + +## Krok 2: Vytvoření objektu License pro Aspose OCR + +Nyní, když máme surové bajty, musíme je převést na kompatibilní `License` instanci pro Aspose. Knihovna poskytuje třídu `License`, která přijímá pole bajtů. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Proč je to důležité:** Přenášením bajtů přímo se vyhnete problémům souvisejícím s cestou (např. záměně relativní cesty k pracovnímu adresáři) a zachováte přenositelnost nasazení – stačí přibalit soubor `.lic` kamkoli vaše aplikace běží. + +## Krok 3: Přiřazení licence k OCR enginu + +S připraveným objektem `License` je posledním krokem jeho připojení k `OcrEngine`. Tento krok zajistí, že OCR komponenta běží v licencovaném režimu místo evaluačního sandboxu. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Poznámka:** Některé starší verze Aspose vystavují veřejné pole `license` místo setteru. Přizpůsobte kód podle toho (`ocrEngine.license = license;`), pokud narazíte na chybu při kompilaci. + +## Krok 4: Ověření úspěšného načtení licence (volitelné, ale užitečné) + +Rychlá kontrola rozumu ušetří hodiny ladění později. Třída `License` při úspěchu nevyhazuje výjimku, ale můžete zkusit neškodnou OCR operaci pro potvrzení. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Pokud uvidíte zprávu „License applied successfully“, můžete pokračovat. Pokud ne, zkontrolujte znovu cestu k souboru, integritu bajtů a že používáte správnou verzi Aspose. + +## Kompletní funkční příklad + +Spojením všech částí získáte kompaktní program připravený ke zkopírování a vložení. Klidně jej vložte do souboru `Main.java` a spusťte. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Očekávaný výstup (předpokládá se, že ukázkový obrázek existuje):** + +``` +License applied successfully – OCR engine is ready. +``` + +Pokud licenční soubor chybí nebo je poškozený, uvidíte jasnou chybovou zprávu jako: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Časté úskalí a jak se jim vyhnout + +- **Záměna cest:** Relativní cesty jsou řešeny vůči pracovnímu adresáři JVM, ne vůči umístění zdrojového souboru. Použijte absolutní cestu nebo umístěte soubor `.lic` vedle JAR a odkažte na něj pomocí `getResourceAsStream`. +- **Špatné pořadí bajtů:** Nikdy se nepokoušejte číst binární soubor pomocí `Reader` (orientovaného na znaky). Data se tím poškodí. Držte se API založených na `FileInputStream`. +- **Neshoda verzí:** Některé starší verze Aspose očekávají `license.setLicense("path/to/file")` místo `setLicenseBytes`. Zkontrolujte poznámky k vydání knihovny, pokud narazíte na `NoSuchMethodError`. +- **Zapomenutí zavřít streamy:** Pokud se vrátíte ke klasickému přístupu s `FileInputStream`, zabalte jej do bloku try‑with‑resources, aby byl zaručen jeho uzavření. + +## Závěr + +Nyní víte, jak **read binary file Java** načíst licenci pro Aspose OCR, vytvořit objekt `License` a připojit jej k `OcrEngine`. Proces spočívá v správném zacházení s binárními daty pomocí `FileInputStream` (nebo modernějšího `Files.readAllBytes`) a několika jednoduchých volání API. + +Odtud můžete přejít k reálným OCR úkolům – extrahování textu z PDF, obrázků nebo dokonce naskenovaných dokumentů – s jistotou, že licenční vrstva vás nezastaví. Pokud vás zajímají související témata, podívejte se na tutoriály o **Java FileInputStream**, **binary data handling Java** a **read license file Java** pro další knihovny. + +Šťastné programování a ať jsou vaše OCR výsledky naprosto jasné! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/czech/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..c27edfb73 --- /dev/null +++ b/ocr/czech/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Naučte se rozpoznávat text z obrázku a převádět obrázek na text pomocí + Aspose OCR pro Javu. Obsahuje tipy, jak zlepšit přesnost OCR a spouštět OCR na souborech + PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: cs +og_description: Podrobný návod krok za krokem, jak rozpoznat text z obrázku pomocí + Aspose OCR pro Javu. Naučte se převádět obrázek na text, zlepšit přesnost OCR a + spustit OCR na PNG. +og_title: Rozpoznat text z obrázku pomocí Aspose OCR – Java tutoriál +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Rozpoznat text z obrázku pomocí Aspose OCR – Kompletní průvodce Java +url: /cs/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# rozpoznat text z obrázku pomocí Aspose OCR – Kompletní průvodce pro Java + +Už jste někdy potřebovali **rozpoznat text z obrázku**, ale nebyli jste si jisti, která knihovna vám poskytne spolehlivé výsledky? Nejste v tom sami — mnoho vývojářů narazí na tuto překážku, když poprvé zkouší extrahovat data ze skenovaných PDF, účtenek nebo laboratorních zpráv. Dobrou zprávou je, že Aspose OCR pro Java udělá celý proces hračkou a můžete **převést obrázek na text** pomocí několika řádků kódu. + +V tomto tutoriálu projdeme vše, co potřebujete vědět: od načtení obrázku pro OCR, úpravy nastavení pro **zlepšení přesnosti OCR**, až po **spuštění OCR na PNG** souborech a vytištění získaného textu. Žádné zbytečnosti, jen praktický, spustitelný příklad, který můžete dnes vložit do svého projektu. + +--- + +## Co budete potřebovat + +Než se pustíme dál, ujistěte se, že máte na svém počítači následující: + +| Předpoklad | Důvod | +|------------|-------| +| Java 17 (nebo novější) | Aspose OCR cílí na Java 8+, ale nejnovější JDK poskytuje lepší výkon. | +| Aspose OCR pro Java knihovna (`aspose-ocr.jar`) | Jádrový engine, který dělá těžkou práci. | +| Platný licenční soubor Aspose OCR (`Aspose.OCR.Java.lic`) | Aktivuje plnou sadu funkcí; jinak získáte vodotisk z trial verze. | +| Soubor s obrázkem (PNG, JPEG, TIFF, atd.) obsahující čitelný text | Jako konkrétní příklad použijeme `lab_report.png`. | +| Vlastní slovník (volitelně) | Zlepšuje rozpoznávání pro oborové termíny jako „hemoglobin“. | + +Pokud některý z těchto bodů neznáte, nepanikařte — instalace JAR souboru a vytvoření jednoduchého textového souboru jsou triviální úkoly, které si ukážeme za chvilku. + +--- + +## Krok 1 – Nastavení projektu a import závislostí + +Nejprve vytvořte nový Maven (nebo Gradle) projekt a přidejte závislost Aspose OCR. Uživatelé Maven mohou vložit tento úryvek do svého `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Pokud dáváte přednost Gradle, ekvivalent je: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Tip:** Sledujte číslo verze; novější vydání často obsahují opravy chyb, které přímo ovlivňují **zlepšení přesnosti OCR**. + +Nyní vytvořte Java třídu s názvem `OcrDemo.java`. Na začátku souboru importujte potřebné třídy: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Krok 2 – Inicializace OCR enginu a aplikace licence + +Nemůžete **spustit OCR na PNG** souborech, dokud engine neví, že je licencovaný. Takto to uděláte: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Proč extra objekt `License`? Aspose odděluje správu licence od enginu, aby bylo možné licence měnit za běhu, což může být užitečné v multi‑tenant SaaS scénářích. + +--- + +## Krok 3 – Načtení vlastního slovníku (volitelné, ale mocné) + +Pokud pracujete s medicínskou terminologií, chemickými vzorci nebo značkovými názvy, vlastní slovník může **zlepšit přesnost OCR** dramaticky. Slovník je prostý textový soubor s jedním slovem na řádek: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Proč to funguje:** OCR engine používá slovník k biasování svého jazykového modelu směrem k slovům, na kterých vám záleží, čímž snižuje chybné rozpoznání typu „hemo‑globin“ → „hemoglobin“. + +Pokud slovník nemáte, tuto řádku prostě přeskočte — Aspose i tak dobře funguje se svými vestavěnými jazykovými balíčky. + +--- + +## Krok 4 – Načtení obrázku, který chcete zpracovat + +Nyní skutečně **načteme obrázek pro OCR**. Aspose podporuje mnoho formátů, ale PNG je obzvláště bezztrátový, což z něj dělá bezpečnou volbu pro skenované dokumenty. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Speciální případ:** Pokud je váš obrázek velký (více než 5 MB), zvažte jeho předběžné zmenšení, aby se zrychlilo zpracování. Třída `Image` poskytuje metodu `resize`, kterou můžete zavolat před rozpoznáním. + +--- + +## Krok 5 – Spuštění OCR procesu a získání textu + +S nastavením hotovým spusťte OCR engine. Metoda `recognize` vrací objekt `OcrResult`, který obsahuje extrahovaný řetězec, skóre důvěry a dokonce i ohraničující rámečky, pokud potřebujete informace o rozložení. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Po spuštění programu byste měli vidět něco jako: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +A to je vše — úspěšně jste **rozpoznali text z obrázku** a **převáděli obrázek na text** pomocí Aspose OCR. + +--- + +## Krok 6 – Časté problémy a jak je vyřešit + +I při použití solidní knihovny se můžete setkat s několika překážkami: + +| Příznak | Pravděpodobná příčina | Řešení | +|---------|-----------------------|--------| +| Prázdný výstup | Licence není aplikována nebo vypršela | Ověřte cestu k `Aspose.OCR.Java.lic` a ujistěte se, že odpovídá verzi. | +| Zkreslené znaky | Obrázek má nízké rozlišení nebo je silně komprimovaný | Použijte zdroj s vyšším rozlišením nebo předzpracujte obrázek (binarizace, deskew). | +| Chybějící oborové výrazy | Žádný vlastní slovník | Přidejte soubor slovníku s chybějícími termíny, jeden po řádku. | +| Pomalé zpracování velkých dávek | Žádné multithreading | Vytvořte pool instancí `OcrEngine` (jsou thread‑safe) a zpracovávejte obrázky paralelně. | + +--- + +## Krok 7 – Rozšíření příkladu: Uložení výsledků do souboru + +Pokud potřebujete uchovat extrahovaný text pro pozdější analýzu, jednoduše jej zapište do souboru: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Nyní máte znovupoužitelný pipeline, který **načte obrázek pro OCR**, extrahuje obsah a uloží jej kamkoliv potřebujete. + +--- + +## Bonus: Spuštění OCR na více PNG souborech ve složce + +Reálné projekty často potřebují zpracovat desítky skenů. Zde je rychlá smyčka, která načte každý `.png` v adresáři: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Nezapomeňte znovu použít stejnou instanci `ocrEngine` — vytváření nové instance pro každý soubor přináší zbytečnou režii. + +--- + +## Závěr + +Nyní máte plnohodnotné, end‑to‑end řešení, které **rozpozná text z obrázku** pomocí Aspose OCR pro Java. Od načtení obrázku, přes volitelné obohacení enginu vlastním slovníkem pro **zlepšení přesnosti OCR**, až po **spuštění OCR na PNG** souborech a uložení výstupu, kód je připraven k nasazení v jakémkoli Java projektu. + +Co dál? Zkuste předat extrahovaný text do pipeline pro zpracování přirozeného jazyka, nebo experimentujte s OCR na ručně psaných poznámkách (Aspose také nabízí režim pro ručně psaný text). Možnosti jsou neomezené a právě jste odemkli první krok. + +Šťastné programování! Pokud narazíte na nějaké potíže, neváhejte zanechat komentář níže — překonáme je společně. + +![Screenshot of OCR result in console – recognize text from image](/images/ocr_console_result.png "recognize text from image 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/dutch/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/dutch/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..f72857f83 --- /dev/null +++ b/ocr/dutch/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Tabellen uit een afbeelding extraheren met Aspose OCR Java. Leer hoe + je een afbeelding laadt voor OCR, een tabel uit een PNG extrahert, de tekst van + de afbeeldingstabel converteert en een bonafbeelding snel herkent. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: nl +og_description: Tabellen extraheren uit afbeelding met Aspose OCR Java. Deze gids + laat zien hoe je een afbeelding laadt voor OCR, een tabel uit een PNG extraheert, + de tekst van de afbeeldingstabel converteert en een kassabonafbeelding herkent. +og_title: Tabellen extraheren uit afbeelding – Aspose OCR Java-tutorial +tags: +- Aspose OCR +- Java +- Image Processing +title: Tabellen extraheren uit afbeelding – Complete Aspose OCR Java-gids +url: /nl/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tabellen extraheren uit afbeelding – Complete Aspose OCR Java-gids + +Heb je ooit **extract tables from image** bestanden moeten extraheren maar liep je tegen een muur aan? Misschien heb je een gescande bon of een gefotografeerde factuur en zijn de tabelgegevens begraven in een PNG. In deze tutorial zie je precies hoe je *load image for OCR* laadt, die foto omzet in gestructureerde rijen, en **convert image table text** naar iets waarmee je in Java kunt werken. + +We lopen elke stap door, van het licentiëren van de Aspose OCR-engine tot het afdrukken van elke cel van de gedetecteerde tabellen. Aan het einde kun je **recognize receipt image** bestanden en hun tabellen eruit halen zonder moeite. + +## Wat je zult leren + +- Hoe je de Aspose OCR-engine initialiseert en je licentie toepast. +- Waarom het inschakelen van tabeldetectie de sleutel is tot **extract tables from image**. +- De exacte code die nodig is om **load image for OCR** uit te voeren en herkenning op een PNG te draaien. +- Manieren om meerdere tabellen, scans met lage resolutie en veelvoorkomende valkuilen af te handelen. +- Hoe je **convert image table text** omzet naar een afdrukbaar (of database‑klaar) formaat. + +Geen externe documentatie nodig—alles wat je nodig hebt staat hier. + +## Vereisten + +- Java 17 of nieuwer (de code gebruikt het moderne modulesysteem). +- Een Aspose OCR for Java licentiebestand (`Aspose.OCR.Java.lic`). Als je alleen experimenteert, werkt een tijdelijke evaluatiesleutel ook. +- Een PNG‑afbeelding die een duidelijke tabel bevat (bijv. `receipt_with_table.png`). +- Maven of Gradle om de Aspose OCR‑dependency op te halen: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Houd het licentiebestand naast je `src/main/resources` map zodat het pad stabiel blijft in verschillende omgevingen. + +--- + +## Stap 1 – Initialiseer de OCR-engine om **extract tables from image** + +Voordat de engine iets kan doen, moet hij weten dat je een legitieme gebruiker bent. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Waarom dit belangrijk is:* Zonder een geldige licentie draait de OCR-engine in de proefmodus, wat resultaten kan afkappen of ongewenste watermerken kan toevoegen—waardoor tabelextractie onbetrouwbaar wordt. + +--- + +## Stap 2 – Schakel tabeldetectie in (**extract table from png**) + +Tabeldetectie staat standaard uit; je moet de schakelaar omzetten. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Het inschakelen van deze vlag vertelt Aspose OCR om groepen uitgelijnde tekst te behandelen als rijen en kolommen, wat precies is wat je nodig hebt wanneer je **extract tables from image** bestanden wilt die PNG's zijn. + +--- + +## Stap 3 – **Load image for OCR** en **recognize receipt image** + +Nu voeren we de afbeelding daadwerkelijk in de engine. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Als je te maken hebt met een **recognize receipt image** scenario, wil je de afbeelding misschien voorbewerken (kantelen corrigeren, contrast verhogen). Dat valt buiten de scope van deze korte gids, maar is de moeite waard voor ruisende scans. + +--- + +## Stap 4 – Verwerk OCR-resultaat en **convert image table text** + +Het `OcrResult` object kan één of meer tabellen bevatten. Laten we er doorheen itereren en elke cel afdrukken. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Wat dit doet:** + +- Controleert of er tabellen zijn gevonden; zo niet, dan suggereert het een kwaliteitsaanpassing. +- Voor elke tabel drukt het rijen af met tab‑gescheiden cellen, wat een handig formaat is voor CSV‑import. +- De `Cell::getText` aanroep is het hart van **convert image table text** – het haalt de ruwe OCR‑tekst uit elke cel. + +### Verwachte uitvoer + +Aangenomen dat `receipt_with_table.png` een eenvoudige 3 × 2 tabel bevat, zie je iets als: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Als de afbeelding meerdere tabellen heeft, wordt elke tabel gescheiden door een lege regel. + +--- + +## Stap 5 – Verifieer de geëxtraheerde tabellen en behandel randgevallen + +### Veelvoorkomende valkuilen + +| Probleem | Waarom het gebeurt | Snelle oplossing | +|----------|--------------------|------------------| +| **Geen tabellen gedetecteerd** | Afbeelding te onscherp of laag contrast | Pas binarisatie (`ImageProcessing.applyThreshold`) toe vóór OCR | +| **Samengevoegde cellen** | Tabellijnen zijn zwak, OCR behandelt ze als één blok | Verhoog `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Onjuiste kolomvolgorde** | Scheve afbeelding veroorzaakt mis‑uitlijning | Gebruik `ImageProcessing.deskew` of roteer de afbeelding met 90° | + +### Wat nu te doen + +- **Exporteren naar CSV** – vervang `System.out.println(line);` door een `FileWriter` om gegevens op te slaan. +- **Voeden in een database** – map elke rij naar een POJO en gebruik JPA voor persistentie. +- **Combineren met andere API's** – voor bonverwerking kun je ook totalen extraheren met reguliere expressies op de OCR‑tekst. + +--- + +## Volledig werkend voorbeeld (Klaar om te kopiëren‑plakken) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Voer dit programma uit, wijs het op een PNG die een duidelijke tabel bevat, en zie de console vullen met netjes geformatteerde rijen. + +--- + +## Conclusie + +Je hebt nu een solide, end‑to‑end oplossing om **extract tables from image** bestanden te gebruiken met Aspose OCR voor Java. Van licentiëren tot **load image for OCR**, het inschakelen van **extract table from png**, en uiteindelijk **convert image table text**, elke stap wordt behandeld met uitleg en praktische tips. + +Probeer vervolgens de output te koppelen aan een CSV‑bestand, de rijen in een relationele database te plaatsen, of combineer de OCR‑stap met een bon‑totaal‑extractieroutine. Hetzelfde patroon werkt voor facturen, prijslijsten en elk gescand document dat gegevens achter een raster verbergt. + +Heb je vragen over het verwerken van bonnen met lage resolutie of het opschalen naar batchverwerking? Laat een reactie achter hieronder, en happy coding! + +![Voorbeeld van tabellen extraheren uit afbeelding](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – voorbeeldoutput") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/dutch/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..676956c4a --- /dev/null +++ b/ocr/dutch/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Tekst extraheren uit afbeelding met Python en Aspose OCR. Leer een stapsgewijze + Python OCR‑tutorial met gemengde Latijn‑Cyrillische ondersteuning. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: nl +og_description: Haal snel tekst uit een afbeelding met Python. Deze gids laat zien + hoe je Aspose OCR in Python gebruikt voor gemengde Latijn‑Cyrillische afbeeldingen. +og_title: Tekst uit afbeelding halen met Python – Volledige Aspose OCR-handleiding +tags: +- OCR +- Python +- Aspose +title: Tekst uit afbeelding extraheren met Python – Complete Aspose OCR-gids +url: /nl/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tekst uit afbeelding halen met Python – Complete Aspose OCR-gids + +Heb je ooit **extract text from image python** moeten doen maar wist je niet welke bibliotheek een mix van Latijnse en Cyrillische tekens aankan? Je bent niet de enige—ontwikkelaars lopen constant tegen dit probleem aan bij het OCR‑en van meertalige screenshots. + +Het goede nieuws is dat Aspose OCR for Python het hele proces bijna pijnloos maakt. In deze tutorial lopen we door het installeren van het pakket, het toepassen van je licentie, het laden van een afbeelding met gemengde talen, en uiteindelijk het ophalen van de herkende tekst in een paar regels code. Aan het einde heb je een kant‑klaar script dat je in elk project kunt gebruiken. + +## Wat je zult leren + +- Hoe je **Aspose OCR Python** instelt in een virtuele omgeving. +- Waarom het aangeven van talen (zoals Latijn en Cyrillisch) de detectie versnelt. +- De exacte code die nodig is om **extract text from image python** uit te voeren met één functieaanroep. +- Veelvoorkomende valkuilen bij het omgaan met OCR in gemengde talen en hoe je ze kunt vermijden. + +### Vereisten + +- Python 3.8 of nieuwer geïnstalleerd op je machine. +- Een Aspose OCR‑licentiebestand (`Aspose.OCR.Java.lic`). De gratis proefversie werkt voor testen, maar een gelicentieerd bestand verwijdert watermerken. +- Een PNG/JPEG‑afbeelding die zowel Latijnse als Cyrillische tekens bevat (we noemen het `mixed_latin_cyrillic.png`). + +Als je die punten hebt afgevinkt, ben je klaar om te gaan—geen extra frameworks of zware afhankelijkheden nodig. + +--- + +## Stap 1 – Tekst uit afbeelding halen met Python: Installeer Aspose OCR + +Allereerst: haal de bibliotheek van PyPI en zorg ervoor dat je omgeving het licentiebestand kan vinden. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** Als je een permissiefout krijgt, voeg `--user` toe aan het `pip install`‑commando of voer de terminal uit als administrator. + +Nu het pakket op je systeem staat, importeren we het en wijzen we de engine op onze licentie. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Waarom hebben we op dit moment een licentie nodig? Zonder licentie draait de engine in **evaluation mode**, wat het aantal pagina's beperkt en een watermerk aan de output toevoegt. Het vooraf leveren van de licentie zorgt ervoor dat de latere `recognize`‑aanroep schone tekst retourneert. + +--- + +## Stap 2 – Laad je afbeelding met gemengde Latijn‑Cyrillische inhoud + +Vervolgens laden we de afbeelding in het geheugen. Aspose OCR werkt met zijn eigen `Image`‑klasse, die het onderliggende bestandsformaat abstraheert. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Als je je afvraagt of andere formaten werken—ja, JPEG, BMP, TIFF en zelfs PDF worden ondersteund. Vervang gewoon de bestandsextensie en de `from_file`‑methode regelt de rest. + +--- + +## Stap 3 – Geef taal‑hints voor snellere detectie (optioneel maar nuttig) + +Wanneer je de talen in de afbeelding kent, kun je de engine een hint geven. Dit is niet verplicht, maar het **vermindert de verwerkingstijd aanzienlijk** en verbetert de nauwkeurigheid voor OCR met gemengde talen. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +De hint‑lijst accepteert elke taal die door Aspose OCR wordt ondersteund (bijv. `"Arabic"`, `"Japanese"`). Als je deze stap overslaat, probeert de engine elke ingebouwde taal, wat trager kan zijn bij grote batches. + +--- + +## Stap 4 – Voer de OCR‑engine uit en haal tekst op + +Nu het moment van de waarheid: de tekens daadwerkelijk herkennen. De `recognize`‑methode retourneert een `OcrResult`‑object dat de platte tekst, vertrouwensscores en zelfs begrenzingskaders bevat als je die later nodig hebt. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Waarom dit werkt:** Onder de motorkap combineert Aspose OCR een neuraal‑netwerk tekstdetector met taalspecifieke classifiers. Door er een `Image`‑object aan te voeren, omzeil je elke noodzaak voor handmatige voorbewerking zoals binarisatie. + +--- + +## Stap 5 – Bekijk de geëxtraheerde tekst + +Tot slot, laten we het resultaat naar de console printen. In een echte applicatie schrijf je het misschien naar een bestand, sla je het op in een database, of voer je het in een vertaal‑API. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Wanneer je het script uitvoert, zou je iets moeten zien als: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Die output bevestigt dat we succesvol **extract text from image python** hebben uitgevoerd, waarbij zowel Latijnse als Cyrillische tekens in één keer worden verwerkt. + +--- + +## Volledig werkend voorbeeld + +Hieronder staat het volledige script dat je kunt kopiëren‑plakken in een bestand genaamd `extract_ocr.py`. Vervang gewoon de placeholder‑paden door je eigen mappen. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Sla het bestand op, activeer je virtuele omgeving, en voer uit: + +```bash +python extract_ocr.py +``` + +Je zou de herkende tekst moeten zien afgedrukt, wat bevestigt dat het script van begin tot eind werkt. + +--- + +## Veelgestelde vragen & randgevallen + +**Wat als de afbeelding onscherp is?** +Aspose OCR bevat ingebouwde de‑skewing en ruisreductie, maar voor sterk verslechterde foto’s wil je misschien vooraf bewerken met OpenCV (bijv. een Gaussian blur en drempel toepassen). De `Image`‑klasse kan ook een NumPy‑array accepteren, zodat je aangepaste filters kunt ketenen vóór het aanroepen van `recognize`. + +**Kan ik een hele map met afbeeldingen verwerken?** +Zeker. Plaats de logica in een `for`‑loop, wijzig `from_file` zodat elk bestandsnaam wordt gelezen, en sla de resultaten op in een dictionary. Vergeet niet de API‑rate‑limits te respecteren als je de cloud‑versie gebruikt. + +**Heb ik een aparte licentie per taal nodig?** +Nee, één enkele Aspose OCR‑licentie dekt alle ondersteunde talen. De `language_hints`‑lijst is slechts een prestatie‑hint. + +**Hoe zit het met PDF‑invoer?** +Vervang `Image.from_file` door `ocr.Image.from_file("document.pdf")`. De OCR‑engine rastert automatisch elke pagina en retourneert aaneengeschakelde tekst. + +--- + +## Conclusie + +We hebben zojuist een beknopte, productie‑klare manier getoond om **extract text from image python** te gebruiken met Aspose OCR. De stappen—installeren, licentie, laden, taal‑hints, herkennen en weergeven—dekken alles wat je nodig hebt om betrouwbare resultaten te krijgen voor gemengde Latijn‑Cyrillische inhoud. + +Vanaf hier kun je geavanceerde onderwerpen verkennen zoals **image to text conversion** voor batchverwerking, de output integreren met een **Python OCR tutorial** over natural‑language processing, of experimenteren met andere taal‑hints voor meertalige documenten. De mogelijkheden zijn eindeloos, en de code ligt al in je handen. + +Heb je een ander gebruiksscenario of loop je tegen een probleem aan? Laat een reactie achter, deel je ervaring, en laten we het gesprek gaande houden. Veel plezier met coderen! + +![Voorbeeld van tekst uit afbeelding halen met Python](/images/extract-text-from-image-python.png "Schermafbeelding die OCR‑output toont – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/dutch/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..5f1d0443d --- /dev/null +++ b/ocr/dutch/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Haal direct tekst uit een afbeelding met Aspose OCR. Leer hoe je een + interessegebied definieert, een afbeelding laadt voor OCR, en tekst uit een factuur + haalt in slechts enkele minuten. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: nl +og_description: Tekst extraheren uit afbeelding met Aspose OCR. Deze gids laat zien + hoe je een interessegebied definieert, een afbeelding laadt voor OCR, en efficiënt + tekst uit een factuur haalt. +og_title: Tekst uit afbeelding extraheren met Aspose OCR – Complete tutorial +tags: +- ocr +- python +- image-processing +title: Tekst extraheren uit afbeelding met Aspose OCR – Stapsgewijze handleiding +url: /nl/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tekst uit afbeelding extraheren met Aspose OCR – Stapsgewijze gids + +Moet je snel **tekst uit afbeelding extraheren**? Je bent niet de enige—ontwikkelaars worstelen constant met ruisvolle scans, bonnen en facturen. In deze tutorial lopen we een volledige oplossing door die niet alleen laat zien hoe je *tekst uit afbeelding kunt extraheren*, maar ook demonstreert hoe je **region of interest definieert**, **afbeelding laadt voor OCR**, en de exacte regel die je nodig hebt uit een factuur haalt. + +We behandelen alles, van het installeren van de Aspose OCR‑bibliotheek tot het afhandelen van randgevallen zoals gedraaide pagina's. Aan het einde heb je een uitvoerbaar script dat de gewenste tekst in één oproep extraheert—geen handmatig bijsnijden nodig. + +## Wat je zult leren + +- Hoe je **afbeelding laadt voor OCR** met de Python‑API van Aspose. +- De beste manier om **region of interest** (ROI) te **definiëren**, zodat je alleen het relevante deel van de afbeelding verwerkt. +- Hoe je **tekst uit factuur**‑velden kunt **extraheren** zonder de hele pagina te laden. +- Tips om **afbeelding te verwerken met OCR** efficiënt en veelvoorkomende valkuilen te vermijden. + +**Prerequisites** – een recente Python 3.9+ omgeving, een geldig Aspose OCR‑licentiebestand, en een afbeelding (bijv. een factuur‑PNG). Geen andere externe tools zijn vereist. + +--- + +## Stap 1 – Initialiseer de OCR‑engine (Primaire setup) + +Voordat je **afbeelding kunt verwerken met OCR**, heb je een engine‑instantie nodig die je licentie bevat. Deze stap is cruciaal omdat een niet‑gelicentieerde engine alleen een beperkt resultaat oplevert. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Waarom dit belangrijk is*: Het `OcrEngine`‑object is het hart van de bibliotheek; het beheert taalmode­len, afbeelding‑preprocessing en licenties. De licentie vooraf instellen zorgt ervoor dat je volledige nauwkeurigheid krijgt en geen watermerken. + +--- + +## Stap 2 – Afbeelding laden voor OCR + +Nu de engine klaar is, moeten we **afbeelding laden voor OCR**. Aspose ondersteunt vele formaten (PNG, JPEG, TIFF), maar het gebruik van `Image.from_file` garandeert dat de afbeelding correct wordt gedecodeerd. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: Houd je afbeeldingsbestanden onder de 5 MB voor de snelste verwerking. Grotere bestanden kunnen worden verkleind met `image.resize(width, height)` vóór OCR. + +--- + +## Stap 3 – Region of interest (ROI) definiëren + +De meeste facturen bevatten veel irrelevante tekst—adresblokken, voetteksten, enz. Door **region of interest te definiëren** vertellen we de engine alleen te kijken waar het bedrag of de datum staat, wat snelheid en nauwkeurigheid verbetert. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Hoe het werkt*: De `Rectangle`‑klasse snijdt de afbeelding virtueel bij; de OCR‑engine ziet nooit pixels buiten het rechthoek, dus ruis buiten de ROI wordt genegeerd. + +--- + +## Stap 4 – Tekst herkennen binnen de ROI + +Met de engine, afbeelding en ROI klaar, **extraheren we eindelijk tekst uit afbeelding**. De `recognize`‑methode retourneert een `OcrResult`‑object dat de gedetecteerde tekenreeks en vertrouwensscores bevat. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Verwachte output** (voorbeeld voor een typische factuurtotaalregel): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Als de ROI correct gepositioneerd is, zie je alleen de regel die je nodig hebt—niets anders. + +--- + +## Stap 5 – Volledig werkend voorbeeld (klaar om te kopiëren‑plakken) + +Hieronder staat het volledige script dat alle vorige stappen combineert. Sla het op als `extract_invoice_roi.py` en voer `python extract_invoice_roi.py` uit. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Voer het script uit en je zou de doelregel in de console moeten zien verschijnen. Als je een lege string krijgt, controleer dan de ROI‑coördinaten nogmaals—soms zorgt een paar pixels afwijking ervoor dat de tekst volledig wordt weggelaten. + +--- + +## Stap 6 – Veelvoorkomende variaties & randgevallen + +### a) Verschillende factuurlay-outs +Facturen van verschillende leveranciers verschuiven vaak het vak voor het totaalbedrag. Om **afbeelding te verwerken met OCR** over meerdere lay-outs, overweeg: + +- **Meerdere ROI’s**: Voer de engine opeenvolgend uit met meerdere rechthoeken en kies het resultaat met de hoogste confidence. +- **Dynamische ROI‑detectie**: Gebruik een lichte afbeelding‑verwerkingsbibliotheek (bijv. OpenCV) om eerst het “Total”‑label te vinden, en bereken vervolgens de ROI relatief daaraan. + +### b) Gedraaide of scheve afbeeldingen +Als de scan scheef staat, roep `image.rotate(angle)` aan vóór herkenning: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR biedt ook auto‑deskew, maar handmatige rotatie geeft je meer controle. + +### c) Niet‑Latijnse tekens +Het standaard taalmode­l is Engels. Om **tekst uit factuur** te **extraheren** die in een andere taal is geschreven, stel je de taal in vóór herkenning: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Grote PDF‑s +Bij het werken met meer‑pagina PDF‑s, extraheer je eerst elke pagina als afbeelding (Aspose PDF → Image) en pas je vervolgens dezelfde ROI‑logica per pagina toe. + +--- + +## Stap 7 – Prestatie‑tips & pro‑tips + +- **Cache de engine**: Het herhaaldelijk aanmaken van `OcrEngine` in een lus vertraagt je. Instantieer deze één keer en hergebruik. +- **Batchverwerking**: Als je tientallen facturen hebt, wikkel je de OCR‑aanroep in een `ThreadPoolExecutor` om I/O‑gebonden werk te paralleliseren. +- **Confidence‑check**: `ocr_result.confidence` geeft een float tussen 0 en 1. Weiger resultaten onder 0,85 en val terug op een grotere ROI of handmatige controle. + +> **Let op**: Een te kleine ROI kan tekens afsnijden, wat leidt tot onleesbare output. Test altijd met een paar voorbeeld‑facturen voordat je opschaalt. + +--- + +## Conclusie + +Je hebt nu een solide, productie‑klare methode om **tekst uit afbeelding te extraheren** met Aspose OCR, inclusief een manier om **region of interest te definiëren**, **afbeelding te laden voor OCR**, en betrouwbaar **tekst uit factuur**‑velden te **extraheren**. Door OCR te beperken tot een strakke ROI verhoog je zowel snelheid als nauwkeurigheid—perfect voor batchverwerking van duizenden bonnen. + +Klaar voor de volgende stap? Probeer dit script te integreren in een Flask‑API zodat je webapp een factuur kan uploaden en direct het totaalbedrag teruggeeft. Of experimenteer met meerdere ROI’s om de datum, factuurnummer en verkopernaam in één keer te halen. De mogelijkheden zijn eindeloos, en met de hier behandelde basis ben je goed uitgerust om elke OCR‑uitdaging aan te gaan. + +Veel plezier met coderen, en moge je geëxtraheerde tekst altijd schoon zijn! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Workflow om tekst uit afbeelding te extraheren met Aspose OCR"} + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/dutch/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..ee3062357 --- /dev/null +++ b/ocr/dutch/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-05-03 +description: Tekst extraheren uit een afbeelding met Python's async-OCR. Leer hoe + je tif naar tekst converteert, een afbeelding laadt voor OCR, en efficiënt tekst + uit een afbeelding herkent. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: nl +og_description: Haal tekst uit een afbeelding met Python async OCR. Deze gids laat + zien hoe je tif naar tekst converteert, een afbeelding laadt voor OCR en tekst uit + een afbeelding herkent. +og_title: Tekst extraheren uit afbeelding met Python Async OCR – Complete gids +tags: +- OCR +- Python +- AsyncIO +title: Tekst uit afbeelding halen met Python Async OCR – Complete gids +url: /nl/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tekst uit afbeelding extraheren met Python Async OCR – Complete gids + +Moet je snel **tekst uit afbeelding** extraheren? Met Python's async OCR kun je dat doen in slechts een paar regels code. Of je nu te maken hebt met een enorme .tif‑scan of een handvol JPEG's, deze tutorial laat je zien hoe je tif naar tekst converteert, afbeelding laadt voor OCR, en uiteindelijk tekst uit afbeelding herkent zonder je event‑loop te blokkeren. + +Het punt is—de meeste ontwikkelaars grijpen naar een synchronische bibliotheek en staren vervolgens naar een bevroren UI terwijl de engine pixels verwerkt. In deze gids draaien we dat om door gebruik te maken van de asynchrone API van Aspose OCR Cloud, zodat je applicatie responsief blijft. Aan het einde heb je een uitvoerbaar script dat tekst uit elk ondersteund afbeeldingsformaat haalt, en begrijp je de reden achter elke stap. + +## Wat je zult leren + +- Hoe je de Aspose OCR Cloud SDK voor Python instelt. +- De exacte code die nodig is om **load image for OCR** te doen en een async herkenningstaak te starten. +- Tips voor het verwerken van grote .tif‑bestanden en licentie‑eigenaardigheden. +- Manieren om **extract image text** veilig uit te voeren, zelfs wanneer de service fouten retourneert. +- Een compleet, copy‑paste‑klaar voorbeeld dat je in je eigen project kunt gebruiken. + +> **Prerequisite**: Python 3.8+ en een Aspose OCR Cloud licentiebestand (`Aspose.OCR.Java.lic`). Er zijn geen andere third‑party pakketten vereist. + +![workflow voor tekst uit afbeelding extraheren](workflow.png){: .align-center alt="workflow voor tekst uit afbeelding extraheren"} + +## Tekst uit afbeelding extraheren – Async OCR overzicht + +Voordat we in de code duiken, laten we de stroom ontleden. Wanneer je `recognize_async` aanroept, stuurt de SDK de afbeelding naar de cloud van Aspose, start een achtergrondtaak en geeft je een `Task`‑object. Het wachten op die taak levert een `OcrResult` op met de platte‑tekstrepresentatie van de afbeelding. Omdat de oproep asynchroon is, kun je meerdere taken parallel starten—perfect voor batchverwerking van grote archieven gescande documenten. + +### Waarom async gebruiken? + +- **Non‑blocking I/O** – Je event‑loop blijft vrij om ander werk af te handelen (bijv. HTTP‑verzoeken bedienen). +- **Scalability** – Start tientallen herkenningen tegelijk; de cloud doet het zware werk. +- **Responsiveness** – UI‑applicaties bevriezen niet terwijl ze wachten op de OCR‑engine. + +Nu het “waarom” duidelijk is, laten we de **how** bekijken. + +## TIF naar tekst converteren met Aspose OCR + +Een veelvoorkomend struikelblok is de veronderstelling dat elke OCR‑bibliotheek .tif natively ondersteunt. Aspose wel, maar je moet nog steeds een `Image`‑object aanleveren. De SDK abstraheert het formaat, zodat je eenvoudig naar het bestandspad kunt wijzen. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Uitleg van belangrijke regels** + +- `ocr_engine.license = ...` – Zonder een geldige licentie geeft de cloud een 403‑fout. Zorg ervoor dat het `.lic`‑bestand toegankelijk is vanuit de werkmap van je script. +- `ocr.Image.from_file(image_path)` – Deze stap **loads image for OCR**; de SDK detecteert automatisch het formaat, zodat je de .tif niet van tevoren hoeft te converteren. +- `recognize_async` – Retourneert een coroutine‑compatibele taak. Je kunt er meerdere van starten in een `gather`‑aanroep als je een batch hebt. + +> **Pro tip**: Als je gigabyte‑grote TIFF‑bestanden verwerkt, overweeg ze eerst in pagina's te splitsen. Aspose’s `Image.from_file` kan een paginanaam accepteren, wat de geheugenbelasting vermindert. + +## Tekst uit afbeelding asynchroon herkennen + +Laten we zien hoe je de functie zou aanroepen vanuit een typisch script. Het `asyncio.run`‑ingangspunt is de eenvoudigste manier om de coroutine te starten wanneer je nog niet binnen een event‑loop zit (bijv. een eenvoudige CLI‑tool). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Wat je kunt verwachten** + +Het uitvoeren van het script op een duidelijke, hoge‑resolutie scan levert doorgaans een meerregelige string op die overeenkomt met de afgedrukte pagina. Als de afbeelding ruis bevat, probeert Aspose deze nog steeds op te schonen, maar je kunt vervormde tekens zien. In dat geval kun je overwegen om vooraf te verwerken met OpenCV (bijv. drempelwaarde) voordat je het bestand aan de OCR‑engine geeft. + +### Fouten op een nette manier afhandelen + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Het opvangen van `OcrException` zorgt ervoor dat je programma niet crasht wanneer de cloud een fout retourneert—iets dat vaak nieuwkomers overkomt die netwerk‑haperingen vergeten. + +## Afbeelding laden voor OCR – Praktische tips + +1. **File Path vs. Bytes** – De SDK accepteert een bestandspad, maar je kunt ook laden vanuit een `bytes`‑object als de afbeelding in het geheugen leeft (`ocr.Image.from_bytes`). Dit is handig wanneer je het bestand al van S3 of een database hebt opgehaald. +2. **Supported Formats** – Naast .tif ondersteunt Aspose PDF, BMP, GIF en zelfs multi‑page TIFFs. Gebruik `Image.from_file("doc.pdf")` om PDF's direct te OCR’en. +3. **Performance** – Voor batchtaken kun je dezelfde `OcrEngine`‑instantie hergebruiken; een nieuwe engine voor elk bestand maken voegt onnodige overhead toe. + +## Volledig werkend voorbeeld (Alle stappen in één script) + +Hieronder staat het volledige, kant‑klaar script dat licenties, foutafhandeling en een eenvoudige command‑line argumentparser bevat. Kopieer‑plak het, pas het licentiepAd aan, en je bent klaar. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Verwachte output** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Als de afbeelding een eenvoudige alinea bevat, zal de console dezelfde regels weergeven, met behoud van regeleinden. Voor multi‑page TIFFs voegt de SDK de pagina's in volgorde samen. + +## Veelgestelde vragen (FAQ) + +**Q: Werkt dit met andere async frameworks zoals FastAPI?** +A: Absoluut. Vervang de `asyncio.run`‑aanroep door `await async_ocr(path)` binnen je endpoint, en FastAPI zal de event‑loop voor je afhandelen. + +**Q: Wat als ik honderden bestanden tegelijk moet verwerken?** +A: Gebruik `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Kan ik tekst extraheren uit een met wachtwoord beveiligde PDF?** +A: Niet direct. Je moet de PDF eerst ontgrendelen (bijv. met `pikepdf`) en vervolgens de ontsleutelde bytes aan `ocr.Image.from_bytes` voeren. + +**Q: Hoe ga ik om met andere talen dan Engels?** +A: Stel de taal in vóór herkenning: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose ondersteunt meer dan 60 talen; raadpleeg de documentatie voor de exacte identifiers. + +## Conclusie + +Je hebt nu een solide **extract text from image**‑oplossing die Python’s `asyncio` en de asynchrone API van Aspose OCR Cloud benut. Door de bovenstaande stappen te volgen kun je **convert tif to text**, **load image for OCR** en **recognize text from image** uitvoeren op een non‑blocking manier—perfect voor zowel command‑line utilities als high‑traffic webservices. + +Wat nu? Probeer een map met scans te batchen, experimenteer met taalinstellingen, of pipe de OCR‑output naar een downstream NLP‑pipeline. De lucht is + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/dutch/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..4541a5fd7 --- /dev/null +++ b/ocr/dutch/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Haal tekst snel uit OCR met Aspose OCR. Leer hoe je OCR‑nauwkeurigheid + kunt verbeteren, afbeelding OCR kunt laden, afbeelding OCR kunt voorbewerken en + een OCR‑scan kunt uitvoeren in Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: nl +og_description: tekst snel extraheren met OCR via Aspose OCR. Leer hoe je OCR‑nauwkeurigheid + verbetert, afbeeldingen laadt voor OCR, afbeeldingen voorbewerkt voor OCR, en een + OCR‑scan uitvoert in Python. +og_title: tekst extraheren OCR – Complete gids met Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Tekst extraheren OCR – Complete gids met Aspose OCR +url: /nl/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Complete gids met Aspose OCR + +Heb je ooit **extract text ocr** nodig gehad van een scheve scan, maar wist je niet waarom de resultaten eruitzagen als onzin? Je bent niet de enige—veel ontwikkelaars lopen tegen dit probleem aan wanneer de afbeelding scheef, ruisachtig of gewoonweg weinig contrast heeft. Het goede nieuws is dat een paar configuratiewijzigingen een rommelige afbeelding kunnen omzetten in schone, doorzoekbare tekst. In deze tutorial lopen we een volledig, end‑to‑end voorbeeld door dat laat zien hoe je ocr‑nauwkeurigheid verbetert, image ocr laadt, image ocr voorbewerkt, en uiteindelijk een OCR‑scan uitvoert met Aspose OCR voor Python. + +Aan het einde van deze gids heb je een uitvoerbaar script dat een gescande JPEG leest, automatisch opschoont, en de geëxtraheerde tekst naar de console print. Geen mysterie “zie de docs” links—alles wat je nodig hebt staat hier. + +## Wat je nodig hebt + +- **Python 3.8+** (de nieuwste stabiele release werkt het beste) +- **Aspose.OCR for Python via .NET** – installeer met `pip install aspose-ocr` +- Een **license file** (`Aspose.OCR.Java.lic`) als je er een hebt gekocht (de gratis proefversie werkt voor testen) +- Een afbeelding die je wilt verwerken (bijv. `skewed_scanned_doc.jpg`) + +Dat is alles. Als je die onderdelen hebt, kunnen we meteen naar de code springen. + +## Stap 1: Extract Text OCR met Aspose OCR Engine + +Het eerste wat je doet is de OCR‑engine starten en je licentie toepassen. Beschouw de engine als het brein dat de afbeelding leest; zonder licentie weigert hij verder te werken dan een kleine demolimit. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Waarom dit belangrijk is:** Het toepassen van de licentie vooraf voorkomt een stille fout later. Als je deze stap overslaat, valt de engine terug op een beperkte modus en krijg je slechts een handvol tekens terug—zeker niet wat je verwacht wanneer je probeert **extract text ocr** uit te voeren. + +## Stap 2: Improve OCR Accuracy met Pre‑processing + +Scans die scheef of korrelig zijn, zijn de plaag van elk OCR‑project. Aspose laat je een aantal handige instellingen in- of uitschakelen die automatisch deskewen, ruis verwijderen en het contrast verhogen. Dit is de kern van **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – draait de afbeelding terug naar horizontaal, wat cruciaal is wanneer het originele document niet perfect vlak was. +- **remove_noise** – verwijdert willekeurige vlekjes die vaak voorkomen in JPEG's met lage resolutie. +- **enhance_contrast** – maakt donkere tekst donkerder en lichte achtergrond lichter, waardoor de engine tekens beter kan onderscheiden. +- **binarization = "Otsu"** – een klassiek algoritme dat de beste drempelwaarde bepaalt voor zwart‑wit conversie. + +> **Pro tip:** Als je weet dat je bronafbeeldingen al schoon zijn, kun je deze opties uitschakelen om de verwerking te versnellen. Maar voor de meeste scans uit de praktijk is het veiliger om ze aan te laten. + +## Stap 3: Load Image OCR voor scanning + +Nu de engine klaar is, moeten we **load image ocr**. De `Image.from_file`‑methode van Aspose ondersteunt JPEG, PNG, TIFF en nog een paar andere formaten. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Vervang `YOUR_DIRECTORY` door het daadwerkelijke pad op je machine. Als je werkt met een in‑memory byte‑stream (bijv. van een web‑upload), kun je ook `ocr.Image.from_bytes(byte_data)` gebruiken — dezelfde engine zal het verwerken. + +> **Randgeval:** Grote TIFF‑bestanden kunnen veel geheugen verbruiken. Als je een `MemoryError` krijgt, overweeg dan eerst de afbeelding te down‑samplen of `ocr_engine.config.max_image_size` te gebruiken om de afmetingen te beperken. + +## Stap 4: Run OCR Scan en krijg resultaten + +Met de afbeelding geladen en de voorbewerking ingeschakeld, is de laatste stap om **run OCR scan** uit te voeren. Deze oproep doet al het zware werk op de achtergrond. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Het `ocr_result`‑object bevat verschillende handige eigenschappen: + +- `ocr_result.text` – de platte string waar je om geeft. +- `ocr_result.confidence` – een numerieke score (0‑100) die de algehele betrouwbaarheid aangeeft. +- `ocr_result.words` – een lijst met woordobjecten met coördinaten van de omhullende box, handig voor markering. + +## Stap 5: Print de geëxtraheerde tekst + +Tot slot geven we het resultaat weer. In een echte applicatie schrijf je de tekst misschien naar een bestand, een database, of voer je het in een zoekindex in. Voor deze tutorial volstaat een eenvoudige `print`. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Verwachte output** (voorbeeld voor een eenvoudige factuur): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Als de confidence laag is (< 80), wil je misschien de voorbewerkingsopties opnieuw bekijken of een andere binarisatiemethode proberen zoals "Sauvola". + +## Bonus: Visualiseren van de Pre‑processing pipeline (optioneel) + +Soms helpt het om te zien wat de engine met de afbeelding heeft gedaan. Aspose laat je de verwerkte bitmap exporteren: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Je zou de afbeelding vervolgens in de documentatie kunnen insluiten: + +extract text ocr workflow diagram die de preprocessing stappen toont + +> **Waarom je dit zou doen:** Wanneer het OCR‑resultaat er niet goed uitziet, onthult een snelle blik op `processed_debug.png` vaak of de afbeelding nog te donker, nog scheef, of nog ruis bevatte. + +## Veelgestelde vragen & valkuilen + +- **Wat als mijn document meerdere pagina's heeft?** + Aspose OCR werkt pagina‑voor‑pagina. Loop over elke pagina‑afbeelding en concateneer `ocr_result.text`. + +- **Kan ik andere talen dan Engels herkennen?** + Ja—stel `ocr_engine.config.language = "fra"` (of een andere ISO‑639‑2 code) in voordat je `recognize` aanroept. + +- **Is er een limiet op de afbeeldingsgrootte?** + De engine beperkt standaard tot 10 MP. Verhoog `ocr_engine.config.max_image_size` als je grotere scans nodig hebt, maar houd het geheugenverbruik in de gaten. + +- **Heb ik een aparte OCR‑engine nodig voor PDF's?** + Voor PDF's kun je elke pagina eerst als afbeelding extraheren (met Aspose.PDF) of de ingebouwde PDF‑OCR‑functie gebruiken. De hier getoonde stappen blijven hetzelfde nadat je een afbeelding hebt. + +## Samenvatting + +We hebben behandeld hoe je **extract text ocr** gebruikt met Aspose OCR voor Python, van het licentiëren van de engine tot het aanpassen van instellingen die **improve ocr accuracy**, het laden van het bronbestand, en uiteindelijk **run OCR scan** om schone tekst te halen. Het volledige script is klaar om te kopiëren‑en‑plakken, en je begrijpt nu waarom elke configuratie‑vlag belangrijk is. + +## Wat is er hierna? + +- **Experimenteer met verschillende binarisatiemethoden** (`"Sauvola"`, `"Bradley"`). Sommige lettertypen reageren beter op adaptieve drempels. +- **Integreer met een zoekmachine** (bijv. Elasticsearch) door de confidence‑score te gebruiken om resultaten te rangschikken. +- **Combineer met OCR post‑processing** bibliotheken zoals `pyspellchecker` om veelvoorkomende mis‑herkenningen op te schonen. +- **Verken batchverwerking** voor honderden scans — wikkel de stappen in een functie en geef een map met afbeeldingen. + +Voel je vrij om de code aan te passen, je eigen logging toe te voegen, of het in een grotere document‑management pipeline te integreren. Als je ergens tegenaan loopt, laat dan een reactie achter—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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/dutch/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..e136a7080 --- /dev/null +++ b/ocr/dutch/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Hoe PDF OCR'en met Aspose OCR Java. Leer hoe je OCR op PDF uitvoert, + tekst in PDF herkent, PDF naar JSON converteert en PDF laadt voor OCR in slechts + een paar regels code. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: nl +og_description: Hoe PDF OCR'en met Aspose OCR Java. Deze gids laat zien hoe je OCR + op PDF uitvoert, tekst in PDF herkent, PDF naar JSON converteert en PDF snel laadt + voor OCR. +og_title: Hoe PDF OCR'en met Aspose OCR – Volledige programmeertutorial +tags: +- Aspose OCR +- Java +- PDF processing +title: Hoe PDF OCR'en met Aspose OCR – Complete stapsgewijze handleiding +url: /nl/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe PDF OCR'en met Aspose OCR – Complete Stapsgewijze Gids + +Heb je je ooit afgevraagd **hoe je PDF's OCR't** zonder te worstelen met command‑line tools of te betalen voor dure SaaS? Je bent niet de enige. In veel projecten—factuurautomatisering, archivering van gescande contracten, of het bouwen van een doorzoekbare kennisbank—kom je de noodzaak tegen om snel en betrouwbaar tekst uit PDF's te extraheren. + +Het goede nieuws? Met Aspose OCR voor Java kun je **run OCR on PDF**, tekst in PDF‑pagina's herkennen, **convert PDF to JSON**, en zelfs **load PDF for OCR** in een handvol regels. In deze tutorial lopen we de volledige workflow door, leggen we uit waarom elke stap belangrijk is, en geven we je een kant‑klaar code‑voorbeeld dat je in je eigen project kunt gebruiken. + +## Wat je zult leren + +- Hoe je de Aspose OCR‑engine instelt en je licentie toepast. +- De exacte manier om **load PDF for OCR** te gebruiken en het aan de recognizer te voeren. +- Hoe je **recognize text PDF** over alle pagina's in één oproep uitvoert. +- Het exporteren van het volledige OCR‑resultaat naar een **JSON**‑bestand (perfect voor downstream‑API's) en een enkele pagina naar **XML**. +- Tips, valkuilen en variaties die je nodig kunt hebben bij het werken met multi‑page PDF's of aangepaste taalpakketten. + +> **Prerequisites** – Je hebt Java 8 of hoger nodig, een geldig Aspose OCR voor Java licentiebestand (`Aspose.OCR.Java.lic`), en de Aspose OCR JAR op je classpath. Geen andere externe libraries zijn vereist. + +--- + +## Hoe PDF OCR'en – Initialiseert Aspose OCR Engine + +Het eerste wat je moet doen is een instantie van `OcrEngine` maken en je licentie toevoegen. Deze stap ontgrendelt de volledige functionaliteit en verwijdert het evaluatiewatermerk. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Waarom dit belangrijk is:** +Zonder licentie draait Aspose OCR in een beperkte “trial”‑modus die het aantal pagina's beperkt en een watermerk aan de output toevoegt. Het toepassen van de licentie vooraf zorgt ervoor dat de rest van de pipeline werkt zonder onverwachte beperkingen. + +--- + +## OCR op PDF uitvoeren – Document laden en tekst herkennen + +Nu **load PDF for OCR**. Aspose OCR behandelt PDF's als een speciaal `PdfDocument`‑type, dat intern elke pagina als afbeelding extraheert voordat het aan de recognizer wordt gevoed. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Wat er onder de motorkap gebeurt?** +`recognizeDocument` doorloopt elke pagina, rasteriseert deze op de optimale DPI, en voert vervolgens de OCR‑engine uit. Het resultaat is een `OcrPage`‑array waarbij elk element de gedetecteerde tekst, vertrouwensscores en lay‑outinformatie bevat. Deze aanpak is veel betrouwbaarder dan het voeden van ruwe PDF‑bytes aan een generieke OCR‑bibliotheek. + +--- + +## OCR‑resultaat naar JSON converteren – Volledig rapport exporteren + +De meeste downstream‑systemen geven de voorkeur aan JSON omdat het gemakkelijk te deserialiseren is in Java, JavaScript, Python of zelfs PowerShell. Aspose OCR wordt geleverd met een `JsonExport`‑helper die de volledige `OcrPage[]`‑array serialiseert. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Wanneer zou je dit gebruiken?** +Als je de OCR‑output moet invoeren in een zoekindex (Elasticsearch, Solr) of een data‑pipeline, biedt het JSON‑formaat een gestructureerde weergave van elke pagina, regel en woord, compleet met vertrouwenswaarden. + +--- + +## Eerste pagina naar XML exporteren – Individuele pagina opslaan + +Soms ben je alleen geïnteresseerd in één pagina—misschien bevat de eerste pagina een titel of een factuurnummer. De `XmlExport`‑klasse stelt je in staat om een enkele `OcrPage` naar een nette XML‑file te dumpen. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Waarom XML?** +Legacy‑systemen of bepaalde enterprise‑workflows vertrouwen nog steeds op XML‑schema's voor ingestie. Het gegenereerde bestand volgt het eigen schema van Aspose, waardoor validatie eenvoudig is. + +--- + +## Verifieer de output – Controleer JSON‑ en XML‑bestanden + +Na het uitvoeren van het programma zou je twee bestanden moeten zien in `YOUR_DIRECTORY`: + +- `report_ocr.json` – Bevat een array van paginavoorwerpen. Een kort fragment kan er zo uitzien: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Bevat dezelfde informatie voor pagina 1, ingesloten in ``‑tags. + +Open ze in een editor; je zult de ruwe OCR‑strings, vertrouwensscores en coördinaten van de begrenzings‑boxen zien. Als de JSON leeg lijkt, controleer dan of de invoer‑PDF daadwerkelijk rasterinhoud (gescande afbeeldingen) bevat en geen selecteerbare tekst—Aspose OCR werkt alleen op afbeeldingen. + +--- + +## Veelvoorkomende valkuilen & Pro‑tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Empty JSON** | PDF bevat native tekst, geen afbeeldingen. | Gebruik `PdfDocument.fromFile(..., true)` om rasterisatie te forceren, of converteer pagina's vooraf naar afbeeldingen. | +| **Low confidence** | Bron‑PDF is lage resolutie of sterk gecomprimeerd. | Verhoog DPI door `ocrEngine.getImageProcessingOptions().setDpi(300)` aan te roepen vóór `recognizeDocument`. | +| **License not found** | Verkeerd pad of ontbrekend bestand. | Gebruik een absoluut pad of plaats het `.lic`‑bestand op de classpath en roep `lic.setLicense("Aspose.OCR.Java.lic")` aan. | +| **Out‑of‑memory on huge PDFs** | Alle pagina's worden in één keer in het geheugen geladen. | Verwerk pagina's in batches: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Voorbeeld uitbreiden + +- **Run OCR on PDF with a specific language** – stel `ocrEngine.getLanguage().setLanguage(Language.English)` in of laad een aangepast taalpakket. +- **Export each page to separate JSON files** – iterate over `ocrPages` en roep `JsonExport.save(page, "page" + page.getPageNumber() + ".json")` aan. +- **Integrate with a search engine** – voer de JSON in de `attachment`‑processor van Elasticsearch voor full‑text zoeken. + +--- + +## Conclusie + +Je hebt nu een complete, productie‑klare oplossing voor **how to OCR PDF** met Aspose OCR voor Java. Door de engine te initialiseren, de PDF te laden, OCR uit te voeren en zowel **JSON** als **XML** te exporteren, kun je OCR integreren in elke backend‑workflow—of je nu **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, of simpelweg **load PDF for OCR** moet doen. + +Probeer het, pas de DPI‑ of taalinstellingen aan, en zie hoe je voorheen ondoorzichtige PDF's doorzoekbare assets worden. Wil je verder gaan? Probeer de JSON te indexeren in Elasticsearch, of verwerk de XML na‑processing met XSLT om aangepaste rapporten te genereren. + +Veel programmeerplezier, en moge je PDF's altijd leesbaar zijn! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/dutch/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..3b34f6b6e --- /dev/null +++ b/ocr/dutch/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'hoe OCR snel uit te voeren: leer tekst uit een afbeelding te extraheren + en tekst uit een formulier te herkennen met Aspose OCR Java. eenvoudige stappen + voor het lezen van een afbeelding voor OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: nl +og_description: 'hoe OCR snel uit te voeren: leer tekst uit een afbeelding te extraheren + en tekst van een formulier te herkennen met Aspose OCR Java. Eenvoudige stappen + voor het lezen van een afbeelding voor OCR.' +og_title: hoe OCR op een formulier uit te voeren – tekst uit afbeelding extraheren +tags: +- ocr +- java +- image-processing +title: hoe OCR op een formulier uit te voeren – tekst uit afbeelding extraheren +url: /nl/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# hoe OCR uit te voeren op een formulier – tekst uit afbeelding halen + +Heb je je ooit afgevraagd **hoe je OCR kunt uitvoeren** op een gescand document zonder uren te verspillen aan obscure bibliotheken? Je bent niet de enige. In veel projecten—of het nu gaat om het digitaliseren van facturen, het archiveren van contracten, of het halen van gegevens uit handgeschreven formulieren—is het kunnen **tekst uit afbeelding halen** een dagelijks pijnpunt. + +Het komt erop neer: Aspose OCR for Java maakt de hele pijplijn bijna pijnloos. In deze tutorial lopen we elke regel code door die je nodig hebt om **tekst uit formulier te herkennen**, leggen we uit waarom elke stap belangrijk is, en laten we zien hoe je **afbeelding voor OCR** resultaten kunt lezen met confidence‑scores. Aan het einde heb je een kant‑klaar Java‑class dat je in elk Maven‑ of Gradle‑project kunt plaatsen. + +## Wat je gaat leren + +- De Aspose OCR‑engine instellen en je licentie toepassen. +- Een JPEG, PNG of TIFF in het geheugen laden. +- OCR uitvoeren en over elke herkende tekstregel itereren. +- Regels met lage confidence markeren voor handmatige controle. +- Het voorbeeld uitbreiden naar multi‑page PDF’s of andere afbeeldingsformaten. + +Ervaring met Aspose is niet vereist, alleen een basis Java‑ontwikkelomgeving (JDK 11+ en een IDE naar keuze). Laten we beginnen. + +![how to run ocr example](/images/ocr-demo.png){alt="voorbeeld van hoe OCR uit te voeren op een gescande formulier"} + +## Stap 1: De OCR‑engine initialiseren – **hoe OCR uit te voeren** + +Het eerste wat je moet doen vóór enige OCR‑bewerking is een `OcrEngine`‑instance maken en een geldige licentie koppelen. Zonder licentie draait de bibliotheek in demomodus, waardoor het aantal pagina’s dat je kunt verwerken beperkt is. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Waarom dit belangrijk is:** +De `OcrEngine` bevat alle configuratie—taal, detectiemodus en prestatie‑tweaks. Door de licentie direct in te stellen voorkom je de stille terugval naar demomodus die anders je output zou inkorten. + +## Stap 2: De afbeelding laden – **tekst uit afbeelding halen** + +Vervolgens hebben we een `Image`‑object nodig dat naar het bestand wijst dat je wilt scannen. Aspose ondersteunt een breed scala aan formaten, zodat je een gescande PDF‑pagina die je al naar PNG hebt geconverteerd, een ruwe JPEG, of zelfs een multi‑page TIFF kunt invoeren. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Waarom dit belangrijk is:** +Het laden van de afbeelding als een `Image`‑object geeft de engine toegang tot pixeldata, DPI‑informatie en kleurdiepte—alles wat de OCR‑nauwkeurigheid beïnvloedt. Als je deze stap overslaat en een ruwe byte‑array doorgeeft, verlies je die nuttige hints. + +## Stap 3: OCR uitvoeren – **tekst uit formulier herkennen** + +Nu het leuke deel: de tekens daadwerkelijk herkennen. De `recognize`‑methode retourneert een `RecognitionResult` die een collectie `Line`‑objecten bevat, elk met een eigen confidence‑score. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Waarom dit belangrijk is:** +Het aanroepen van `recognize` start een cascade van interne processen—pre‑processing (deskew, ruisverwijdering), segmentatie, karakterclassificatie, en post‑processing (spell‑check, taalmodel). Het resultaatobject verbergt al die complexiteit. + +## Stap 4: De resultaten verwerken – **afbeelding voor OCR** output + +Zodra je de `RecognitionResult` hebt, kun je door elke regel itereren, automatisch bepalen wat je wilt behouden, en alles markeren wat er onzeker uitziet. Een confidence‑drempel van 85 % is een goed startpunt voor de meeste gedrukte formulieren. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Verwachte output (voorbeeld):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +In het bovenstaande voorbeeld was de engine onzeker over het laatste cijfer van het totaalbedrag, dus we drukten een waarschuwing af. Je kunt die regels naar een UI sturen voor handmatige correctie of ze loggen voor later review. + +### Randgevallen & Tips + +- **Meerdere pagina’s:** Als je een multi‑page PDF hebt, loop dan over elke paginanaam en roep `Image.fromPdf(pdfPath, pageIndex)` aan. +- **Verschillende talen:** Stel `engine.getLanguage().setLanguage(Language.Spanish);` in vóór het aanroepen van `recognize`. +- **Afbeeldingskwaliteit:** Scans met lage resolutie (< 150 DPI) leveren vaak een confidence onder 80 % op. Upscaling met `image.resize(300, 300)` kan helpen, maar de beste oplossing is een betere scan. +- **Prestaties:** Het hergebruiken van dezelfde `OcrEngine`‑instance voor veel afbeeldingen vermindert overhead vergeleken met telkens een nieuwe instantie maken. + +## Veelgestelde vragen + +**Kan ik dit op een headless server draaien?** +Zeker. De bibliotheek heeft geen GUI‑afhankelijkheden, dus hij werkt prima in Docker‑containers of CI‑pipelines. + +**Wat als ik nog geen licentie heb?** +Je kunt nog steeds `engine.recognize` aanroepen, maar de demomodus stopt na de eerste 2 pagina’s en voegt een watermerk toe aan de output. Ideaal voor snelle tests. + +**Is er een manier om gestructureerde data (bijv. tabellen) te extraheren?** +Aspose OCR biedt een `TableRecognizer`‑klasse, maar dat valt buiten de scope van deze beginnersgids. Zodra je de basis onder de knie hebt, kun je de officiële documentatie raadplegen voor `TableRecognizer`. + +## Alles samengevat – **hoe OCR uit te voeren** in één oogopslag + +We hebben alles behandeld wat je nodig hebt om **hoe OCR uit te voeren** op een gescand formulier: de engine initialiseren, de afbeelding laden, de herkenning uitvoeren, en de resultaten intelligent afhandelen. Met slechts een paar regels Java kun je **tekst uit afbeelding halen**, **tekst uit formulier herkennen**, en **afbeelding voor OCR** output lezen met confidence‑scores die je laten beslissen wanneer handmatige controle nodig is. + +Volgende stappen? Probeer de JPEG te vervangen door een multi‑page TIFF, experimenteer met verschillende confidence‑drempels, of integreer de output in een database voor geautomatiseerde gegevensinvoer. De mogelijkheden zijn net zo breed als de documenten die je moet verwerken. + +Heb je meer vragen over OCR, beeld‑preprocessing, of licenties? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/dutch/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..3a1875a08 --- /dev/null +++ b/ocr/dutch/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-05-03 +description: Hoe OCR te gebruiken om tekst uit PDF‑bestanden te extraheren in Java. + Leer tekst uit PDF te herkennen, PDF naar tekst te converteren en OCR voor meerpagina‑PDF’s + efficiënt af te handelen. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: nl +og_description: Hoe OCR te gebruiken om tekst uit PDF‑bestanden te extraheren in Java. + Deze gids laat zien hoe je tekst uit PDF herkent, PDF naar tekst converteert en + OCR voor meerpagina‑PDF’s verwerkt. +og_title: Hoe OCR in Java te gebruiken – Tekst uit meerpagina‑PDF's extraheren +tags: +- ocr +- java +- pdf +- aspose +title: Hoe OCR in Java te gebruiken – Tekst extraheren uit meerpagina‑PDF's +url: /nl/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe OCR te gebruiken in Java – Tekst extraheren uit PDF's met meerdere pagina's + +**Hoe OCR te gebruiken** in een Java‑project? Als je ooit tekst uit PDF‑bestanden moest extraheren zonder te vertrouwen op de interne tekstdataset van de PDF, ben je hier op de juiste plek. Deze tutorial leidt je door een complete, uitvoerbare oplossing die **tekst uit PDF herkent**, PDF naar tekst converteert, en zelfs een **OCR‑multi‑page PDF** verwerkt met één enkele aanroep. + +Stel je voor dat je een gescande overeenkomst ontvangt — een 12‑pagina TIFF in een PDF. Je wilt doorzoekbare tekst voor indexering, maar het bestand bevat geen ingesloten tekens. Geen probleem; we laten je precies zien hoe je dit stap voor stap kunt doen. + +> **Wat je krijgt:** een kant‑klaar Java‑fragment dat Aspose.OCR gebruikt, uitleg waarom elke regel belangrijk is, tips voor veelvoorkomende valkuilen, en voorbeeldoutput die je direct kunt verifiëren. + +--- + +## Wat je nodig hebt + +* **Java 17** (of een recente JDK) – de code werkt ook met oudere versies, maar 17 is het optimale punt. +* **Aspose OCR for Java** bibliotheek – je kunt de JAR downloaden van de Aspose‑site of toevoegen via Maven/Gradle. +* Een **multi‑page PDF** (of TIFF) die je wilt verwerken. In onze voorbeelden gebruiken we `contract_multipage.pdf` geplaatst in een map genaamd `YOUR_DIRECTORY`. +* Een geldig **Aspose OCR licentiebestand** (`Aspose.OCR.Java.lic`). Zonder dit draait de bibliotheek in evaluatiemodus, wat prima is voor een snelle test maar een watermerk toevoegt. + +Dat is alles—geen extra OCR‑engines, geen native binaries, alleen één JAR en een licentie. + +![voorbeeld van OCR gebruiken](https://example.com/ocr-demo.png "Hoe OCR te gebruiken in Java – visueel overzicht van het proces") + +*Afbeeldingsalt‑tekst: hoe OCR te gebruiken in Java – visueel overzicht van het laden, herkennen en outputten van tekst.* + +## Stap 1: OCR‑engine instellen – **Hoe OCR te gebruiken** correct + +Het eerste wat je moet doen is een instantie van de OCR‑engine maken en je licentie toepassen. Zonder licentie werkt de engine nog steeds, maar zie je een proef‑watermerk in de output. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Waarom dit belangrijk is:** +De `OcrEngine` is het kernobject dat beeldanalyse, taaldetectie en teksterkenning coördineert. Het vroegtijdig instellen van de licentie voorkomt dat de engine later terugvalt op de proefmodus, wat de nauwkeurigheid kan beïnvloeden. + +## Stap 2: Document laden – **Tekst extraheren uit PDF** efficiënt + +Aspose OCR kan zowel PDF‑ als TIFF‑containers direct lezen. Hier laden we een multi‑page PDF die gescande afbeeldingen bevat. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Waarom dit belangrijk is:** +`PdfDocument.fromFile` parseert de container en geeft je toegang tot elke pagina als een afbeelding. Deze abstractie laat de OCR‑engine elke pagina uniform behandelen, ongeacht het oorspronkelijke formaat. + +**Tip:** Als je bronbestand een TIFF is, werkt dezelfde aanroep — Aspose detecteert het formaat automatisch. Geen extra code nodig. + +## Stap 3: Alle pagina's in één keer herkennen – **Tekst herkennen uit PDF** naadloos + +In plaats van zelf over pagina's te loopen, kun je de engine vragen het volledige document in één enkele aanroep te verwerken. Dit is de meest efficiënte manier om **PDF naar tekst te converteren** bij een **OCR‑multi‑page PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Waarom dit belangrijk is:** +Het één keer aanroepen van `recognizeDocument` vermindert de overhead die ontstaat door de engine herhaaldelijk te initialiseren. Het garandeert ook consistente taalinstellingen over pagina's heen, wat cruciaal is voor juridische documenten die vaak verschillende lettertypen combineren. + +## Stap 4: Herkende tekst outputten – **PDF naar tekst converteren** voor indexering + +Nu elke pagina verwerkt is, itereren we simpelweg over de resultaten en printen we de geëxtraheerde strings. Je kunt ze ook naar een bestand, een database schrijven, of invoeren in een zoekindex. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Verwachte output (afgekapt):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Als de PDF 12 pagina's bevat, zie je twaalf `--- Page X ---` secties, elk gevolgd door de OCR‑geëxtraheerde tekst. + +## Geavanceerde tips voor een **OCR‑multi‑page PDF** + +### 1. Taalinstellingen aanpassen + +Standaard probeert Aspose de taal automatisch te detecteren, maar je kunt het proces versnellen door deze expliciet op te geven: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Beeldvoorverwerking regelen + +Gescannde contracten hebben vaak ruis. Je kunt kantcorrectie en binarisatie inschakelen: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Grote bestanden elegant verwerken + +Als je PDF's verwerkt die groter zijn dan 100 MB, overweeg dan om pagina's te streamen in plaats van het volledige document in één keer te laden: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Dit patroon vermindert geheugenbelasting en is handig voor batch‑taken. + +### 4. Exporteren naar gestructureerde formaten + +Naast platte tekst kun je exporteren naar JSON of XML voor verdere verwerking: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Valkuil | Waarom het gebeurt | Oplossing | +|---------|--------------------|----------| +| **Lege output** | Licentie niet toegepast of bestandspad onjuist. | Controleer het pad van `setLicense` en bevestig dat het bestand bestaat. | +| **Onzinnige tekens** | Verkeerde taalinstelling of bron met lage resolutie. | Stel de juiste `Language` in en zorg dat bronafbeeldingen ≥300 dpi zijn. | +| **Out‑of‑memory fouten** | Het in één keer laden van een enorme PDF. | Gebruik de hierboven getoonde streaming‑aanpak. | +| **Gedeeltelijke paginaherkenning** | PDF bevat gemengde raster‑/vectorlagen. | Maak de PDF eerst plat: `pdfDoc.flatten();` vóór OCR. | + +## Samenvatting – Wat we hebben behandeld + +* **Hoe OCR te gebruiken** met Aspose in Java. +* **Tekst extraheren uit PDF** (of TIFF) in één enkele aanroep. +* **Tekst herkennen uit PDF** over alle pagina's zonder handmatige loops. +* **PDF naar tekst converteren** en deze netjes outputten. +* Tips voor het verwerken van een **OCR‑multi‑page PDF**, inclusief taal‑aanpassingen en geheugen‑vriendelijke streaming. + +Je hebt nu een complete, productie‑klare snippet die je in elk Java‑project kunt gebruiken. Voel je vrij om de beeldverwerkingsopties aan te passen, de output‑bestemming te wijzigen, of het resultaat te integreren in een zoekindex. + +## Volgende stappen + +* **Ontdek de geavanceerde functies van Aspose OCR** – zoals handschriftherkenning of PDF/A‑compatibiliteit. +* **Combineer OCR met PDF‑manipulatie** (bijv. een verborgen tekstdlaag terug in de PDF toevoegen voor doorzoekbare PDF's). +* **Automatiseer batchverwerking** door een map met PDF's te lezen en elk resultaat naar een overeenkomstig `.txt`‑bestand te schrijven. + +Als je tegen problemen aanloopt, zijn de Aspose‑forums een uitstekende plek om hulp te vragen, en de API‑referentie biedt uitgebreide details over elke hier gebruikte methode. + +Veel programmeerplezier, en geniet van het omzetten van die koppige scans naar doorzoekbare tekst! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/dutch/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..e7c6377d7 --- /dev/null +++ b/ocr/dutch/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Lees een binair bestand in Java om een Aspose OCR‑licentie te laden. + Leer het gebruik van FileInputStream, het omgaan met binaire gegevens en praktische + tips in deze stapsgewijze gids. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: nl +og_description: Lees een binair bestand in Java om een Aspose OCR‑licentie te laden. + Volg deze volledige gids om FileInputStream en het omgaan met binaire gegevens in + Java onder de knie te krijgen. +og_title: Binair bestand lezen in Java – Licentiebytes laden voor Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Binaire bestand lezen in Java – Licentiebytes laden voor Aspose OCR +url: /nl/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Read Binary File Java – Licentiebytes laden voor Aspose OCR + +Heb je ooit **read binary file Java** moeten gebruiken bij het omgaan met een licentie voor een externe bibliotheek? Je bent niet de enige. De meeste Java‑ontwikkelaars lopen tegen dit probleem aan wanneer ze een `.lic`‑bestand in een OCR‑engine willen laden, en de gebruikelijke tekst‑bestand trucjes werken gewoon niet. + +In deze tutorial lopen we een volledig, uitvoerbaar voorbeeld door dat precies laat zien hoe je een binair licentiebestand opent, de bytes in het geheugen laadt, en die bytes doorgeeft aan Aspose OCR voor Java. Onderweg zie je waarom `FileInputStream` het juiste hulpmiddel is, hoe je mogelijke `IOException`s afhandelt, en een paar pro‑tips die je misschien niet in de officiële documentatie vindt. + +Aan het einde van de gids kun je **read binary file Java**‑stijl een `License`‑object maken en dit toewijzen aan een `OcrEngine` zonder enige moeite. + +## Wat deze gids behandelt + +- Vereisten: Java 17+, Maven (of Gradle), en de Aspose OCR for Java‑bibliotheek. +- Stap‑voor‑stap code die een binair `.lic`‑bestand leest met `FileInputStream`. +- Uitleg van elke regel zodat je het *waarom* achter het *hoe* begrijpt. +- Afhandeling van randgevallen (ontbrekend bestand, corrupte bytes) en praktische debugging‑tips. +- Een definitief, zelfstandig fragment dat je kunt copy‑pasten in je IDE en direct kunt uitvoeren. + +Als je je ooit afvroeg of je een speciale API nodig hebt om licentiebestanden te lezen, is het antwoord een volmondig **nee**—gewoon goed oud binair I/O. Laten we beginnen. + +## Stap 1: Read Binary File Java met FileInputStream + +Het eerste dat we nodig hebben is een betrouwbare manier om ruwe bytes uit het licentiebestand op schijf te halen. In Java is `FileInputStream` daarvoor de werkpaard. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Waarom dit werkt:** `Files.readAllBytes` maakt intern een `FileInputStream` aan, leest de volledige stream en sluit deze voor je. Het is veilig, beknopt, en voorkomt de klassieke valkuil van “vergeet de stream te sluiten”. Als je het klassieke patroon verkiest, kun je het vervangen door een try‑with‑resources‑blok dat direct `FileInputStream` gebruikt. + +### Pro‑tip + +Als het licentiebestand enorm is (onwaarschijnlijk, maar mogelijk), overweeg dan om het in stukken te streamen in plaats van alles in één keer te laden. Voor de meeste OCR‑licentiebestanden—meestal onder een paar kilobytes—is de één‑keer‑aanpak perfect geschikt. + +## Stap 2: Maak License‑object voor Aspose OCR + +Nu we de ruwe bytes hebben, moeten we ze omzetten naar een Aspose‑compatibel `License`‑object. De bibliotheek biedt een `License`‑klasse die een byte‑array accepteert. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Waarom dit belangrijk is:** Door de bytes direct door te geven, vermijd je padgerelateerde problemen (zoals verwarring over relatieve paden ten opzichte van de werkmap) en houd je je deployment draagbaar—pak simpelweg het `.lic`‑bestand mee waar je applicatie ook draait. + +## Stap 3: Wijs licentie toe aan OCR‑engine + +Met het `License`‑object klaar, is de laatste stap om het te koppelen aan een `OcrEngine`. Deze stap zorgt ervoor dat de OCR‑component draait in gelicentieerde modus in plaats van de evaluatie‑sandbox. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Opmerking:** Sommige oudere Aspose‑versies bieden een openbaar `license`‑veld in plaats van een setter. Pas de code dienovereenkomstig aan (`ocrEngine.license = license;`) als je een compilatiefout krijgt. + +## Stap 4: Verifieer of licentie succesvol geladen is (optioneel maar nuttig) + +Een snelle sanity‑check bespaart later uren debugging. De `License`‑klasse gooit geen uitzondering bij succes, maar je kunt een onschuldige OCR‑bewerking proberen om te bevestigen. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Als je het bericht “License applied successfully” ziet, ben je klaar om te gaan. Zo niet, controleer dan het bestandspad, de byte‑integriteit en of je de juiste Aspose‑versie gebruikt. + +## Volledig werkend voorbeeld + +Alle onderdelen samenvoegen levert een compact, copy‑paste‑klaar programma op. Voel je vrij om dit in een `Main.java`‑bestand te plaatsen en uit te voeren. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Verwachte output (ervan uitgaande dat de dummy‑afbeelding bestaat):** + +``` +License applied successfully – OCR engine is ready. +``` + +Als het licentiebestand ontbreekt of corrupt is, zie je een duidelijke foutmelding zoals: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +- **Padverwarring:** Relatieve paden worden opgelost ten opzichte van de werkdirectory van de JVM, niet ten opzichte van de locatie van het bronbestand. Gebruik een absoluut pad of plaats het `.lic`‑bestand naast de JAR en verwijs ernaar met `getResourceAsStream`. +- **Verkeerde byte‑volgorde:** Probeer nooit een binair bestand te lezen met een `Reader` (karakter‑georiënteerd). Dit zal de data corrupt maken. Houd je aan `FileInputStream`‑gebaseerde API’s. +- **Versiemismatch:** Sommige oudere Aspose‑releases verwachten `license.setLicense("path/to/file")` in plaats van `setLicenseBytes`. Controleer de release‑notes van de bibliotheek als je een `NoSuchMethodError` tegenkomt. +- **Vergeten streams te sluiten:** Als je teruggaat naar de klassieke `FileInputStream`‑aanpak, wikkel deze dan in een try‑with‑resources‑blok om sluiting te garanderen. + +## Conclusie + +Je weet nu hoe je **read binary file Java** kunt gebruiken om een Aspose OCR‑licentie te laden, een `License`‑object te maken en dit aan een `OcrEngine` te koppelen. Het proces draait om correcte binaire gegevensverwerking met `FileInputStream` (of de modernere `Files.readAllBytes`) en een paar eenvoudige API‑aanroepen. + +Vanaf hier kun je doorgaan naar echte OCR‑taken—tekst extraheren uit PDF’s, afbeeldingen of zelfs gescande documenten—met het vertrouwen dat de licentielaag je niet in de steek laat. Als je nieuwsgierig bent naar gerelateerde onderwerpen, bekijk dan tutorials over **Java FileInputStream**, **binary data handling Java**, en **read license file Java** voor andere bibliotheken. + +Veel plezier met coderen, en moge je OCR‑resultaten kristalhelder zijn! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/dutch/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/dutch/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..2c0a12492 --- /dev/null +++ b/ocr/dutch/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-05-03 +description: Leer hoe je tekst uit een afbeelding herkent en een afbeelding naar tekst + converteert met Aspose OCR voor Java. Inclusief tips om de OCR‑nauwkeurigheid te + verbeteren en OCR op PNG‑bestanden uit te voeren. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: nl +og_description: Stapsgewijze handleiding om tekst uit een afbeelding te herkennen + met Aspose OCR voor Java. Leer hoe je een afbeelding naar tekst converteert, de + OCR‑nauwkeurigheid verbetert en OCR op PNG uitvoert. +og_title: herken tekst uit afbeelding met Aspose OCR – Java‑tutorial +tags: +- OCR +- Java +- Aspose +- Image Processing +title: herken tekst van afbeelding met Aspose OCR – Complete Java-gids +url: /nl/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# herken tekst uit afbeelding met Aspose OCR – Complete Java-gids + +Heb je ooit **tekst uit afbeelding moeten herkennen** maar wist je niet welke bibliotheek betrouwbare resultaten zou leveren? Je bent niet de enige—veel ontwikkelaars lopen tegen die muur aan wanneer ze voor het eerst proberen gegevens uit gescande PDF's, bonnen of laboratoriumrapporten te extraheren. Het goede nieuws is dat Aspose OCR voor Java het hele proces een eitje maakt, en je zelfs **afbeelding naar tekst kunt converteren** met slechts een handvol regels. + +In deze tutorial lopen we alles door wat je moet weten: van het laden van een afbeelding voor OCR, het aanpassen van instellingen om **OCR-nauwkeurigheid te verbeteren**, tot uiteindelijk **OCR op PNG**-bestanden uit te voeren en de geëxtraheerde tekst af te drukken. Geen poespas, alleen een praktisch, uitvoerbaar voorbeeld dat je vandaag nog in je project kunt gebruiken. + +--- + +## Wat je nodig hebt + +| Voorvereiste | Reden | +|--------------|-------| +| Java 17 (of nieuwer) | Aspose OCR richt zich op Java 8+, maar de nieuwste JDK biedt betere prestaties. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | De kernengine die het zware werk doet. | +| Een geldig Aspose OCR licentiebestand (`Aspose.OCR.Java.lic`) | Activeert de volledige functionaliteit; anders krijg je een proefwatermerk. | +| Een afbeeldingsbestand (PNG, JPEG, TIFF, enz.) met duidelijke tekst | We gebruiken `lab_report.png` als concreet voorbeeld. | +| Een aangepast woordenboek (optioneel) | Verbeterde herkenning voor domeinspecifieke termen zoals “hemoglobin”. | + +Als een van deze onbekend klinkt, geen paniek—een JAR installeren en een simpel tekstbestand aanmaken zijn triviale taken die we zo behandelen. + +## Stap 1 – Zet het project op en importeer afhankelijkheden + +Eerst maak je een nieuw Maven‑ (of Gradle‑) project aan en voeg je de Aspose OCR‑dependency toe. Maven‑gebruikers kunnen dit fragment in hun `pom.xml` plakken: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Als je liever Gradle gebruikt, is het equivalent: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** Houd de versienummer in de gaten; nieuwere releases bevatten vaak bugfixes die direct invloed hebben op **OCR-nauwkeurigheid verbeteren**. + +Maak nu een Java‑klasse genaamd `OcrDemo.java`. Importeer bovenaan het bestand de benodigde klassen: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## Stap 2 – Initialiseer de OCR-engine en pas je licentie toe + +Je kunt niet **OCR op PNG**‑bestanden uitvoeren zonder eerst de engine te laten weten dat hij gelicenseerd is. Zo doe je dat: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Waarom het extra `License`‑object? Aspose scheidt licentie‑beheer van de engine zodat je licenties on‑the‑fly kunt wisselen, wat handig kan zijn in multi‑tenant SaaS‑scenario's. + +## Stap 3 – Laad een aangepast woordenboek (optioneel maar krachtig) + +Als je werkt met medische terminologie, chemische formules of merknamen, kan een aangepast woordenboek **OCR-nauwkeurigheid verbeteren** dramatisch. Het woordenboek is een platte‑tekst‑bestand met één woord per regel: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Waarom het werkt:** De OCR‑engine gebruikt het woordenboek om zijn taalmodel te biasen richting de woorden die jij belangrijk vindt, waardoor mis‑herkenningen zoals “hemo­globin” → “hemoglobin” worden verminderd. + +Als je geen woordenboek hebt, sla deze regel dan over—Aspose presteert nog steeds goed met de ingebouwde taalpakketten. + +## Stap 4 – Laad de afbeelding die je wilt verwerken + +Nu **laden we daadwerkelijk de afbeelding voor OCR**. Aspose ondersteunt veel formaten, maar PNG is vooral lossless, waardoor het een veilige keuze is voor gescande documenten. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** Als je afbeelding enorm is (meer dan 5 MB), overweeg dan eerst te down‑scalen om de verwerking te versnellen. De `Image`‑klasse biedt een `resize`‑methode die je vóór herkenning kunt aanroepen. + +## Stap 5 – Voer het OCR-proces uit en haal de tekst op + +Met alles ingesteld, start je de OCR‑engine. De `recognize`‑methode retourneert een `OcrResult`‑object dat de geëxtraheerde string, confidence‑scores en zelfs bounding boxes bevat als je layout‑informatie nodig hebt. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Wanneer je het programma uitvoert, zie je iets als: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Dat is alles—je hebt met succes **tekst uit afbeelding herkend** en **afbeelding naar tekst geconverteerd** met Aspose OCR. + +## Stap 6 – Veelvoorkomende valkuilen en hoe ze op te lossen + +Zelfs met een degelijke bibliotheek kunnen een paar hickups je laten struikelen: + +| Symptoom | Waarschijnlijke oorzaak | Oplossing | +|----------|--------------------------|-----------| +| Lege uitvoer | Licentie niet toegepast of verlopen | Controleer het pad naar `Aspose.OCR.Java.lic` en zorg dat het overeenkomt met de versie. | +| Vervormde tekens | Afbeelding heeft lage resolutie of is sterk gecomprimeerd | Gebruik een bron met hogere resolutie of pre‑process de afbeelding (binarisatie, deskew). | +| Ontbrekende domeinspecifieke woorden | Geen aangepast woordenboek | Voeg een woordenboekbestand toe met de ontbrekende termen, één per regel. | +| Trage verwerking bij grote batches | Geen multi‑threading | Maak een pool van `OcrEngine`‑instanties (ze zijn thread‑safe) en verwerk afbeeldingen parallel. | + +## Stap 7 – Voorbeeld uitbreiden: resultaten opslaan in een bestand + +Als je de geëxtraheerde tekst later wilt analyseren, schrijf je deze eenvoudig naar een bestand: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Nu heb je een herbruikbare pipeline die **afbeelding voor OCR laadt**, de inhoud extraheert en opslaat waar je maar wilt. + +## Bonus: OCR uitvoeren op meerdere PNG‑bestanden in een map + +Real‑world projecten moeten vaak tientallen scans verwerken. Hier is een snelle lus die elke `.png` in een map oppikt: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Denk eraan dezelfde `ocrEngine`‑instantie te hergebruiken—een nieuwe instantie per bestand voegt onnodige overhead toe. + +## Conclusie + +Je hebt nu een volledig uitgeruste, end‑to‑end oplossing die **tekst uit afbeelding herkent** met Aspose OCR voor Java. Van het laden van de afbeelding, eventueel verrijken van de engine met een aangepast woordenboek om **OCR-nauwkeurigheid te verbeteren**, tot **OCR op PNG**‑bestanden uitvoeren en de output opslaan, de code staat klaar om in elk Java‑project te worden geplakt. + +Wat nu? Probeer de geëxtraheerde tekst in een natural‑language‑processing‑pipeline te voeren, of experimenteer met OCR op handgeschreven notities (Aspose biedt ook een handschrifmodus). De mogelijkheden zijn eindeloos, en je hebt zojuist de eerste stap ontgrendeld. + +Happy coding! Als je ergens vastloopt, laat dan gerust een reactie achter—laten we samen de problemen oplossen. + +![Schermafbeelding van OCR-resultaat in console – herken tekst uit afbeelding](/images/ocr_console_result.png "voorbeeld van tekst uit afbeelding herkennen") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/english/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..3c1ce40f8 --- /dev/null +++ b/ocr/english/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Extract tables from image using Aspose OCR Java. Learn to load image + for OCR, extract table from png, convert image table text, and recognize receipt + image quickly. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: en +og_description: Extract tables from image with Aspose OCR Java. This guide shows how + to load image for OCR, extract table from png, convert image table text, and recognize + receipt image. +og_title: Extract tables from image – Aspose OCR Java Tutorial +tags: +- Aspose OCR +- Java +- Image Processing +title: Extract tables from image – Complete Aspose OCR Java Guide +url: /python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract tables from image – Complete Aspose OCR Java Guide + +Ever needed to **extract tables from image** files but kept hitting a wall? Maybe you have a scanned receipt or a photographed invoice and the tabular data is buried in a PNG. In this tutorial you’ll see exactly how to *load image for OCR*, turn that picture into structured rows, and **convert image table text** into something you can work with in Java. + +We’ll walk through every step, from licensing the Aspose OCR engine to printing each cell of the detected tables. By the end you’ll be able to **recognize receipt image** files and pull out their tables without breaking a sweat. + +## What You’ll Learn + +- How to initialize the Aspose OCR engine and apply your license. +- Why enabling table detection is the key to **extract tables from image**. +- The exact code needed to **load image for OCR** and run recognition on a PNG. +- Ways to handle multiple tables, low‑resolution scans, and common pitfalls. +- How to **convert image table text** into a printable (or database‑ready) format. + +No external documentation required—everything you need is right here. + +## Prerequisites + +- Java 17 or newer (the code uses the modern module system). +- An Aspose OCR for Java license file (`Aspose.OCR.Java.lic`). If you’re just experimenting, a temporary evaluation key works as well. +- A PNG image that contains a clear table (e.g., `receipt_with_table.png`). +- Maven or Gradle to pull the Aspose OCR dependency: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Keep the license file next to your `src/main/resources` folder so the path stays stable across environments. + +--- + +## Step 1 – Initialize the OCR engine to **extract tables from image** + +Before the engine can do anything, it needs to know you’re a legit user. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Why this matters:* Without a valid license the OCR engine runs in trial mode, which can truncate results or add unwanted watermarks—making table extraction unreliable. + +--- + +## Step 2 – Enable table detection (**extract table from png**) + +Table detection isn’t on by default; you have to flip the switch. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Enabling this flag tells Aspose OCR to treat groups of aligned text as rows and columns, which is exactly what you need when you want to **extract tables from image** files that are PNGs. + +--- + +## Step 3 – **Load image for OCR** and **recognize receipt image** + +Now we actually feed the picture into the engine. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +If you’re dealing with a **recognize receipt image** scenario, you might want to pre‑process the image (deskew, increase contrast). That’s outside the scope of this quick guide but worth exploring for noisy scans. + +--- + +## Step 4 – Process OCR result and **convert image table text** + +The `OcrResult` object may contain one or more tables. Let’s iterate over them and print each cell. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**What this does:** + +- Checks whether any tables were found; if not, it suggests a quality tweak. +- For each table, it prints rows with tab‑separated cells, which is a convenient format for CSV imports. +- The `Cell::getText` call is the heart of **convert image table text** – it pulls the raw OCR string from each cell. + +### Expected Output + +Assuming `receipt_with_table.png` contains a simple 3 × 2 table, you’ll see something like: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +If the image has multiple tables, each will be separated by a blank line. + +--- + +## Step 5 – Verify the extracted tables and handle edge cases + +### Common pitfalls + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **No tables detected** | Image too blurry or low contrast | Apply binarization (`ImageProcessing.applyThreshold`) before OCR | +| **Merged cells** | Table lines are faint, OCR treats them as one block | Increase `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Incorrect column order** | Skewed image causing mis‑alignment | Use `ImageProcessing.deskew` or rotate the image by 90° | + +### What to do next + +- **Export to CSV** – replace `System.out.println(line);` with a `FileWriter` to persist data. +- **Feed into a database** – map each row to a POJO and use JPA for persistence. +- **Combine with other APIs** – for receipt processing you might also extract totals using regular expressions on the OCR text. + +--- + +## Full Working Example (Copy‑Paste Ready) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Run this program, point it at a PNG that contains a clear table, and watch the console fill with neatly formatted rows. + +--- + +## Conclusion + +You now have a solid, end‑to‑end solution to **extract tables from image** files using Aspose OCR for Java. From licensing to **load image for OCR**, enabling **extract table from png**, and finally **convert image table text**, every step is covered with explanations and practical tips. + +Next, try chaining the output into a CSV file, push the rows into a relational database, or combine the OCR step with a receipt‑total‑extraction routine. The same pattern works for invoices, price lists, and any scanned document that hides data behind a grid. + +Got questions about handling low‑resolution receipts or scaling this to batch processing? Drop a comment below, and happy coding! + +![Extract tables from image example](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/english/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..553478182 --- /dev/null +++ b/ocr/english/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Extract text from image python using Aspose OCR. Learn a step‑by‑step + Python OCR tutorial with mixed Latin‑Cyrillic support. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: en +og_description: Extract text from image python quickly. This guide shows how to use + Aspose OCR in Python for mixed Latin‑Cyrillic images. +og_title: Extract Text from Image Python – Full Aspose OCR Walkthrough +tags: +- OCR +- Python +- Aspose +title: Extract Text from Image Python – Complete Aspose OCR Guide +url: /python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from Image Python – Complete Aspose OCR Guide + +Ever needed to **extract text from image python** but weren’t sure which library could handle a mix of Latin and Cyrillic characters? You’re not the only one—developers constantly hit that snag when OCR’ing multilingual screenshots. + +The good news is that Aspose OCR for Python makes the whole process almost painless. In this tutorial we’ll walk through installing the package, applying your license, loading a mixed‑language image, and finally pulling the recognised text out in a few lines of code. By the end you’ll have a ready‑to‑run script that you can drop into any project. + +## What You’ll Learn + +- How to set up **Aspose OCR Python** in a virtual environment. +- Why hinting languages (like Latin and Cyrillic) speeds up detection. +- The exact code needed to **extract text from image python** with a single function call. +- Common pitfalls when dealing with mixed‑language OCR and how to avoid them. + +### Prerequisites + +- Python 3.8 or newer installed on your machine. +- An Aspose OCR license file (`Aspose.OCR.Java.lic`). The free trial works for testing, but a licensed file removes watermarks. +- A PNG/JPEG image that contains both Latin and Cyrillic characters (we’ll call it `mixed_latin_cyrillic.png`). + +If you have those boxes checked, you’re good to go—no extra frameworks or heavy dependencies required. + +--- + +## Step 1 – Extract Text from Image Python: Install Aspose OCR + +First thing’s first: get the library from PyPI and make sure your environment can locate the license file. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** If you hit a permission error, add `--user` to the `pip install` command or run the terminal as administrator. + +Now that the package is on your system, we’ll import it and point the engine at our license. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Why do we need a license at this stage? Without it the engine runs in **evaluation mode**, which limits the number of pages and adds a watermark to the output. Supplying the license up‑front ensures the later `recognize` call returns clean text. + +--- + +## Step 2 – Load Your Image with Mixed Latin‑Cyrillic Content + +Next, we bring the picture into memory. Aspose OCR works with its own `Image` class, which abstracts away the underlying file format. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +If you’re wondering whether other formats work—yes, JPEG, BMP, TIFF, and even PDF are supported. Just swap the file extension and the `from_file` method will handle the rest. + +--- + +## Step 3 – Hint Languages for Faster Detection (Optional but Helpful) + +When you know the languages present in the image, you can give the engine a heads‑up. This isn’t mandatory, but it **significantly reduces processing time** and improves accuracy for mixed‑language OCR. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +The hint list accepts any language supported by Aspose OCR (e.g., `"Arabic"`, `"Japanese"`). If you skip this step, the engine will try every built‑in language, which can be slower on large batches. + +--- + +## Step 4 – Run the OCR Engine and Extract Text + +Now the moment of truth: actually recognise the characters. The `recognize` method returns an `OcrResult` object that holds the plain text, confidence scores, and even bounding boxes if you need them later. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Why this works:** Under the hood Aspose OCR combines a neural‑network text detector with language‑specific classifiers. By feeding it an `Image` object, you bypass any need for manual preprocessing like binarisation. + +--- + +## Step 5 – View the Extracted Text + +Finally, let’s print the result to the console. In a real application you might write it to a file, push it to a database, or feed it into a translation API. + +```python +print("Recognised text:") +print(extracted_text) +``` + +When you run the script, you should see something like: + +``` +Recognised text: +Hello мир! This is a test. +``` + +That output confirms we successfully **extract text from image python**, handling both Latin and Cyrillic characters in a single pass. + +--- + +## Full Working Example + +Below is the complete script you can copy‑paste into a file called `extract_ocr.py`. Just replace the placeholder paths with your actual directories. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Save the file, activate your virtual environment, and run: + +```bash +python extract_ocr.py +``` + +You should see the recognised text printed, confirming the script works end‑to‑end. + +--- + +## Frequently Asked Questions & Edge Cases + +**What if the image is blurry?** +Aspose OCR includes built‑in de‑skewing and noise reduction, but for heavily degraded photos you might want to pre‑process with OpenCV (e.g., apply a Gaussian blur and threshold). The `Image` class can also accept a NumPy array, so you can chain custom filters before calling `recognize`. + +**Can I process a whole folder of images?** +Absolutely. Wrap the logic in a `for` loop, change `from_file` to read each filename, and store the results in a dictionary. Remember to respect API rate limits if you’re using the cloud version. + +**Do I need a separate license for each language?** +No, a single Aspose OCR license covers all supported languages. The `language_hints` list is just a performance hint. + +**What about PDF input?** +Replace `Image.from_file` with `ocr.Image.from_file("document.pdf")`. The OCR engine will automatically rasterise each page and return concatenated text. + +--- + +## Conclusion + +We’ve just shown a concise, production‑ready way to **extract text from image python** using Aspose OCR. The steps—install, license, load, hint languages, recognise, and display—cover everything you need to get reliable results for mixed Latin‑Cyrillic content. + +From here you could explore advanced topics like **image to text conversion** for batch processing, integrate the output with a **Python OCR tutorial** on natural‑language processing, or experiment with other language hints for multilingual documents. The sky’s the limit, and the code is already in your hands. + +Got a different use case or ran into an issue? Drop a comment, share your experience, and let’s keep the conversation going. Happy coding! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/english/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..dadff1fd8 --- /dev/null +++ b/ocr/english/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-05-03 +description: Extract text from image instantly using Aspose OCR. Learn to define region + of interest, load image for OCR, and extract text from invoice in just minutes. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: en +og_description: Extract text from image using Aspose OCR. This guide shows how to + define region of interest, load image for OCR, and extract text from invoice efficiently. +og_title: Extract Text from Image with Aspose OCR – Complete Tutorial +tags: +- ocr +- python +- image-processing +title: Extract Text from Image with Aspose OCR – Step‑by‑Step Guide +url: /python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from Image with Aspose OCR – Step‑by‑Step Guide + +Need to **extract text from image** quickly? You’re not alone—developers constantly wrestle with noisy scans, receipts, and invoices. In this tutorial we’ll walk through a complete solution that not only shows how to *extract text from image* but also demonstrates how to **define region of interest**, **load image for OCR**, and pull the exact line you need from an invoice. + +We’ll cover everything from installing the Aspose OCR library to handling edge cases like rotated pages. By the end, you’ll have a runnable script that extracts the desired text in a single call—no manual cropping required. + +## What You’ll Learn + +- How to **load image for OCR** using Aspose’s Python API. +- The best way to **define region of interest** (ROI) so you only process the part of the picture that matters. +- How to **extract text from invoice** fields without pulling in the whole page. +- Tips for **process image with OCR** efficiently and avoid common pitfalls. + +**Prerequisites** – a recent Python 3.9+ environment, a valid Aspose OCR license file, and an image (e.g., an invoice PNG). No other external tools are required. + +--- + +## Step 1 – Initialize the OCR Engine (Primary Setup) + +Before you can **process image with OCR**, you need an engine instance that holds your license. This step is crucial because an unlicensed engine will only return a limited result set. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Why this matters*: The `OcrEngine` object is the heart of the library; it manages language models, image preprocessing, and licensing. Setting the license up front ensures you get full accuracy and no watermarks. + +--- + +## Step 2 – Load Image for OCR + +Now that the engine is ready, we need to **load image for OCR**. Aspose supports many formats (PNG, JPEG, TIFF), but using `Image.from_file` guarantees the image is decoded correctly. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: Keep your image files under 5 MB for fastest processing. Larger files can be downscaled with `image.resize(width, height)` before OCR. + +--- + +## Step 3 – Define Region of Interest (ROI) + +Most invoices contain a lot of irrelevant text—address blocks, footers, etc. By **define region of interest** we tell the engine to look only where the amount or date lives, which improves speed and accuracy. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*How it works*: The `Rectangle` class crops the image virtually; the OCR engine never sees pixels outside the rectangle, so noise outside the ROI is ignored. + +--- + +## Step 4 – Recognize Text Inside the ROI + +With the engine, image, and ROI ready, we finally **extract text from image**. The `recognize` method returns an `OcrResult` object containing the detected string and confidence scores. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Expected output** (example for a typical invoice total line): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +If the ROI is correctly positioned, you’ll see just the line you need—nothing else. + +--- + +## Step 5 – Full Working Example (Copy‑Paste Ready) + +Below is the complete script that ties all previous steps together. Save it as `extract_invoice_roi.py` and run `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Run the script and you should see the targeted line printed to the console. If you get an empty string, double‑check the ROI coordinates—sometimes a few pixels off will exclude the text entirely. + +--- + +## Step 6 – Common Variations & Edge Cases + +### a) Different invoice layouts +Invoices from different vendors often shift the total amount box. To **process image with OCR** across multiple layouts, consider: + +- **Multiple ROIs**: Run the engine sequentially with several rectangles and pick the result with the highest confidence. +- **Dynamic ROI detection**: Use a lightweight image‑processing library (e.g., OpenCV) to locate the “Total” label first, then compute the ROI relative to it. + +### b) Rotated or skewed images +If the scan is tilted, call `image.rotate(angle)` before recognition: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR also offers auto‑deskew, but manual rotation gives you tighter control. + +### c) Non‑Latin characters +The default language model is English. To **extract text from invoice** written in another language, set the language before recognition: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Large PDFs +When dealing with multi‑page PDFs, extract each page as an image first (Aspose PDF → Image) and then apply the same ROI logic per page. + +--- + +## Step 7 – Performance Tips & Pro Tips + +- **Cache the engine**: Creating `OcrEngine` repeatedly in a loop slows you down. Instantiate it once and reuse. +- **Batch processing**: If you have dozens of invoices, wrap the OCR call in a `ThreadPoolExecutor` to parallelize I/O‑bound work. +- **Confidence check**: `ocr_result.confidence` gives a float between 0 and 1. Reject results below 0.85 and fallback to a larger ROI or manual review. + +> **Watch out**: Setting the ROI too small may cut off characters, resulting in garbled output. Always test with a few sample invoices before scaling. + +--- + +## Conclusion + +You now have a solid, production‑ready method to **extract text from image** using Aspose OCR, complete with a way to **define region of interest**, **load image for OCR**, and reliably **extract text from invoice** fields. By limiting the OCR to a tight ROI you boost both speed and accuracy—perfect for batch processing of thousands of receipts. + +Ready for the next step? Try integrating this script into a Flask API so your web app can upload an invoice and instantly return the total amount. Or experiment with multiple ROIs to pull out the date, invoice number, and vendor name in one go. The possibilities are endless, and with the fundamentals covered here, you’re well‑equipped to tackle any OCR challenge. + +Happy coding, and may your extracted text always be clean! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Workflow to extract text from image using Aspose 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/english/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/english/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..7423586a8 --- /dev/null +++ b/ocr/english/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-05-03 +description: Extract text from image using Python's async OCR. Learn how to convert + tif to text, load image for OCR, and recognize text from image efficiently. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: en +og_description: Extract text from image using Python async OCR. This guide shows how + to convert tif to text, load image for OCR, and recognize text from image. +og_title: Extract Text from Image with Python Async OCR – Complete Guide +tags: +- OCR +- Python +- AsyncIO +title: Extract Text from Image with Python Async OCR – Complete Guide +url: /python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from Image with Python Async OCR – Complete Guide + +Need to **extract text from image** quickly? With Python's async OCR you can do it in just a few lines of code. Whether you're dealing with a massive .tif scan or a handful of JPEGs, this tutorial shows you how to convert tif to text, load image for OCR, and finally recognize text from image without blocking your event loop. + +Here's the thing—most developers reach for a synchronous library, then stare at a frozen UI while the engine crunches pixels. In this guide we’ll flip that script by using Aspose OCR Cloud's asynchronous API, so your application stays responsive. By the end you’ll have a runnable script that pulls text out of any supported image format, and you’ll understand the why behind each step. + +## What You’ll Learn + +- How to set up the Aspose OCR Cloud SDK for Python. +- The exact code needed to **load image for OCR** and start an async recognition task. +- Tips for handling large .tif files and licensing quirks. +- Ways to **extract image text** safely, even when the service returns errors. +- A complete, copy‑paste‑ready example you can drop into your own project. + +> **Prerequisite**: Python 3.8+ and an Aspose OCR Cloud license file (`Aspose.OCR.Java.lic`). No other third‑party packages are required. + +--- + +![extract text from image workflow](workflow.png){: .align-center alt="extract text from image workflow"} + +## Extract Text from Image – Async OCR Overview + +Before we dive into code, let’s unpack the flow. When you call `recognize_async` the SDK sends the image to Aspose’s cloud, spins up a background job, and hands you a `Task` object. Awaiting that task yields an `OcrResult` containing the plain‑text representation of the picture. Because the call is asynchronous, you can fire off multiple jobs in parallel—perfect for batch processing large archives of scanned documents. + +### Why Use Async? + +- **Non‑blocking I/O** – Your event loop stays free to handle other work (e.g., serving HTTP requests). +- **Scalability** – Spin up dozens of recognitions at once; the cloud does the heavy lifting. +- **Responsiveness** – UI applications won’t freeze while waiting for the OCR engine. + +Now that the “why” is clear, let’s see the **how**. + +## Convert TIF to Text Using Aspose OCR + +A common stumbling block is assuming every OCR library natively supports .tif. Aspose does, but you still need to feed it an `Image` object. The SDK abstracts the format, so you can simply point it at the file path. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Explanation of key lines** + +- `ocr_engine.license = ...` – Without a valid license the cloud returns a 403 error. Make sure the `.lic` file is accessible from your script’s working directory. +- `ocr.Image.from_file(image_path)` – This step **loads image for OCR**; the SDK automatically detects the format, so you don’t have to convert the .tif beforehand. +- `recognize_async` – Returns a coroutine‑compatible task. You could launch several of these in a `gather` call if you have a batch. + +> **Pro tip**: If you’re processing gigabyte‑size TIFFs, consider splitting them into pages first. Aspose’s `Image.from_file` can accept a page index, which reduces memory pressure. + +## Recognize Text from Image Asynchronously + +Let’s see how you’d call the function from a typical script. The `asyncio.run` entry point is the simplest way to fire off the coroutine when you’re not already inside an event loop (e.g., a plain CLI tool). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**What to expect** + +Running the script against a clear, high‑resolution scan typically yields a multi‑line string matching the printed page. If the image is noisy, Aspose still attempts to clean it up, but you may see garbled characters. In that case, consider pre‑processing with OpenCV (e.g., thresholding) before feeding the file to the OCR engine. + +### Handling Errors Gracefully + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Catching `OcrException` ensures your program doesn’t crash when the cloud returns an error—something that often trips newcomers who forget about network hiccups. + +## Load Image for OCR – Practical Tips + +1. **File Path vs. Bytes** – The SDK accepts a file path, but you can also load from a `bytes` object if the image lives in memory (`ocr.Image.from_bytes`). This is handy when you’ve already fetched the file from S3 or a database. +2. **Supported Formats** – Besides .tif, Aspose handles PDF, BMP, GIF, and even multi‑page TIFFs. Use `Image.from_file("doc.pdf")` to OCR PDFs directly. +3. **Performance** – For batch jobs, reuse the same `OcrEngine` instance; creating a new engine for each file adds unnecessary overhead. + +## Full Working Example (All Steps in One Script) + +Below is the complete, ready‑to‑run script that incorporates licensing, error handling, and a simple command‑line argument parser. Copy‑paste it, adjust the license path, and you’re set. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Expected output** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +If the image contains a simple paragraph, the console will display the same lines, preserving line breaks. For multi‑page TIFFs, the SDK concatenates the pages in order. + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with other async frameworks like FastAPI?** +A: Absolutely. Replace the `asyncio.run` call with `await async_ocr(path)` inside your endpoint, and FastAPI will handle the event loop for you. + +**Q: What if I need to process hundreds of files at once?** +A: Use `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Can I extract text from a password‑protected PDF?** +A: Not directly. You’ll need to unlock the PDF first (e.g., with `pikepdf`) and then feed the decrypted bytes to `ocr.Image.from_bytes`. + +**Q: How do I handle languages other than English?** +A: Set the language before recognition: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose supports over 60 languages; check the docs for the exact identifiers. + +## Conclusion + +You now have a solid, **extract text from image** solution that leverages Python’s `asyncio` and Aspose OCR Cloud’s asynchronous API. By following the steps above you can **convert tif to text**, **load image for OCR**, and **recognize text from image** in a non‑blocking fashion—perfect for both command‑line utilities and high‑traffic web services. + +What’s next? Try batching a folder of scans, experiment with language settings, or pipe the OCR output into a downstream NLP pipeline. The sky’s + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/english/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..890de5425 --- /dev/null +++ b/ocr/english/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: extract text ocr quickly using Aspose OCR. Learn how to improve ocr accuracy, + load image ocr, preprocess image ocr, and run OCR scan in Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: en +og_description: extract text ocr quickly using Aspose OCR. Master how to improve ocr + accuracy, load image ocr, preprocess image ocr, and run OCR scan in Python. +og_title: extract text ocr – Complete Guide with Aspose OCR +tags: +- OCR +- Python +- Aspose +title: extract text ocr – Complete Guide with Aspose OCR +url: /python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Complete Guide with Aspose OCR + +Ever needed to **extract text ocr** from a shaky scan but weren’t sure why the results looked like gibberish? You’re not alone—many developers hit that wall when the image is tilted, noisy, or just plain low‑contrast. The good news is that a few configuration tweaks can turn a messy picture into clean, searchable text. In this tutorial we’ll walk through a full, end‑to‑end example that shows you how to improve ocr accuracy, load image ocr, preprocess image ocr, and finally run OCR scan with Aspose OCR for Python. + +By the end of this guide you’ll have a runnable script that reads a scanned JPEG, cleans it up automatically, and prints the extracted text to the console. No mystery “see the docs” links—everything you need is right here. + +## What You’ll Need + +- **Python 3.8+** (the latest stable release works best) +- **Aspose.OCR for Python via .NET** – install with `pip install aspose-ocr` +- A **license file** (`Aspose.OCR.Java.lic`) if you’ve purchased one (the free trial works for testing) +- An image you want to process (e.g., `skewed_scanned_doc.jpg`) + +That’s it. If you’ve got those pieces, we can jump straight into the code. + +## Step 1: Extract Text OCR with Aspose OCR Engine + +The first thing you do is spin up the OCR engine and apply your license. Think of the engine as the brain that will read the image; without a license it’ll refuse to work beyond a tiny demo limit. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** Applying the license up front avoids a silent failure later on. If you skip this step, the engine will fall back to a restricted mode and you’ll only get a handful of characters back—definitely not what you expect when you try to extract text ocr. + +## Step 2: Improve OCR Accuracy with Pre‑processing + +Scans that are crooked or grainy are the bane of any OCR project. Aspose lets you toggle a handful of handy settings that automatically deskew, denoise, and boost contrast. This is the heart of **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – rotates the image back to horizontal, which is crucial when the original document wasn’t perfectly flat. +- **remove_noise** – wipes out random speckles that often appear in low‑resolution JPEGs. +- **enhance_contrast** – makes dark text darker and light background lighter, helping the engine distinguish characters. +- **binarization = "Otsu"** – a classic algorithm that decides the best threshold for black‑and‑white conversion. + +> **Pro tip:** If you know your source images are already clean, you can turn these options off to speed up processing. But for most real‑world scans, leaving them on is the safest bet. + +## Step 3: Load Image OCR for Scanning + +Now that the engine is ready, we need to **load image ocr**. Aspose’s `Image.from_file` method supports JPEG, PNG, TIFF, and a few more formats. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Replace `YOUR_DIRECTORY` with the actual path on your machine. If you’re working with an in‑memory byte stream (e.g., from a web upload), you can also use `ocr.Image.from_bytes(byte_data)`—the same engine will handle it. + +> **Edge case:** Large TIFF files can be memory‑hungry. If you hit a `MemoryError`, consider down‑sampling the image first or using `ocr_engine.config.max_image_size` to cap the dimensions. + +## Step 4: Run OCR Scan and Get Results + +With the image loaded and preprocessing enabled, the final step is to **run OCR scan**. This call does all the heavy lifting behind the scenes. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +The `ocr_result` object contains several useful properties: + +- `ocr_result.text` – the plain string you care about. +- `ocr_result.confidence` – a numeric score (0‑100) indicating overall reliability. +- `ocr_result.words` – a list of word objects with bounding box coordinates, handy for highlighting. + +## Step 5: Print the Extracted Text + +Finally, we output the result. In a real application you might write the text to a file, a database, or feed it into a search index. For this tutorial, a simple `print` does the trick. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output** (example for a simple invoice): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +If the confidence is low (< 80), you might want to revisit the preprocessing options or try a different binarization method like `"Sauvola"`. + +## Bonus: Visualizing the Pre‑processing Pipeline (Optional) + +Sometimes it helps to see what the engine did to the image. Aspose lets you export the processed bitmap: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +You could then embed the image in documentation: + +extract text ocr workflow diagram showing preprocessing steps + +> **Why you’d do this:** When the OCR result looks off, a quick glance at `processed_debug.png` often reveals whether the image was still too dark, still skewed, or had leftover noise. + +## Common Questions & Gotchas + +- **What if my document is multi‑page?** + Aspose OCR works page‑by‑page. Loop over each page image and concatenate `ocr_result.text`. + +- **Can I recognize languages other than English?** + Yes—set `ocr_engine.config.language = "fra"` (or any ISO‑639‑2 code) before calling `recognize`. + +- **Is there a limit on image size?** + The engine caps at 10 MP by default. Increase `ocr_engine.config.max_image_size` if you need larger scans, but watch memory usage. + +- **Do I need a separate OCR engine for PDFs?** + For PDFs you can either extract each page as an image first (using Aspose.PDF) or use the built‑in PDF OCR feature. The steps shown here remain the same after you have an image. + +## Recap + +We’ve covered how to **extract text ocr** using Aspose OCR for Python, from licensing the engine to tweaking settings that **improve ocr accuracy**, loading the source file, and finally **run OCR scan** to pull out clean text. The complete script is ready to copy‑paste, and you now understand why each configuration flag matters. + +## What’s Next? + +- **Experiment with different binarization methods** (`"Sauvola"`, `"Bradley"`). Some fonts respond better to adaptive thresholds. +- **Integrate with a search engine** (e.g., Elasticsearch) using the confidence score to rank results. +- **Combine with OCR post‑processing** libraries like `pyspellchecker` to clean up common mis‑recognitions. +- **Explore batch processing** for hundreds of scans—wrap the steps in a function and feed it a folder of images. + +Feel free to tweak the code, add your own logging, or plug it into a larger document‑management pipeline. If you run into any snags, drop a comment below—happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/english/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..14b24096c --- /dev/null +++ b/ocr/english/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-05-03 +description: How to OCR PDF using Aspose OCR Java. Learn how to run OCR on PDF, recognize + text PDF, convert PDF to JSON and load PDF for OCR in just a few lines of code. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: en +og_description: How to OCR PDF using Aspose OCR Java. This guide shows how to run + OCR on PDF, recognize text PDF, convert PDF to JSON and load PDF for OCR quickly. +og_title: How to OCR PDF with Aspose OCR – Full Programming Tutorial +tags: +- Aspose OCR +- Java +- PDF processing +title: How to OCR PDF with Aspose OCR – Complete Step‑by‑Step Guide +url: /python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to OCR PDF with Aspose OCR – Complete Step‑by‑Step Guide + +Ever wondered **how to OCR PDF** files without wrestling with command‑line tools or paying for pricey SaaS? You're not the only one. In many projects—invoice automation, archival of scanned contracts, or building a searchable knowledge base—you’ll hit the need to extract text from PDFs fast and reliably. + +The good news? With Aspose OCR for Java you can **run OCR on PDF**, recognize text PDF pages, **convert PDF to JSON**, and even **load PDF for OCR** in a handful of lines. In this tutorial we’ll walk through the entire workflow, explain why each step matters, and give you a ready‑to‑run code sample that you can drop into your own project. + +## What You’ll Learn + +- How to set up the Aspose OCR engine and apply your license. +- The exact way to **load PDF for OCR** and feed it into the recognizer. +- How to **recognize text PDF** across all pages in one call. +- Exporting the full OCR result to a **JSON** file (perfect for downstream APIs) and a single page to **XML**. +- Tips, pitfalls, and variations you might need when dealing with multi‑page PDFs or custom language packs. + +> **Prerequisites** – You need Java 8 or newer, a valid Aspose OCR for Java license file (`Aspose.OCR.Java.lic`), and the Aspose OCR JAR on your classpath. No other external libraries are required. + +--- + +## How to OCR PDF – Initialize Aspose OCR Engine + +The first thing you must do is create an instance of `OcrEngine` and attach your license. This step unlocks the full feature set and removes the evaluation watermark. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Why this matters:** +Without a license, Aspose OCR runs in a limited “trial” mode that caps the number of pages and adds a watermark to the output. Applying the license up front ensures the rest of the pipeline works without unexpected restrictions. + +--- + +## Run OCR on PDF – Load Document and Recognize Text + +Now we **load PDF for OCR**. Aspose OCR treats PDFs as a special `PdfDocument` type, which internally extracts each page as an image before feeding it to the recognizer. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**What’s happening under the hood?** +`recognizeDocument` iterates over every page, rasterizes it at the optimal DPI, and then runs the OCR engine. The result is an `OcrPage` array where each element contains the detected text, confidence scores, and layout information. This approach is far more reliable than feeding raw PDF bytes into a generic OCR library. + +--- + +## Convert OCR Result to JSON – Export Full Report + +Most downstream systems prefer JSON because it’s easy to deserialize in Java, JavaScript, Python, or even PowerShell. Aspose OCR ships with a `JsonExport` helper that serializes the entire `OcrPage[]` array. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**When would you use this?** +If you need to feed the OCR output into a search index (Elasticsearch, Solr) or a data‑pipeline, the JSON format gives you a structured representation of each page, line, and word, complete with confidence values. + +--- + +## Export First Page to XML – Save Individual Page + +Sometimes you only care about a single page—maybe the first page holds a title or an invoice number. The `XmlExport` class lets you dump a single `OcrPage` to a tidy XML file. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Why XML?** +Legacy systems or certain enterprise workflows still rely on XML schemas for ingestion. The generated file follows Aspose’s own schema, making validation straightforward. + +--- + +## Verify the Output – Check JSON and XML Files + +After the program finishes, you should see two files in `YOUR_DIRECTORY`: + +- `report_ocr.json` – Contains an array of page objects. A quick snippet might look like: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Holds the same information for page 1, wrapped in `` tags. + +Open them in any editor; you’ll see the raw OCR strings, confidence scores, and bounding‑box coordinates. If the JSON looks empty, double‑check that the input PDF actually contains rasterized content (scanned images) and not selectable text—Aspose OCR only works on images. + +--- + +## Common Pitfalls & Pro Tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Empty JSON** | PDF contains native text, not images. | Use `PdfDocument.fromFile(..., true)` to force rasterization, or pre‑convert pages to images. | +| **Low confidence** | Source PDF is low‑resolution or heavily compressed. | Increase DPI by calling `ocrEngine.getImageProcessingOptions().setDpi(300)` before `recognizeDocument`. | +| **License not found** | Wrong path or missing file. | Use an absolute path or place the `.lic` file on the classpath and call `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory on huge PDFs** | All pages are loaded into memory at once. | Process pages in batches: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Extending the Example + +- **Run OCR on PDF with a specific language** – set `ocrEngine.getLanguage().setLanguage(Language.English)` or load a custom language pack. +- **Export each page to separate JSON files** – iterate over `ocrPages` and call `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrate with a search engine** – feed the JSON into Elasticsearch’s `attachment` processor for full‑text search. + +--- + +## Conclusion + +You now have a complete, production‑ready solution for **how to OCR PDF** using Aspose OCR for Java. By initializing the engine, loading the PDF, running OCR, and exporting both **JSON** and **XML**, you can integrate OCR into any backend workflow—whether you need to **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, or simply **load PDF for OCR**. + +Give it a spin, tweak the DPI or language settings, and watch your previously opaque PDFs become searchable assets. Need to go further? Try indexing the JSON into Elasticsearch, or post‑process the XML with XSLT to generate custom reports. + +Happy coding, and may your PDFs always be readable! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/english/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..18cbf6493 --- /dev/null +++ b/ocr/english/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,157 @@ +--- +category: general +date: 2026-05-03 +description: 'how to run ocr quickly: learn to extract text from image and recognize + text from form using Aspose OCR Java. Simple steps for reading image for ocr.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: en +og_description: 'how to run ocr quickly: learn to extract text from image and recognize + text from form using Aspose OCR Java. Simple steps for reading image for ocr.' +og_title: how to run ocr on a form – extract text from image +tags: +- ocr +- java +- image-processing +title: how to run ocr on a form – extract text from image +url: /python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# how to run ocr on a form – extract text from image + +Ever wondered **how to run ocr** on a scanned document without spending hours fiddling with obscure libraries? You're not alone. In many projects—whether it's digitizing invoices, archiving contracts, or pulling data from handwritten forms—being able to **extract text from image** files is a daily pain point. + +Here’s the thing: Aspose OCR for Java makes the whole pipeline almost painless. In this tutorial we’ll walk through every line of code you need to **recognize text from form** files, explain why each step matters, and show you how to **read image for ocr** results with confidence scores. By the end you’ll have a ready‑to‑run Java class that you can drop into any Maven or Gradle project. + +## What You’ll Learn + +- Set up the Aspose OCR engine and apply your license. +- Load a JPEG, PNG, or TIFF into memory. +- Run OCR and iterate over each line of recognized text. +- Spot low‑confidence lines for manual review. +- Extend the example to multi‑page PDFs or different image formats. + +No prior experience with Aspose is required, just a basic Java development environment (JDK 11+ and any IDE you like). Let’s get started. + +![how to run ocr example](/images/ocr-demo.png){alt="how to run ocr on a scanned form example"} + +## Step 1: Initialize the OCR Engine – **how to run ocr** + +The very first thing you must do before any OCR operation is to create an `OcrEngine` instance and attach a valid license. Without a license the library runs in demo mode, which limits the number of pages you can process. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Why this matters:** +The `OcrEngine` holds all configuration—language, detection mode, and performance tweaks. By setting the license up front you avoid the silent fallback to trial mode that would otherwise truncate your output. + +## Step 2: Load the Image – **extract text from image** + +Next we need an `Image` object that points to the file you want to scan. Aspose supports a wide range of formats, so you can feed in a scanned PDF page that you’ve already converted to PNG, a raw JPEG, or even a multi‑page TIFF. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Why this matters:** +Loading the image as an `Image` object gives the engine access to pixel data, DPI information, and color depth—all of which affect OCR accuracy. If you skip this step and pass a raw byte array, you’ll lose those helpful hints. + +## Step 3: Run OCR – **recognize text from form** + +Now the fun part: actually recognizing the characters. The `recognize` method returns a `RecognitionResult` that contains a collection of `Line` objects, each with its own confidence score. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Why this matters:** +Calling `recognize` triggers a cascade of internal processes—pre‑processing (deskew, noise removal), segmentation, character classification, and post‑processing (spell‑check, language model). The result object abstracts all that complexity away. + +## Step 4: Process the Results – **read image for ocr** output + +Once you have the `RecognitionResult`, you can iterate through each line, decide what to keep automatically, and flag anything that looks shaky. A confidence threshold of 85 % is a good starting point for most printed forms. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Expected output (sample):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +In the example above the engine was unsure about the last digit of the total amount, so we printed a warning. You could pipe those lines into a UI for manual correction or log them for later review. + +### Edge Cases & Tips + +- **Multiple pages:** If you have a multi‑page PDF, loop over each page index and call `Image.fromPdf(pdfPath, pageIndex)`. +- **Different languages:** Set `engine.getLanguage().setLanguage(Language.Spanish);` before calling `recognize`. +- **Image quality:** Low‑resolution scans (< 150 DPI) often produce confidence below 80 %. Upscaling with `image.resize(300, 300)` can help, but the best fix is a better scan. +- **Performance:** Re‑using the same `OcrEngine` instance for many images reduces overhead compared to creating a new one each time. + +## Frequently Asked Questions + +**Can I run this on a headless server?** +Absolutely. The library has no GUI dependencies, so it works fine inside Docker containers or CI pipelines. + +**What if I don’t have a license yet?** +You can still call `engine.recognize`, but the demo mode will stop after the first 2 pages and watermark the output. It’s perfect for quick tests. + +**Is there a way to extract structured data (e.g., tables)?** +Aspose OCR provides a `TableRecognizer` class, but that’s beyond the scope of this beginner guide. Once you’ve mastered the basics, check the official docs for `TableRecognizer`. + +## Wrapping It All Up – **how to run ocr** in a nutshell + +We’ve covered everything you need to **how to run ocr** on a scanned form: initialize the engine, load the image, execute the recognition, and handle the results intelligently. With just a few lines of Java, you can **extract text from image** files, **recognize text from form** documents, and **read image for ocr** output with confidence scores that let you decide when human review is required. + +Next steps? Try swapping the JPEG for a multi‑page TIFF, experiment with different confidence thresholds, or integrate the output into a database for automated data entry. The possibilities are as wide as the documents you need to process. + +Got more questions about OCR, image preprocessing, or licensing? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/english/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..9b818dcca --- /dev/null +++ b/ocr/english/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-05-03 +description: How to use OCR to extract text from PDF files in Java. Learn to recognize + text from PDF, convert PDF to text, and handle OCR multi page PDF efficiently. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: en +og_description: How to use OCR to extract text from PDF files in Java. This guide + shows how to recognize text from PDF, convert PDF to text, and process OCR multi + page PDF. +og_title: How to Use OCR in Java – Extract Text from Multi‑Page PDFs +tags: +- ocr +- java +- pdf +- aspose +title: How to Use OCR in Java – Extract Text from Multi‑Page PDFs +url: /python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Use OCR in Java – Extract Text from Multi‑Page PDFs + +**How to use OCR** in a Java project? If you’ve ever needed to extract text from PDF files without relying on the PDF’s internal text layer, you’re in the right place. This tutorial walks you through a complete, runnable solution that **recognizes text from PDF**, converts PDF to text, and even handles an **OCR multi page PDF** with a single call. + +Imagine you receive a scanned contract — a 12‑page TIFF inside a PDF. You want the searchable text for indexing, but the file has no embedded characters. No problem; we’ll show you exactly how to do it, step by step. + +> **What you’ll get:** a ready‑to‑run Java snippet using Aspose.OCR, explanations of why each line matters, tips for common pitfalls, and sample output you can verify instantly. + +--- + +## What You’ll Need + +Before we dive in, make sure you have: + +* **Java 17** (or any recent JDK) – the code works with older versions too, but 17 is the sweet spot. +* **Aspose OCR for Java** library – you can download the JAR from the Aspose site or add it via Maven/Gradle. +* A **multi‑page PDF** (or TIFF) you want to process. In our examples we’ll use `contract_multipage.pdf` placed in a folder called `YOUR_DIRECTORY`. +* A valid **Aspose OCR license file** (`Aspose.OCR.Java.lic`). Without it the library runs in evaluation mode, which is fine for a quick test but will add a watermark. + +That’s it—no extra OCR engines, no native binaries, just a single JAR and a license. + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "How to use OCR in Java – visual overview of the process") + +*Image alt text: how to use OCR in Java – visual overview of loading, recognizing, and outputting text.* + +--- + +## Step 1: Set Up the OCR Engine – **How to Use OCR** Correctly + +The first thing you must do is create an instance of the OCR engine and apply your license. Without the license the engine will still work, but you’ll see a trial watermark in the output. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Why this matters:** +The `OcrEngine` is the core object that orchestrates image analysis, language detection, and text extraction. Setting the license early prevents the engine from falling back to trial mode later on, which could affect accuracy. + +--- + +## Step 2: Load the Document – **Extract Text from PDF** Efficiently + +Aspose OCR can read both PDF and TIFF containers directly. Here we load a multi‑page PDF that contains scanned images. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Why this matters:** +`PdfDocument.fromFile` parses the container and gives you access to each page as an image. This abstraction lets the OCR engine treat every page uniformly, regardless of the original format. + +**Tip:** If your source file is a TIFF, the same call works—Aspose auto‑detects the format. No extra code required. + +--- + +## Step 3: Recognize All Pages in One Go – **Recognize Text from PDF** Seamlessly + +Instead of looping over pages yourself, you can ask the engine to process the entire document in a single call. This is the most efficient way to **convert PDF to text** when dealing with an **OCR multi page PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Why this matters:** +Calling `recognizeDocument` once reduces overhead caused by repeatedly initializing the engine. It also guarantees consistent language settings across pages, which is crucial for legal documents that often mix fonts. + +--- + +## Step 4: Output the Recognized Text – **Convert PDF to Text** for Indexing + +Now that every page has been processed, we simply iterate over the results and print the extracted strings. You could also write them to a file, a database, or feed them into a search index. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Expected output (truncated):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +If the PDF contains 12 pages, you’ll see twelve `--- Page X ---` sections, each followed by the OCR‑extracted text. + +--- + +## Advanced Tips for an **OCR Multi Page PDF** + +### 1. Adjust Language Settings + +By default Aspose tries to auto‑detect the language, but you can speed things up by specifying it: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Control Image Pre‑Processing + +Scanned contracts often have noise. You can enable deskewing and binarization: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Handle Large Files Gracefully + +If you’re processing PDFs larger than 100 MB, consider streaming pages instead of loading the whole document at once: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +This pattern reduces memory pressure and is handy for batch jobs. + +### 4. Export to Structured Formats + +Beyond plain text, you can export to JSON or XML for downstream processing: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Common Pitfalls & How to Avoid Them + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Blank output** | License not applied or file path wrong. | Verify `setLicense` path and confirm the file exists. | +| **Garbage characters** | Wrong language setting or low‑resolution source. | Set the correct `Language` and ensure source images are ≥300 dpi. | +| **Out‑of‑memory errors** | Loading a huge PDF all at once. | Use the streaming approach shown above. | +| **Partial page recognition** | PDF contains mixed raster/vector layers. | Flatten the PDF first: `pdfDoc.flatten();` before OCR. | + +--- + +## Recap – What We Covered + +* **How to use OCR** with Aspose in Java. +* **Extract text from PDF** (or TIFF) in a single call. +* **Recognize text from PDF** across all pages without manual loops. +* **Convert PDF to text** and output it cleanly. +* Tips for handling an **OCR multi page PDF**, including language tweaks and memory‑friendly streaming. + +You now have a complete, production‑ready snippet that you can drop into any Java project. Feel free to tweak the image‑processing options, swap the output destination, or integrate the result into a search index. + +--- + +## Next Steps + +* **Explore Aspose OCR’s advanced features** – like handwriting recognition or PDF/A compliance. +* **Combine OCR with PDF manipulation** (e.g., add a hidden text layer back into the PDF for searchable PDFs). +* **Automate batch processing** by reading a folder of PDFs and writing each result to a corresponding `.txt` file. + +If you run into any hiccups, the Aspose forums are a great place to ask for help, and the API reference provides exhaustive details on every method used here. + +Happy coding, and enjoy turning those stubborn scans into searchable text! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/english/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..52c4be7af --- /dev/null +++ b/ocr/english/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-05-03 +description: Read binary file Java to load an Aspose OCR license. Learn FileInputStream + usage, binary data handling, and practical tips in this step‑by‑step guide. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: en +og_description: Read binary file Java to load an Aspose OCR license. Follow this complete + guide to master FileInputStream and binary data handling in Java. +og_title: Read Binary File Java – Load License Bytes for Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Read Binary File Java – Load License Bytes for Aspose OCR +url: /python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Read Binary File Java – Load License Bytes for Aspose OCR + +Ever needed to **read binary file Java** when dealing with a license for a third‑party library? You're not alone. Most Java developers hit this snag when they try to feed a `.lic` file into an OCR engine, and the usual text‑file tricks just don't cut it. + +In this tutorial we'll walk through a complete, runnable example that shows exactly how to open a binary license file, pull its bytes into memory, and hand those bytes to Aspose OCR for Java. Along the way you'll see why `FileInputStream` is the right tool, how to handle possible `IOException`s, and a few pro tips you might not find in the official docs. + +By the end of the guide you’ll be able to **read binary file Java** style, create a `License` object, and assign it to an `OcrEngine` without breaking a sweat. + +## What This Guide Covers + +- Prerequisites: Java 17+, Maven (or Gradle), and the Aspose OCR for Java library. +- Step‑by‑step code that reads a binary `.lic` file using `FileInputStream`. +- Explanation of each line so you understand the *why* behind the *how*. +- Edge‑case handling (missing file, corrupted bytes) and practical debugging tips. +- A final, self‑contained snippet you can copy‑paste into your IDE and run immediately. + +If you’ve ever wondered whether you need a special API to read license files, the answer is a resounding **no**—just good old binary I/O. Let’s dive in. + +## Step 1: Read Binary File Java with FileInputStream + +The first thing we need is a reliable way to pull raw bytes from the license file on disk. In Java, `FileInputStream` is the workhorse for exactly that. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Why this works:** `Files.readAllBytes` internally creates a `FileInputStream`, reads the entire stream, and closes it for you. It’s safe, concise, and avoids the classic “forget to close the stream” pitfall. If you prefer the classic pattern, you can replace it with a try‑with‑resources block using `FileInputStream` directly. + +### Pro tip + +If the license file is huge (unlikely, but possible), consider streaming it in chunks instead of loading it all at once. For most OCR license files—usually under a few kilobytes—the one‑shot approach is perfectly fine. + +## Step 2: Create License Object for Aspose OCR + +Now that we have the raw bytes, we need to turn them into an Aspose‑compatible `License` instance. The library provides a `License` class that accepts a byte array. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Why this matters:** By passing the bytes directly, you avoid any path‑related issues (like relative‑to‑working‑directory confusion) and keep your deployment portable—just bundle the `.lic` file wherever your app runs. + +## Step 3: Assign License to OCR Engine + +With the `License` object ready, the final step is to attach it to an `OcrEngine`. This step ensures the OCR component runs in licensed mode rather than the evaluation sandbox. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Note:** Some older Aspose versions expose a public `license` field instead of a setter. Adjust the code accordingly (`ocrEngine.license = license;`) if you hit a compilation error. + +## Step 4: Verify License Loaded Successfully (Optional but Helpful) + +A quick sanity check saves hours of debugging later. The `License` class doesn’t throw on success, but you can attempt a harmless OCR operation to confirm. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +If you see the “License applied successfully” message, you’re good to go. If not, double‑check the file path, byte integrity, and that you’re using the correct Aspose version. + +## Full Working Example + +Putting all the pieces together yields a compact, copy‑paste‑ready program. Feel free to drop this into a `Main.java` file and run it. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Expected output (assuming the dummy image exists):** + +``` +License applied successfully – OCR engine is ready. +``` + +If the license file is missing or corrupted, you’ll see a clear error message like: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Common Pitfalls & How to Avoid Them + +- **Path confusion:** Relative paths are resolved against the JVM’s working directory, not the source file location. Use an absolute path or place the `.lic` file alongside the JAR and reference it with `getResourceAsStream`. +- **Wrong byte order:** Never attempt to read a binary file with a `Reader` (character‑oriented). It will corrupt the data. Stick to `FileInputStream`‑based APIs. +- **Version mismatch:** Some older Aspose releases expect `license.setLicense("path/to/file")` instead of `setLicenseBytes`. Check the library’s release notes if you hit a `NoSuchMethodError`. +- **Forgot to close streams:** If you revert to the classic `FileInputStream` approach, wrap it in a try‑with‑resources block to guarantee closure. + +## Conclusion + +You now know how to **read binary file Java** to load an Aspose OCR license, create a `License` object, and wire it up to an `OcrEngine`. The process hinges on proper binary data handling with `FileInputStream` (or the more modern `Files.readAllBytes`), and a few straightforward API calls. + +From here you can move on to actual OCR tasks—extracting text from PDFs, images, or even scanned documents—confident that the licensing layer won’t trip you up. If you’re curious about related topics, check out tutorials on **Java FileInputStream**, **binary data handling Java**, and **read license file Java** for other libraries. + +Happy coding, and may your OCR results be crystal clear! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/english/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/english/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..46ed97775 --- /dev/null +++ b/ocr/english/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-05-03 +description: Learn how to recognize text from image and convert image to text using + Aspose OCR for Java. Includes tips to improve OCR accuracy and run OCR on PNG files. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: en +og_description: Step‑by‑step guide to recognize text from image using Aspose OCR for + Java. Learn to convert image to text, improve OCR accuracy and run OCR on PNG. +og_title: recognize text from image with Aspose OCR – Java Tutorial +tags: +- OCR +- Java +- Aspose +- Image Processing +title: recognize text from image with Aspose OCR – Complete Java Guide +url: /python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# recognize text from image with Aspose OCR – Complete Java Guide + +Ever needed to **recognize text from image** but weren’t sure which library would give you reliable results? You’re not alone—many developers hit that wall when they first try to extract data from scanned PDFs, receipts, or lab reports. The good news is that Aspose OCR for Java makes the whole process a piece of cake, and you can even **convert image to text** with just a handful of lines. + +In this tutorial we’ll walk through everything you need to know: from loading an image for OCR, tweaking settings to **improve OCR accuracy**, to finally **run OCR on PNG** files and print the extracted text. No fluff, just a practical, runnable example you can drop into your project today. + +--- + +## What You’ll Need + +Before we dive in, make sure you have the following on your machine: + +| Prerequisite | Reason | +|--------------|--------| +| Java 17 (or newer) | Aspose OCR targets Java 8+, but the latest JDK gives you better performance. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | The core engine that does the heavy lifting. | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | Enables the full feature set; otherwise you’ll get a trial watermark. | +| An image file (PNG, JPEG, TIFF, etc.) containing clear text | We'll use `lab_report.png` as a concrete example. | +| A custom dictionary (optional) | Improves recognition for domain‑specific terms like “hemoglobin”. | + +If any of these sound unfamiliar, don’t panic—installing a JAR and creating a simple text file are trivial tasks that we’ll cover in a moment. + +--- + +## Step 1 – Set Up the Project and Import Dependencies + +First, create a new Maven (or Gradle) project and add the Aspose OCR dependency. Maven users can paste this snippet into their `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +If you prefer Gradle, the equivalent is: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** Keep an eye on the version number; newer releases often contain bug fixes that directly affect **improve OCR accuracy**. + +Now, create a Java class called `OcrDemo.java`. At the top of the file, import the required classes: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Step 2 – Initialize the OCR Engine and Apply Your License + +You can’t **run OCR on PNG** files without first telling the engine that it’s licensed. Here’s how you do it: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Why the extra `License` object? Aspose separates license handling from the engine to let you switch licenses on the fly, which can be handy in multi‑tenant SaaS scenarios. + +--- + +## Step 3 – Load a Custom Dictionary (Optional but Powerful) + +If you’re dealing with medical terminology, chemical formulas, or brand names, a custom dictionary can **improve OCR accuracy** dramatically. The dictionary is a plain‑text file with one word per line: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Why it works:** The OCR engine uses the dictionary to bias its language model toward the words you care about, reducing mis‑recognitions like “hemo­globin” → “hemoglobin”. + +If you don’t have a dictionary, just skip this line—Aspose still performs well with its built‑in language packs. + +--- + +## Step 4 – Load the Image You Want to Process + +Now we actually **load image for OCR**. Aspose supports many formats, but PNG is especially lossless, making it a safe choice for scanned documents. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** If your image is huge (over 5 MB), consider down‑scaling it first to speed up processing. The `Image` class provides a `resize` method you can call before recognition. + +--- + +## Step 5 – Run the OCR Process and Retrieve the Text + +With everything set, fire off the OCR engine. The `recognize` method returns an `OcrResult` object that holds the extracted string, confidence scores, and even bounding boxes if you need layout information. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +When you run the program, you should see something like: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +That’s it—you’ve successfully **recognize text from image** and **convert image to text** using Aspose OCR. + +--- + +## Step 6 – Common Pitfalls and How to Fix Them + +Even with a solid library, a few hiccups can trip you up: + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| Blank output | License not applied or expired | Verify the path to `Aspose.OCR.Java.lic` and ensure it matches the version. | +| Garbled characters | Image is low‑resolution or heavily compressed | Use a higher‑resolution source or pre‑process the image (binarization, deskew). | +| Missing domain‑specific words | No custom dictionary | Add a dictionary file with the missing terms, one per line. | +| Slow processing on large batches | No multi‑threading | Create a pool of `OcrEngine` instances (they’re thread‑safe) and process images in parallel. | + +--- + +## Step 7 – Extending the Example: Saving Results to a File + +If you need to keep the extracted text for later analysis, simply write it to a file: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Now you have a reusable pipeline that **load image for OCR**, extracts the content, and stores it wherever you like. + +--- + +## Bonus: Running OCR on Multiple PNG Files in a Folder + +Real‑world projects often need to process dozens of scans. Here’s a quick loop that picks up every `.png` in a directory: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Remember to reuse the same `ocrEngine` instance—creating a new one for each file adds unnecessary overhead. + +--- + +## Conclusion + +You now have a full‑featured, end‑to‑end solution that **recognize text from image** using Aspose OCR for Java. From loading the image, optionally enriching the engine with a custom dictionary to **improve OCR accuracy**, all the way to **run OCR on PNG** files and saving the output, the code is ready to drop into any Java project. + +What’s next? Try feeding the extracted text into a natural‑language‑processing pipeline, or experiment with OCR on handwritten notes (Aspose also offers a handwriting mode). The possibilities are endless, and you’ve just unlocked the first step. + +Happy coding! If you ran into any snags, feel free to leave a comment below—let’s troubleshoot together. + +![Screenshot of OCR result in console – recognize text from image](/images/ocr_console_result.png "recognize text from image 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/french/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/french/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..069893c26 --- /dev/null +++ b/ocr/french/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Extraire des tableaux d’une image avec Aspose OCR Java. Apprenez à charger + une image pour l’OCR, extraire un tableau d’un PNG, convertir le texte du tableau + d’image et reconnaître rapidement une image de reçu. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: fr +og_description: Extraire des tableaux d’une image avec Aspose OCR Java. Ce guide montre + comment charger une image pour l’OCR, extraire un tableau d’un PNG, convertir le + texte du tableau d’image et reconnaître une image de reçu. +og_title: Extraire des tableaux à partir d'une image – Tutoriel Aspose OCR Java +tags: +- Aspose OCR +- Java +- Image Processing +title: Extraire des tableaux d’une image – Guide complet Aspose OCR Java +url: /fr/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraire des tableaux à partir d’une image – Guide complet Aspose OCR Java + +Vous avez déjà eu besoin d’**extraire des tableaux à partir d’une image** mais vous êtes resté bloqué ? Peut‑être avez‑vous un reçu numérisé ou une facture photographiée et les données tabulaires sont enfouies dans un PNG. Dans ce tutoriel, vous verrez exactement comment *charger une image pour l’OCR*, transformer cette photo en lignes structurées, et **convertir le texte du tableau d’image** en quelque chose que vous pouvez exploiter en Java. + +Nous parcourrons chaque étape, de la mise en licence du moteur Aspose OCR à l’affichage de chaque cellule des tableaux détectés. À la fin, vous serez capable de **reconnaître des images de reçus** et d’en extraire les tableaux sans effort. + +## Ce que vous allez apprendre + +- Comment initialiser le moteur Aspose OCR et appliquer votre licence. +- Pourquoi activer la détection de tableau est la clé pour **extraire des tableaux à partir d’une image**. +- Le code exact nécessaire pour **charger une image pour l’OCR** et lancer la reconnaissance sur un PNG. +- Des méthodes pour gérer plusieurs tableaux, des scans basse résolution et les pièges courants. +- Comment **convertir le texte du tableau d’image** en un format imprimable (ou prêt pour une base de données). + +Aucune documentation externe requise — tout ce dont vous avez besoin se trouve ici. + +## Prérequis + +- Java 17 ou supérieur (le code utilise le système de modules moderne). +- Un fichier de licence Aspose OCR for Java (`Aspose.OCR.Java.lic`). Si vous faites simplement des essais, une clé d’évaluation temporaire fonctionne également. +- Une image PNG contenant un tableau clair (par ex., `receipt_with_table.png`). +- Maven ou Gradle pour récupérer la dépendance Aspose OCR : + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Astuce :** Placez le fichier de licence à côté de votre dossier `src/main/resources` afin que le chemin reste stable entre les environnements. + +--- + +## Étape 1 – Initialiser le moteur OCR pour **extraire des tableaux à partir d’une image** + +Avant que le moteur puisse faire quoi que ce soit, il doit savoir que vous êtes un utilisateur légitime. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Pourquoi c’est important :* Sans licence valide, le moteur OCR fonctionne en mode d’essai, ce qui peut tronquer les résultats ou ajouter des filigranes indésirables — rendant l’extraction de tableaux peu fiable. + +--- + +## Étape 2 – Activer la détection de tableau (**extraire tableau depuis png**) + +La détection de tableau n’est pas activée par défaut ; il faut basculer le commutateur. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Activer ce drapeau indique à Aspose OCR de traiter les groupes de texte alignés comme des lignes et des colonnes, exactement ce dont vous avez besoin lorsque vous voulez **extraire des tableaux à partir d’une image** au format PNG. + +--- + +## Étape 3 – **Charger une image pour l’OCR** et **reconnaître une image de reçu** + +Nous alimentons maintenant réellement l’image dans le moteur. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Si vous êtes dans un scénario de **reconnaissance d’image de reçu**, vous pourriez vouloir pré‑traiter l’image (redressement, augmentation du contraste). Cela dépasse le cadre de ce guide rapide mais vaut la peine d’être exploré pour les scans bruyants. + +--- + +## Étape 4 – Traiter le résultat OCR et **convertir le texte du tableau d’image** + +L’objet `OcrResult` peut contenir un ou plusieurs tableaux. Parcourons‑les et affichons chaque cellule. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Ce que cela fait :** + +- Vérifie si des tableaux ont été trouvés ; sinon, il suggère d’ajuster la qualité. +- Pour chaque tableau, il imprime les lignes avec des cellules séparées par des tabulations, un format pratique pour les importations CSV. +- L’appel `Cell::getText` est le cœur de **convertir le texte du tableau d’image** — il récupère la chaîne OCR brute de chaque cellule. + +### Résultat attendu + +En supposant que `receipt_with_table.png` contienne un simple tableau 3 × 2, vous verrez quelque chose comme : + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Si l’image comporte plusieurs tableaux, chacun sera séparé par une ligne vide. + +--- + +## Étape 5 – Vérifier les tableaux extraits et gérer les cas limites + +### Pièges courants + +| Problème | Pourquoi cela se produit | Solution rapide | +|----------|--------------------------|-----------------| +| **Aucun tableau détecté** | Image trop floue ou contraste faible | Appliquer une binarisation (`ImageProcessing.applyThreshold`) avant l’OCR | +| **Cellules fusionnées** | Les lignes du tableau sont pâles, l’OCR les traite comme un seul bloc | Augmenter `TableDetectionSensitivity` dans `ocrEngine.getConfig()` | +| **Ordre des colonnes incorrect** | Image inclinée entraînant un mauvais alignement | Utiliser `ImageProcessing.deskew` ou faire pivoter l’image de 90° | + +### Que faire ensuite + +- **Exporter en CSV** – remplacer `System.out.println(line);` par un `FileWriter` pour persister les données. +- **Injecter dans une base de données** – mapper chaque ligne à un POJO et utiliser JPA pour la persistance. +- **Combiner avec d’autres API** – pour le traitement de reçus, vous pouvez également extraire les totaux à l’aide d’expressions régulières sur le texte OCR. + +--- + +## Exemple complet fonctionnel (prêt à copier‑coller) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Exécutez ce programme, pointez‑le vers un PNG contenant un tableau clair, et observez la console se remplir de lignes correctement formatées. + +--- + +## Conclusion + +Vous disposez maintenant d’une solution solide, de bout en bout, pour **extraire des tableaux à partir d’une image** en utilisant Aspose OCR for Java. De la mise en licence à **charger une image pour l’OCR**, en passant par l’activation de **extraire tableau depuis png**, et enfin **convertir le texte du tableau d’image**, chaque étape est couverte avec explications et conseils pratiques. + +Ensuite, essayez de chaîner la sortie vers un fichier CSV, d’insérer les lignes dans une base de données relationnelle, ou de combiner l’étape OCR avec une routine d’extraction du total d’un reçu. Le même schéma fonctionne pour les factures, les listes de prix et tout document numérisé qui cache des données derrière une grille. + +Des questions sur la gestion de reçus basse résolution ou sur la mise à l’échelle en traitement par lots ? Laissez un commentaire ci‑dessous, et bon codage ! + +![Exemple d’extraction de tableaux à partir d’une image](https://example.com/assets/extract-tables-from-image.png "Extraction de tableaux à partir d’une image – sortie d’exemple") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/french/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..845f3bd82 --- /dev/null +++ b/ocr/french/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-05-03 +description: Extraire du texte d’une image en Python avec Aspose OCR. Apprenez un + tutoriel OCR Python étape par étape avec prise en charge du latin‑cyrillique mixte. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: fr +og_description: Extraire rapidement du texte d’une image avec Python. Ce guide montre + comment utiliser Aspose OCR en Python pour des images mixtes latin‑cyrilliques. +og_title: Extraction de texte à partir d’une image en Python – Guide complet d’Aspose + OCR +tags: +- OCR +- Python +- Aspose +title: Extraire du texte d’une image avec Python – Guide complet Aspose OCR +url: /fr/python-java/general/extract-text-from-image-python-complete-aspose-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 Python – Guide complet Aspose OCR + +Vous avez déjà eu besoin de **extract text from image python** mais vous n'étiez pas sûr de la bibliothèque capable de gérer un mélange de caractères latins et cyrilliques ? Vous n'êtes pas le seul — les développeurs rencontrent constamment ce problème lorsqu'ils effectuent de l'OCR sur des captures d'écran multilingues. + +La bonne nouvelle, c'est qu'Aspose OCR pour Python rend le processus presque indolore. Dans ce tutoriel, nous parcourrons l'installation du package, l'application de votre licence, le chargement d'une image multilingue, et enfin l'extraction du texte reconnu en quelques lignes de code. À la fin, vous disposerez d'un script prêt à l'emploi que vous pourrez intégrer à n'importe quel projet. + +## Ce que vous apprendrez + +- Comment configurer **Aspose OCR Python** dans un environnement virtuel. +- Pourquoi indiquer les langues (comme le latin et le cyrillique) accélère la détection. +- Le code exact nécessaire pour **extract text from image python** avec un appel de fonction unique. +- Les pièges courants lors du traitement d'OCR multilingue et comment les éviter. + +### Prérequis + +- Python 3.8 ou version supérieure installé sur votre machine. +- Un fichier de licence Aspose OCR (`Aspose.OCR.Java.lic`). L'essai gratuit fonctionne pour les tests, mais un fichier sous licence supprime les filigranes. +- Une image PNG/JPEG contenant à la fois des caractères latins et cyrilliques (nous l'appellerons `mixed_latin_cyrillic.png`). + +Si vous avez coché ces cases, vous êtes prêt à partir — aucun framework supplémentaire ou dépendance lourde n'est requis. + +--- + +## Étape 1 – Extraire du texte d'une image Python : installer Aspose OCR + +Première chose à faire : récupérer la bibliothèque depuis PyPI et s'assurer que votre environnement peut localiser le fichier de licence. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Conseil pro :** Si vous rencontrez une erreur de permission, ajoutez `--user` à la commande `pip install` ou exécutez le terminal en tant qu'administrateur. + +Maintenant que le package est sur votre système, nous l'importerons et indiquerons au moteur où se trouve notre licence. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Pourquoi avons‑nous besoin d'une licence à ce stade ? Sans elle, le moteur fonctionne en **evaluation mode**, ce qui limite le nombre de pages et ajoute un filigrane à la sortie. Fournir la licence dès le départ garantit que l'appel `recognize` ultérieur renvoie du texte propre. + +## Étape 2 – Charger votre image contenant du contenu latin‑cyrillique mixte + +Ensuite, nous chargeons l'image en mémoire. Aspose OCR travaille avec sa propre classe `Image`, qui abstrait le format de fichier sous‑jacent. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Si vous vous demandez si d'autres formats fonctionnent — oui, JPEG, BMP, TIFF et même PDF sont pris en charge. Il suffit de changer l'extension du fichier et la méthode `from_file` s'occupera du reste. + +## Étape 3 – Indiquer les langues pour une détection plus rapide (Optionnel mais utile) + +Lorsque vous connaissez les langues présentes dans l'image, vous pouvez prévenir le moteur. Ce n'est pas obligatoire, mais cela **réduit considérablement le temps de traitement** et améliore la précision pour l'OCR multilingue. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +La liste d'indices accepte toute langue prise en charge par Aspose OCR (par ex., `"Arabic"`, `"Japanese"`). Si vous sautez cette étape, le moteur essaiera chaque langue intégrée, ce qui peut être plus lent sur de gros lots. + +## Étape 4 – Exécuter le moteur OCR et extraire le texte + +Voici le moment de vérité : reconnaître réellement les caractères. La méthode `recognize` renvoie un objet `OcrResult` qui contient le texte brut, les scores de confiance, et même les boîtes englobantes si vous en avez besoin plus tard. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Pourquoi cela fonctionne :** En interne, Aspose OCR combine un détecteur de texte à réseau neuronal avec des classificateurs spécifiques à chaque langue. En lui fournissant un objet `Image`, vous évitez toute nécessité de prétraitement manuel comme la binarisation. + +## Étape 5 – Voir le texte extrait + +Enfin, affichons le résultat dans la console. Dans une application réelle, vous pourriez l'écrire dans un fichier, le pousser vers une base de données, ou le transmettre à une API de traduction. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Lorsque vous exécutez le script, vous devriez voir quelque chose comme : + +``` +Recognised text: +Hello мир! This is a test. +``` + +Cette sortie confirme que nous avons réussi à **extract text from image python**, en gérant à la fois les caractères latins et cyrilliques en une seule passe. + +## Exemple complet fonctionnel + +Ci-dessous le script complet que vous pouvez copier‑coller dans un fichier nommé `extract_ocr.py`. Remplacez simplement les chemins factices par vos répertoires réels. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Enregistrez le fichier, activez votre environnement virtuel, puis exécutez : + +```bash +python extract_ocr.py +``` + +Vous devriez voir le texte reconnu affiché, confirmant que le script fonctionne de bout en bout. + +## Questions fréquentes & cas limites + +**Et si l'image est floue ?** +Aspose OCR intègre la désorientation et la réduction du bruit, mais pour des photos fortement dégradées vous pourriez vouloir les pré‑traiter avec OpenCV (par ex., appliquer un flou gaussien et un seuillage). La classe `Image` peut également accepter un tableau NumPy, vous permettant d'enchaîner des filtres personnalisés avant d'appeler `recognize`. + +**Puis-je traiter un dossier entier d'images ?** +Absolument. Enveloppez la logique dans une boucle `for`, changez `from_file` pour lire chaque nom de fichier, et stockez les résultats dans un dictionnaire. N'oubliez pas de respecter les limites de taux de l'API si vous utilisez la version cloud. + +**Ai-je besoin d'une licence séparée pour chaque langue ?** +Non, une seule licence Aspose OCR couvre toutes les langues prises en charge. La liste `language_hints` n'est qu'une indication de performance. + +**Qu'en est‑il de l'entrée PDF ?** +Remplacez `Image.from_file` par `ocr.Image.from_file("document.pdf")`. Le moteur OCR rasterisera automatiquement chaque page et renverra le texte concaténé. + +## Conclusion + +Nous venons de présenter une méthode concise et prête pour la production afin de **extract text from image python** avec Aspose OCR. Les étapes — installer, licence, charger, indiquer les langues, reconnaître et afficher — couvrent tout ce dont vous avez besoin pour obtenir des résultats fiables sur du contenu latin‑cyrillique mixte. + +À partir de là, vous pourriez explorer des sujets avancés comme la **conversion d'image en texte** pour le traitement par lots, intégrer la sortie avec un **tutoriel Python OCR** sur le traitement du langage naturel, ou expérimenter d'autres indices de langue pour des documents multilingues. Le ciel est la limite, et le code est déjà entre vos mains. + +Vous avez un autre cas d'utilisation ou vous êtes tombé sur un problème ? Laissez un commentaire, partagez votre expérience, et continuons la conversation. Bon codage ! + +![Exemple d'extraction de texte d'une image Python](/images/extract-text-from-image-python.png "Capture d'écran montrant la sortie OCR – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/french/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..2cc7b7a78 --- /dev/null +++ b/ocr/french/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-05-03 +description: Extrayez du texte d’une image instantanément avec Aspose OCR. Apprenez + à définir la région d’intérêt, charger l’image pour l’OCR et extraire le texte d’une + facture en quelques minutes. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: fr +og_description: Extraire du texte d’une image à l’aide d’Aspose OCR. Ce guide montre + comment définir la région d’intérêt, charger l’image pour l’OCR et extraire le texte + d’une facture efficacement. +og_title: Extraire du texte d’une image avec Aspose OCR – Tutoriel complet +tags: +- ocr +- python +- image-processing +title: Extraire du texte d’une image avec Aspose OCR – Guide étape par étape +url: /fr/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraire du texte d'une image avec Aspose OCR – Guide étape par étape + +Besoin d'**extraire du texte d'une image** rapidement ? Vous n'êtes pas seul—les développeurs luttent constamment contre les scans bruyants, les reçus et les factures. Dans ce tutoriel, nous parcourrons une solution complète qui montre non seulement comment *extraire du texte d'une image*, mais aussi comment **définir une région d'intérêt**, **charger une image pour l'OCR**, et extraire la ligne exacte dont vous avez besoin dans une facture. + +Nous couvrirons tout, de l'installation de la bibliothèque Aspose OCR à la gestion des cas limites comme les pages tournées. À la fin, vous disposerez d'un script exécutable qui extrait le texte souhaité en un seul appel—sans recadrage manuel. + +## Ce que vous apprendrez + +- Comment **charger une image pour l'OCR** en utilisant l'API Python d'Aspose. +- La meilleure façon de **définir une région d'intérêt** (ROI) afin de ne traiter que la partie de l'image qui importe. +- Comment **extraire du texte d'une facture** sans récupérer toute la page. +- Astuces pour **traiter une image avec l'OCR** efficacement et éviter les pièges courants. + +**Prérequis** – un environnement Python 3.9+ récent, un fichier de licence Aspose OCR valide, et une image (par ex., un PNG de facture). Aucun autre outil externe n'est requis. + +--- + +## Étape 1 – Initialiser le moteur OCR (Configuration principale) + +Avant de pouvoir **traiter une image avec l'OCR**, vous avez besoin d'une instance du moteur qui possède votre licence. Cette étape est cruciale car un moteur non licencié ne renverra qu'un jeu de résultats limité. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Pourquoi c'est important* : l'objet `OcrEngine` est le cœur de la bibliothèque ; il gère les modèles linguistiques, le prétraitement d'image et la licence. Configurer la licence dès le départ garantit une précision totale et aucune filigrane. + +--- + +## Étape 2 – Charger l'image pour l'OCR + +Maintenant que le moteur est prêt, nous devons **charger l'image pour l'OCR**. Aspose prend en charge de nombreux formats (PNG, JPEG, TIFF), mais l'utilisation de `Image.from_file` garantit que l'image est décodée correctement. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Astuce pro** : Gardez vos fichiers image en dessous de 5 Mo pour un traitement le plus rapide possible. Les fichiers plus volumineux peuvent être réduits avec `image.resize(width, height)` avant l'OCR. + +--- + +## Étape 3 – Définir la région d'intérêt (ROI) + +La plupart des factures contiennent beaucoup de texte superflu—blocs d'adresse, pieds de page, etc. En **définissant une région d'intérêt**, nous indiquons au moteur de ne regarder que là où se trouvent le montant ou la date, ce qui améliore la vitesse et la précision. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Comment ça fonctionne* : la classe `Rectangle` recadre l'image virtuellement ; le moteur OCR ne voit jamais les pixels en dehors du rectangle, ainsi le bruit hors de la ROI est ignoré. + +--- + +## Étape 4 – Reconnaître le texte à l'intérieur de la ROI + +Avec le moteur, l'image et la ROI prêts, nous **extraitons enfin le texte de l'image**. La méthode `recognize` renvoie un objet `OcrResult` contenant la chaîne détectée et les scores de confiance. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Sortie attendue** (exemple pour une ligne de total de facture typique) : + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Si la ROI est correctement positionnée, vous ne verrez que la ligne dont vous avez besoin—rien d'autre. + +--- + +## Étape 5 – Exemple complet fonctionnel (prêt à copier‑coller) + +Ci-dessous le script complet qui regroupe toutes les étapes précédentes. Enregistrez-le sous le nom `extract_invoice_roi.py` et exécutez `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Exécutez le script et vous devriez voir la ligne ciblée affichée dans la console. Si vous obtenez une chaîne vide, revérifiez les coordonnées de la ROI — quelques pixels de décalage peuvent exclure complètement le texte. + +--- + +## Étape 6 – Variations courantes et cas limites + +### a) Dispositions de factures différentes + +Les factures de différents fournisseurs déplacent souvent la zone du total. Pour **traiter une image avec l'OCR** sur plusieurs dispositions, envisagez : + +- **ROIs multiples** : exécutez le moteur séquentiellement avec plusieurs rectangles et choisissez le résultat avec la plus haute confiance. +- **Détection dynamique de ROI** : utilisez une bibliothèque de traitement d'image légère (par ex., OpenCV) pour localiser d'abord le libellé « Total », puis calculez la ROI relative à celui‑ci. + +### b) Images tournées ou inclinées + +Si le scan est incliné, appelez `image.rotate(angle)` avant la reconnaissance : + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR propose également une auto‑correction d'inclinaison, mais la rotation manuelle vous donne un contrôle plus précis. + +### c) Caractères non latins + +Le modèle linguistique par défaut est l'anglais. Pour **extraire du texte d'une facture** rédigée dans une autre langue, définissez la langue avant la reconnaissance : + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Gros PDFs + +Lors du traitement de PDFs multi‑pages, extrayez chaque page en tant qu'image d'abord (Aspose PDF → Image), puis appliquez la même logique de ROI page par page. + +--- + +## Étape 7 – Conseils de performance et astuces pro + +- **Mettre en cache le moteur** : créer `OcrEngine` à plusieurs reprises dans une boucle ralentit le processus. Instanciez‑le une fois et réutilisez‑le. +- **Traitement par lots** : si vous avez des dizaines de factures, encapsulez l'appel OCR dans un `ThreadPoolExecutor` pour paralléliser le travail I/O‑bound. +- **Vérification de la confiance** : `ocr_result.confidence` renvoie un flottant entre 0 et 1. Rejetez les résultats inférieurs à 0,85 et recourez à une ROI plus grande ou à une révision manuelle. + +> **Attention** : définir la ROI trop petite peut couper des caractères, entraînant une sortie illisible. Testez toujours avec quelques factures d'exemple avant de passer à l'échelle. + +## Conclusion + +Vous disposez maintenant d'une méthode solide, prête pour la production, pour **extraire du texte d'une image** avec Aspose OCR, incluant une façon de **définir une région d'intérêt**, **charger une image pour l'OCR**, et d'**extraire de façon fiable le texte des champs de facture**. En limitant l'OCR à une ROI précise, vous augmentez à la fois la vitesse et la précision—idéal pour le traitement par lots de milliers de reçus. + +Prêt pour l'étape suivante ? Essayez d'intégrer ce script dans une API Flask afin que votre application web puisse télécharger une facture et renvoyer instantanément le montant total. Ou expérimentez avec plusieurs ROIs pour extraire la date, le numéro de facture et le nom du fournisseur en une seule fois. Les possibilités sont infinies, et avec les bases couvertes ici, vous êtes bien équipé pour relever tout défi OCR. + +Bon codage, et que votre texte extrait soit toujours propre ! + +![Diagramme du flux montrant comment extraire du texte d'une image avec Aspose OCR](workflow.png){: .center-image alt="Diagramme du flux montrant comment extraire du texte d'une image avec Aspose 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/french/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/french/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..328174f1a --- /dev/null +++ b/ocr/french/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Extrayez du texte d’une image en utilisant l’OCR asynchrone de Python. + Apprenez à convertir un fichier tif en texte, charger une image pour l’OCR et reconnaître + le texte d’une image efficacement. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: fr +og_description: Extraire du texte d’une image avec OCR asynchrone en Python. Ce guide + montre comment convertir un tif en texte, charger l’image pour l’OCR et reconnaître + le texte de l’image. +og_title: Extraire du texte d’une image avec Python Async OCR – Guide complet +tags: +- OCR +- Python +- AsyncIO +title: Extraire du texte d’une image avec Python Async OCR – Guide complet +url: /fr/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraire du texte d'une image avec Python Async OCR – Guide complet + +Besoin d'**extraire du texte d'une image** rapidement ? Avec l'OCR asynchrone de Python, vous pouvez le faire en quelques lignes de code seulement. Que vous manipuliez un scan .tif massif ou quelques JPEG, ce tutoriel vous montre comment convertir tif en texte, charger l'image pour l'OCR, et enfin reconnaître le texte d'une image sans bloquer votre boucle d'événements. + +Le problème—la plupart des développeurs utilisent une bibliothèque synchrone, puis se retrouvent face à une interface gelée pendant que le moteur traite les pixels. Dans ce guide, nous renversons la situation en utilisant l'API asynchrone d'Aspose OCR Cloud, afin que votre application reste réactive. À la fin, vous disposerez d'un script exécutable qui extrait le texte de n'importe quel format d'image pris en charge, et vous comprendrez les raisons derrière chaque étape. + +## Ce que vous allez apprendre + +- Comment configurer le SDK Aspose OCR Cloud pour Python. +- Le code exact nécessaire pour **charger l'image pour l'OCR** et démarrer une tâche de reconnaissance asynchrone. +- Conseils pour gérer les gros fichiers .tif et les particularités de licence. +- Moyens d'**extraire le texte d'une image** en toute sécurité, même lorsque le service renvoie des erreurs. +- Un exemple complet, prêt à copier‑coller, que vous pouvez intégrer à votre propre projet. + +> **Prérequis** : Python 3.8+ et un fichier de licence Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Aucun autre paquet tiers n'est requis. + +--- + +![flux de travail d'extraction de texte d'image](workflow.png){: .align-center alt="flux de travail d'extraction de texte d'image"} + +## Extraire du texte d'une image – Vue d'ensemble de l'OCR asynchrone + +Avant de plonger dans le code, décomposons le flux. Lorsque vous appelez `recognize_async`, le SDK envoie l'image au cloud d'Aspose, lance un travail en arrière‑plan, et vous renvoie un objet `Task`. Attendre cette tâche renvoie un `OcrResult` contenant la représentation en texte brut de l'image. Comme l'appel est asynchrone, vous pouvez lancer plusieurs travaux en parallèle—idéal pour le traitement par lots de grandes archives de documents numérisés. + +### Pourquoi utiliser l'asynchrone ? + +- **Entrée/Sortie non bloquante** – Votre boucle d'événements reste libre pour gérer d'autres tâches (par ex., servir des requêtes HTTP). +- **Scalabilité** – Lancez des dizaines de reconnaissances simultanément ; le cloud effectue le travail lourd. +- **Réactivité** – Les applications UI ne se figeront pas en attendant le moteur OCR. + +Maintenant que le « pourquoi » est clair, voyons le **comment**. + +## Convertir le TIF en texte avec Aspose OCR + +Un obstacle fréquent est de supposer que chaque bibliothèque OCR supporte nativement le .tif. Aspose le fait, mais vous devez tout de même lui fournir un objet `Image`. Le SDK abstrait le format, vous pouvez donc simplement le pointer vers le chemin du fichier. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Explication des lignes clés** + +- `ocr_engine.license = ...` – Sans licence valide, le cloud renvoie une erreur 403. Assurez‑vous que le fichier `.lic` est accessible depuis le répertoire de travail de votre script. +- `ocr.Image.from_file(image_path)` – Cette étape **charge l'image pour l'OCR** ; le SDK détecte automatiquement le format, vous n’avez donc pas besoin de convertir le .tif au préalable. +- `recognize_async` – Retourne une tâche compatible coroutine. Vous pourriez en lancer plusieurs dans un appel `gather` si vous avez un lot. + +> **Astuce** : Si vous traitez des TIFF de plusieurs gigaoctets, envisagez de les diviser en pages d'abord. `Image.from_file` d'Aspose peut accepter un indice de page, ce qui réduit la pression mémoire. + +## Reconnaître le texte d'une image de façon asynchrone + +Voyons comment appeler la fonction depuis un script typique. Le point d'entrée `asyncio.run` est la façon la plus simple de lancer la coroutine lorsque vous n'êtes pas déjà dans une boucle d'événements (par ex., un simple outil CLI). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Ce à quoi s'attendre** + +Exécuter le script sur un scan clair et haute résolution produit généralement une chaîne multi‑lignes correspondant à la page imprimée. Si l'image est bruitée, Aspose tente tout de même de la nettoyer, mais vous pourriez voir des caractères illisibles. Dans ce cas, envisagez un pré‑traitement avec OpenCV (par ex., seuillage) avant d'alimenter le fichier au moteur OCR. + +### Gérer les erreurs avec élégance + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Attraper `OcrException` garantit que votre programme ne plante pas lorsque le cloud renvoie une erreur—un problème qui surprend souvent les nouveaux arrivants qui oublient les aléas du réseau. + +## Charger l'image pour l'OCR – Conseils pratiques + +1. **Chemin de fichier vs. octets** – Le SDK accepte un chemin de fichier, mais vous pouvez également charger depuis un objet `bytes` si l'image réside en mémoire (`ocr.Image.from_bytes`). Cela est pratique lorsque vous avez déjà récupéré le fichier depuis S3 ou une base de données. +2. **Formats pris en charge** – En plus du .tif, Aspose gère PDF, BMP, GIF, et même les TIFF multi‑pages. Utilisez `Image.from_file("doc.pdf")` pour OCR directement les PDF. +3. **Performance** – Pour les travaux par lots, réutilisez la même instance `OcrEngine` ; créer un nouveau moteur pour chaque fichier ajoute une surcharge inutile. + +## Exemple complet fonctionnel (Toutes les étapes dans un seul script) + +Ci‑dessous se trouve le script complet, prêt à être exécuté, qui intègre la licence, la gestion des erreurs, et un simple analyseur d'arguments en ligne de commande. Copiez‑collez‑le, ajustez le chemin de la licence, et vous êtes prêt. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Sortie attendue** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Si l'image contient un paragraphe simple, la console affichera les mêmes lignes, en conservant les sauts de ligne. Pour les TIFF multi‑pages, le SDK concatène les pages dans l'ordre. + +## Questions fréquemment posées (FAQ) + +**Q : Cela fonctionne-t-il avec d'autres frameworks asynchrones comme FastAPI ?** +R : Absolument. Remplacez l'appel `asyncio.run` par `await async_ocr(path)` dans votre endpoint, et FastAPI gérera la boucle d'événements pour vous. + +**Q : Et si je dois traiter des centaines de fichiers en même temps ?** +R : Utilisez `asyncio.gather` : + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q : Puis‑je extraire du texte d'un PDF protégé par mot de passe ?** +R : Pas directement. Vous devez d'abord déverrouiller le PDF (par ex., avec `pikepdf`) puis fournir les octets décryptés à `ocr.Image.from_bytes`. + +**Q : Comment gérer des langues autres que l'anglais ?** +R : Définissez la langue avant la reconnaissance : + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose prend en charge plus de 60 langues ; consultez la documentation pour les identifiants exacts. + +## Conclusion + +Vous disposez maintenant d’une solution robuste d'**extraction de texte d'image** qui exploite `asyncio` de Python et l'API asynchrone d'Aspose OCR Cloud. En suivant les étapes ci‑dessus, vous pouvez **convertir tif en texte**, **charger l'image pour l'OCR**, et **reconnaître le texte d'une image** de manière non bloquante—parfait pour les utilitaires en ligne de commande et les services web à fort trafic. + +Et ensuite ? Essayez de traiter un dossier de scans en lot, expérimentez les paramètres de langue, ou acheminez la sortie OCR vers un pipeline NLP en aval. Le ciel est + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/french/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..b5a1ace86 --- /dev/null +++ b/ocr/french/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: extraire du texte OCR rapidement avec Aspose OCR. Apprenez comment améliorer + la précision OCR, charger une image OCR, prétraiter une image OCR et exécuter une + analyse OCR en Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: fr +og_description: extraire du texte OCR rapidement avec Aspose OCR. Maîtrisez comment + améliorer la précision OCR, charger une image OCR, prétraiter une image OCR et exécuter + une analyse OCR en Python. +og_title: Extraction de texte OCR – Guide complet avec Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Extraction de texte OCR – Guide complet avec Aspose OCR +url: /fr/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extraire du texte ocr – Guide complet avec Aspose OCR + +Vous avez déjà eu besoin d'**extraire du texte ocr** d'un scan incliné sans comprendre pourquoi le résultat ressemblait à du charabia ? Vous n'êtes pas seul — de nombreux développeurs rencontrent ce problème lorsque l'image est penchée, bruitée ou simplement à faible contraste. La bonne nouvelle, c'est que quelques ajustements de configuration peuvent transformer une image désordonnée en texte propre et interrogeable. Dans ce tutoriel, nous parcourrons un exemple complet, de bout en bout, qui montre comment **améliorer la précision de l'ocr**, charger une image ocr, pré‑traiter une image ocr, puis exécuter une analyse OCR avec Aspose OCR pour Python. + +À la fin de ce guide, vous disposerez d'un script exécutable qui lit un JPEG scanné, le nettoie automatiquement et affiche le texte extrait dans la console. Pas de liens mystérieux « voir la documentation » — tout ce dont vous avez besoin est ici. + +## Ce dont vous avez besoin + +- **Python 3.8+** (la dernière version stable fonctionne le mieux) +- **Aspose.OCR for Python via .NET** – installez-le avec `pip install aspose-ocr` +- Un **fichier de licence** (`Aspose.OCR.Java.lic`) si vous en avez acheté un (l'essai gratuit suffit pour les tests) +- Une image à traiter (par ex. `skewed_scanned_doc.jpg`) + +C’est tout. Si vous avez ces éléments, nous pouvons passer directement au code. + +## Étape 1 : Extraire du texte OCR avec le moteur Aspose OCR + +La première chose à faire est d'initialiser le moteur OCR et d'appliquer votre licence. Pensez au moteur comme le cerveau qui lira l'image ; sans licence, il refusera de fonctionner au‑delà d'une petite limite de démonstration. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Pourquoi c’est important :** Appliquer la licence dès le départ évite un échec silencieux plus tard. Si vous sautez cette étape, le moteur reviendra à un mode restreint et vous n'obtiendrez que quelques caractères — certainement pas ce que vous attendez lorsque vous essayez d'**extraire du texte ocr**. + +## Étape 2 : Améliorer la précision OCR avec le pré‑traitement + +Les scans tordus ou granuleux sont le fléau de tout projet OCR. Aspose vous permet d'activer plusieurs paramètres pratiques qui désorientent automatiquement, débruitent et augmentent le contraste. C’est le cœur de **l'amélioration de la précision ocr**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – fait pivoter l'image pour la rendre horizontale, ce qui est crucial lorsque le document d'origine n'était pas parfaitement plat. +- **remove_noise** – élimine les taches aléatoires qui apparaissent souvent dans les JPEG à basse résolution. +- **enhance_contrast** – rend le texte sombre plus sombre et le fond clair plus clair, aidant le moteur à distinguer les caractères. +- **binarization = "Otsu"** – un algorithme classique qui détermine le meilleur seuil pour la conversion noir‑et‑blanc. + +> **Astuce pro :** Si vous savez que vos images sources sont déjà propres, vous pouvez désactiver ces options pour accélérer le traitement. Mais pour la plupart des scans du monde réel, les laisser activées est le choix le plus sûr. + +## Étape 3 : Charger l'image OCR pour la numérisation + +Maintenant que le moteur est prêt, nous devons **charger l'image ocr**. La méthode `Image.from_file` d'Aspose prend en charge JPEG, PNG, TIFF et quelques autres formats. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Remplacez `YOUR_DIRECTORY` par le chemin réel sur votre machine. Si vous travaillez avec un flux d'octets en mémoire (par ex. depuis un téléchargement web), vous pouvez également utiliser `ocr.Image.from_bytes(byte_data)` — le même moteur le gérera. + +> **Cas particulier :** Les fichiers TIFF volumineux peuvent consommer beaucoup de mémoire. Si vous rencontrez une `MemoryError`, pensez à réduire la résolution de l'image d'abord ou à utiliser `ocr_engine.config.max_image_size` pour limiter les dimensions. + +## Étape 4 : Exécuter l'analyse OCR et obtenir les résultats + +Avec l'image chargée et le pré‑traitement activé, la dernière étape consiste à **exécuter l'analyse OCR**. Cet appel effectue tout le travail lourd en arrière‑plan. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +L'objet `ocr_result` contient plusieurs propriétés utiles : + +- `ocr_result.text` – la chaîne brute qui vous intéresse. +- `ocr_result.confidence` – un score numérique (0‑100) indiquant la fiabilité globale. +- `ocr_result.words` – une liste d'objets mot avec les coordonnées de la boîte englobante, pratique pour la mise en évidence. + +## Étape 5 : Afficher le texte extrait + +Enfin, nous affichons le résultat. Dans une application réelle, vous pourriez écrire le texte dans un fichier, une base de données ou l'alimenter dans un index de recherche. Pour ce tutoriel, un simple `print` suffit. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Sortie attendue** (exemple pour une facture simple) : + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Si la confiance est basse (< 80), vous voudrez peut‑être revoir les options de pré‑traitement ou essayer une autre méthode de binarisation comme `"Sauvola"`. + +## Bonus : Visualiser le pipeline de pré‑traitement (optionnel) + +Parfois, il est utile de voir ce que le moteur a fait à l'image. Aspose vous permet d'exporter le bitmap traité : + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Vous pourriez ensuite intégrer l'image dans la documentation : + +extract text ocr workflow diagram showing preprocessing steps + +> **Pourquoi faire cela :** Lorsque le résultat OCR semble incorrect, un coup d’œil rapide à `processed_debug.png` révèle souvent si l'image était encore trop sombre, encore inclinée ou présentait du bruit résiduel. + +## Questions fréquentes & pièges + +- **Et si mon document comporte plusieurs pages ?** + Aspose OCR fonctionne page par page. Parcourez chaque image de page et concaténez `ocr_result.text`. + +- **Puis‑je reconnaître des langues autres que l'anglais ?** + Oui — définissez `ocr_engine.config.language = "fra"` (ou tout code ISO‑639‑2) avant d'appeler `recognize`. + +- **Y a‑t‑il une limite de taille d'image ?** + Le moteur plafonne à 10 MP par défaut. Augmentez `ocr_engine.config.max_image_size` si vous avez besoin de scans plus grands, mais surveillez l'utilisation mémoire. + +- **Ai‑je besoin d'un moteur OCR séparé pour les PDF ?** + Pour les PDF, vous pouvez soit extraire chaque page en image d'abord (avec Aspose.PDF) soit utiliser la fonction OCR PDF intégrée. Les étapes présentées ici restent les mêmes une fois que vous avez une image. + +## Récapitulatif + +Nous avons vu comment **extraire du texte ocr** avec Aspose OCR pour Python, depuis la licence du moteur jusqu'aux réglages qui **améliorent la précision ocr**, le chargement du fichier source et enfin **l'exécution de l'analyse OCR** pour obtenir du texte propre. Le script complet est prêt à être copié‑collé, et vous comprenez maintenant pourquoi chaque drapeau de configuration est important. + +## Et après ? + +- **Expérimentez avec différentes méthodes de binarisation** (`"Sauvola"`, `"Bradley"`). Certaines polices réagissent mieux aux seuils adaptatifs. +- **Intégrez avec un moteur de recherche** (par ex. Elasticsearch) en utilisant le score de confiance pour classer les résultats. +- **Combinez avec des bibliothèques de post‑traitement OCR** comme `pyspellchecker` pour corriger les erreurs courantes. +- **Explorez le traitement par lots** pour des centaines de scans — encapsulez les étapes dans une fonction et alimentez‑la avec un dossier d'images. + +N'hésitez pas à ajuster le code, ajouter vos propres logs, ou l'intégrer à une chaîne de gestion documentaire plus large. Si vous rencontrez des difficultés, laissez un commentaire ci‑dessous—bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/french/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..9d50b0964 --- /dev/null +++ b/ocr/french/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Comment effectuer l’OCR d’un PDF avec Aspose OCR Java. Apprenez à exécuter + l’OCR sur un PDF, à reconnaître le texte d’un PDF, à convertir un PDF en JSON et + à charger un PDF pour l’OCR en quelques lignes de code seulement. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: fr +og_description: Comment effectuer l’OCR d’un PDF avec Aspose OCR Java. Ce guide montre + comment exécuter l’OCR sur un PDF, reconnaître le texte d’un PDF, convertir le PDF + en JSON et charger rapidement le PDF pour l’OCR. +og_title: Comment OCR un PDF avec Aspose OCR – Tutoriel complet de programmation +tags: +- Aspose OCR +- Java +- PDF processing +title: Comment OCR un PDF avec Aspose OCR – Guide complet étape par étape +url: /fr/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment faire de l'OCR sur un PDF avec Aspose OCR – Guide complet étape par étape + +Vous vous êtes déjà demandé **comment faire de l'OCR sur des PDF** sans vous battre avec des outils en ligne de commande ou payer des services SaaS coûteux ? Vous n'êtes pas seul. Dans de nombreux projets—automatisation de factures, archivage de contrats numérisés ou création d'une base de connaissances consultable—vous serez amené à extraire du texte de PDF rapidement et de manière fiable. + +Bonne nouvelle ? Avec Aspose OCR pour Java, vous pouvez **exécuter l'OCR sur un PDF**, reconnaître le texte des pages PDF, **convertir le PDF en JSON**, et même **charger un PDF pour l'OCR** en quelques lignes seulement. Dans ce tutoriel, nous parcourrons l’ensemble du flux de travail, expliquerons pourquoi chaque étape est importante, et vous fournirons un exemple de code prêt à l’emploi que vous pourrez intégrer à votre propre projet. + +## Ce que vous allez apprendre + +- Comment configurer le moteur Aspose OCR et appliquer votre licence. +- La méthode exacte pour **charger un PDF pour l'OCR** et le transmettre au reconnaisseur. +- Comment **reconnaître le texte d'un PDF** sur toutes les pages en un seul appel. +- Exporter le résultat complet de l'OCR vers un fichier **JSON** (parfait pour les API en aval) et une page unique vers **XML**. +- Conseils, pièges et variantes dont vous pourriez avoir besoin lors du traitement de PDF multi‑pages ou de packs de langues personnalisés. + +> **Prérequis** – Vous avez besoin de Java 8 ou supérieur, d’un fichier de licence valide pour Aspose OCR for Java (`Aspose.OCR.Java.lic`), et du JAR Aspose OCR dans votre classpath. Aucune autre bibliothèque externe n’est requise. + +--- + +## Comment faire de l'OCR sur un PDF – Initialiser le moteur Aspose OCR + +La première chose à faire est de créer une instance de `OcrEngine` et d’y attacher votre licence. Cette étape débloque l’ensemble complet des fonctionnalités et supprime le filigrane d’évaluation. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Pourquoi c’est important :** +Sans licence, Aspose OCR fonctionne en mode « essai » limité qui plafonne le nombre de pages et ajoute un filigrane à la sortie. Appliquer la licence dès le départ garantit que le reste du pipeline fonctionne sans restrictions inattendues. + +--- + +## Exécuter l'OCR sur un PDF – Charger le document et reconnaître le texte + +Nous **chargeons maintenant le PDF pour l'OCR**. Aspose OCR traite les PDF comme un type spécial `PdfDocument`, qui extrait en interne chaque page sous forme d’image avant de la transmettre au reconnaisseur. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Que se passe-t-il en coulisses ?** +`recognizeDocument` parcourt chaque page, la rasterise à la résolution DPI optimale, puis exécute le moteur OCR. Le résultat est un tableau `OcrPage` où chaque élément contient le texte détecté, les scores de confiance et les informations de mise en page. Cette approche est bien plus fiable que de fournir les octets bruts du PDF à une bibliothèque OCR générique. + +--- + +## Convertir le résultat OCR en JSON – Exporter le rapport complet + +La plupart des systèmes en aval préfèrent le JSON car il est facile à désérialiser en Java, JavaScript, Python ou même PowerShell. Aspose OCR fournit un utilitaire `JsonExport` qui sérialise l’ensemble du tableau `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Quand utiliseriez‑vous cela ?** +Si vous devez injecter la sortie OCR dans un index de recherche (Elasticsearch, Solr) ou un pipeline de données, le format JSON vous fournit une représentation structurée de chaque page, ligne et mot, avec les valeurs de confiance. + +--- + +## Exporter la première page en XML – Enregistrer la page individuelle + +Parfois, vous ne vous intéressez qu’à une seule page—peut‑être que la première page contient un titre ou un numéro de facture. La classe `XmlExport` vous permet d’enregistrer une seule `OcrPage` dans un fichier XML propre. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Pourquoi le XML ?** +Les systèmes hérités ou certains flux de travail d’entreprise s’appuient encore sur des schémas XML pour l’ingestion. Le fichier généré suit le schéma propre à Aspose, ce qui rend la validation simple. + +--- + +## Vérifier la sortie – Contrôler les fichiers JSON et XML + +Après l’exécution du programme, vous devriez voir deux fichiers dans `YOUR_DIRECTORY` : + +- `report_ocr.json` – Contient un tableau d’objets page. Un extrait rapide pourrait ressembler à : + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Contient les mêmes informations pour la page 1, encapsulées dans des balises ``. + +Ouvrez‑les dans n’importe quel éditeur ; vous verrez les chaînes OCR brutes, les scores de confiance et les coordonnées des boîtes englobantes. Si le JSON semble vide, vérifiez que le PDF d’entrée contient réellement du contenu rasterisé (images numérisées) et non du texte sélectionnable — Aspose OCR ne fonctionne que sur des images. + +--- + +## Pièges courants & astuces pro + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **JSON vide** | Le PDF contient du texte natif, pas des images. | Utilisez `PdfDocument.fromFile(..., true)` pour forcer la rasterisation, ou pré‑convertissez les pages en images. | +| **Confiance faible** | Le PDF source est de basse résolution ou fortement compressé. | Augmentez le DPI en appelant `ocrEngine.getImageProcessingOptions().setDpi(300)` avant `recognizeDocument`. | +| **Licence introuvable** | Chemin incorrect ou fichier manquant. | Utilisez un chemin absolu ou placez le fichier `.lic` sur le classpath et appelez `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Mémoire insuffisante sur de gros PDF** | Toutes les pages sont chargées en mémoire d’un coup. | Traitez les pages par lots : `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Étendre l’exemple + +- **Exécuter l'OCR sur un PDF avec une langue spécifique** – définissez `ocrEngine.getLanguage().setLanguage(Language.English)` ou chargez un pack de langue personnalisé. +- **Exporter chaque page vers des fichiers JSON séparés** – itérez sur `ocrPages` et appelez `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Intégrer avec un moteur de recherche** – injectez le JSON dans le processeur `attachment` d’Elasticsearch pour la recherche en texte intégral. + +--- + +## Conclusion + +Vous disposez maintenant d’une solution complète, prête pour la production, pour **faire de l'OCR sur un PDF** avec Aspose OCR pour Java. En initialisant le moteur, en chargeant le PDF, en exécutant l'OCR et en exportant à la fois **JSON** et **XML**, vous pouvez intégrer l'OCR dans n’importe quel flux de travail backend—que vous ayez besoin de **exécuter l'OCR sur un PDF**, **reconnaître le texte d'un PDF**, **convertir le PDF en JSON**, ou simplement **charger un PDF pour l'OCR**. + +Testez-le, ajustez le DPI ou les paramètres de langue, et voyez vos PDF auparavant opaques devenir des ressources consultables. Besoin d’aller plus loin ? Essayez d’indexer le JSON dans Elasticsearch, ou post‑traitez le XML avec XSLT pour générer des rapports personnalisés. + +Bon codage, et que vos PDF soient toujours lisibles ! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/french/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..1a64a0025 --- /dev/null +++ b/ocr/french/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'Comment exécuter l''OCR rapidement : apprenez à extraire du texte d’une + image et à reconnaître le texte d’un formulaire en utilisant Aspose OCR Java. Étapes + simples pour lire une image pour l’OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: fr +og_description: 'comment exécuter l''OCR rapidement : apprenez à extraire du texte + d''une image et à reconnaître le texte d''un formulaire en utilisant Aspose OCR + Java. Étapes simples pour lire une image avec l''OCR.' +og_title: comment exécuter l'OCR sur un formulaire – extraire du texte d'une image +tags: +- ocr +- java +- image-processing +title: Comment exécuter l’OCR sur un formulaire – extraire le texte d’une image +url: /fr/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# comment exécuter l'ocr sur un formulaire – extraire du texte d'une image + +Vous vous êtes déjà demandé **comment exécuter l'ocr** sur un document numérisé sans passer des heures à bricoler avec des bibliothèques obscures ? Vous n'êtes pas seul. Dans de nombreux projets—que ce soit la numérisation de factures, l'archivage de contrats ou l'extraction de données à partir de formulaires manuscrits—être capable de **extraire du texte d'une image** est un point de douleur quotidien. + +Voici le problème : Aspose OCR for Java rend toute la chaîne presque indolore. Dans ce tutoriel, nous passerons en revue chaque ligne de code dont vous avez besoin pour **reconnaître du texte à partir d'un formulaire** , expliquer pourquoi chaque étape est importante, et vous montrer comment **lire l'image pour l'ocr** avec des scores de confiance. À la fin, vous disposerez d'une classe Java prête à l'emploi que vous pourrez intégrer à n'importe quel projet Maven ou Gradle. + +## Ce que vous apprendrez + +- Configurer le moteur Aspose OCR et appliquer votre licence. +- Charger un JPEG, PNG ou TIFF en mémoire. +- Exécuter l'OCR et parcourir chaque ligne de texte reconnu. +- Détecter les lignes à faible confiance pour une révision manuelle. +- Étendre l'exemple aux PDF multi‑pages ou à différents formats d'image. + +Aucune expérience préalable avec Aspose n'est requise, juste un environnement de développement Java basique (JDK 11+ et n'importe quel IDE de votre choix). Commençons. + +![exemple d'exécution d'ocr](/images/ocr-demo.png){alt="exemple d'exécution d'ocr sur un formulaire numérisé"} + +## Étape 1 : Initialiser le moteur OCR – **comment exécuter l'ocr** + +La toute première chose à faire avant toute opération OCR est de créer une instance `OcrEngine` et d'y attacher une licence valide. Sans licence, la bibliothèque fonctionne en mode démo, ce qui limite le nombre de pages que vous pouvez traiter. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Pourquoi c'est important :** +Le `OcrEngine` contient toute la configuration — langue, mode de détection et ajustements de performance. En définissant la licence dès le départ, vous évitez le basculement silencieux en mode d'essai qui tronquerait autrement votre sortie. + +## Étape 2 : Charger l'image – **extraire du texte d'une image** + +Ensuite, nous avons besoin d'un objet `Image` qui pointe vers le fichier que vous souhaitez numériser. Aspose prend en charge un large éventail de formats, vous pouvez donc fournir une page PDF numérisée que vous avez déjà convertie en PNG, un JPEG brut, ou même un TIFF multi‑pages. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Pourquoi c'est important :** +Charger l'image en tant qu'objet `Image` donne au moteur l'accès aux données de pixels, aux informations DPI et à la profondeur de couleur—tout cela influence la précision de l'OCR. Si vous sautez cette étape et passez un tableau d'octets brut, vous perdrez ces indications utiles. + +## Étape 3 : Exécuter l'OCR – **reconnaître du texte à partir d'un formulaire** + +Voici la partie amusante : reconnaître réellement les caractères. La méthode `recognize` renvoie un `RecognitionResult` qui contient une collection d'objets `Line`, chacun avec son propre score de confiance. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Pourquoi c'est important :** +Appeler `recognize` déclenche une cascade de processus internes—pré‑traitement (redressement, suppression du bruit), segmentation, classification des caractères, et post‑traitement (vérification orthographique, modèle linguistique). L'objet résultat abstrait toute cette complexité. + +## Étape 4 : Traiter les résultats – **lire l'image pour l'ocr** sortie + +Une fois que vous avez le `RecognitionResult`, vous pouvez parcourir chaque ligne, décider automatiquement de ce qu'il faut conserver, et signaler tout ce qui semble incertain. Un seuil de confiance de 85 % est un bon point de départ pour la plupart des formulaires imprimés. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Sortie attendue (exemple) :** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +Dans l'exemple ci‑dessus, le moteur n'était pas sûr du dernier chiffre du montant total, nous avons donc affiché un avertissement. Vous pourriez acheminer ces lignes vers une interface utilisateur pour une correction manuelle ou les consigner pour une révision ultérieure. + +### Cas limites et astuces + +- **Pages multiples :** Si vous avez un PDF multi‑pages, bouclez sur chaque indice de page et appelez `Image.fromPdf(pdfPath, pageIndex)`. +- **Langues différentes :** Définissez `engine.getLanguage().setLanguage(Language.Spanish);` avant d'appeler `recognize`. +- **Qualité de l'image :** Les numérisations basse résolution (< 150 DPI) produisent souvent une confiance inférieure à 80 %. L'agrandissement avec `image.resize(300, 300)` peut aider, mais la meilleure solution est une meilleure numérisation. +- **Performance :** Réutiliser la même instance `OcrEngine` pour de nombreuses images réduit la surcharge comparée à la création d'une nouvelle à chaque fois. + +## Questions fréquentes + +**Puis-je exécuter cela sur un serveur sans interface ?** +Absolument. La bibliothèque n'a aucune dépendance GUI, elle fonctionne donc parfaitement dans des conteneurs Docker ou des pipelines CI. + +**Et si je n'ai pas encore de licence ?** +Vous pouvez toujours appeler `engine.recognize`, mais le mode démo s'arrêtera après les 2 premières pages et ajoutera un filigrane à la sortie. C’est parfait pour des tests rapides. + +**Existe-t-il un moyen d'extraire des données structurées (par ex., des tableaux) ?** +Aspose OCR fournit une classe `TableRecognizer`, mais cela dépasse le cadre de ce guide pour débutants. Une fois les bases maîtrisées, consultez la documentation officielle pour `TableRecognizer`. + +## En résumé – **comment exécuter l'ocr** en bref + +Nous avons couvert tout ce dont vous avez besoin pour **comment exécuter l'ocr** sur un formulaire numérisé : initialiser le moteur, charger l'image, exécuter la reconnaissance, et gérer les résultats de manière intelligente. Avec seulement quelques lignes de Java, vous pouvez **extraire du texte d'une image**, **reconnaître du texte à partir d'un formulaire**, et **lire l'image pour l'ocr** avec des scores de confiance qui vous permettent de décider quand une révision humaine est nécessaire. + +Prochaines étapes ? Essayez de remplacer le JPEG par un TIFF multi‑pages, expérimentez différents seuils de confiance, ou intégrez la sortie dans une base de données pour une saisie automatisée. Les possibilités sont aussi vastes que les documents que vous devez traiter. + +Vous avez d'autres questions sur l'OCR, le prétraitement d'image ou les licences ? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/french/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..2981cf382 --- /dev/null +++ b/ocr/french/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-05-03 +description: Comment utiliser l'OCR pour extraire du texte de fichiers PDF en Java. + Apprenez à reconnaître le texte d’un PDF, à convertir le PDF en texte et à gérer + efficacement les PDF multipages avec l’OCR. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: fr +og_description: Comment utiliser l’OCR pour extraire du texte de fichiers PDF en Java. + Ce guide montre comment reconnaître le texte d’un PDF, convertir un PDF en texte + et traiter un PDF multipage avec l’OCR. +og_title: Comment utiliser l’OCR en Java – Extraire du texte à partir de PDF multi‑pages +tags: +- ocr +- java +- pdf +- aspose +title: Comment utiliser l'OCR en Java – Extraire du texte à partir de PDF multi‑pages +url: /fr/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment utiliser l’OCR en Java – Extraire du texte de PDF multi‑pages + +**Comment utiliser l’OCR** dans un projet Java ? Si vous avez déjà eu besoin d’extraire du texte de fichiers PDF sans vous appuyer sur la couche texte interne du PDF, vous êtes au bon endroit. Ce tutoriel vous guide à travers une solution complète, exécutable, qui **reconnaît le texte à partir de PDF**, convertit le PDF en texte, et gère même un **PDF multi‑pages OCR** en un seul appel. + +Imaginez que vous recevez un contrat numérisé — un TIFF de 12 pages intégré dans un PDF. Vous voulez le texte recherchable pour l’indexation, mais le fichier ne contient aucun caractère intégré. Aucun problème ; nous allons vous montrer exactement comment le faire, étape par étape. + +> **Ce que vous obtiendrez :** un extrait Java prêt à l’emploi utilisant Aspose.OCR, des explications sur l’importance de chaque ligne, des astuces pour éviter les pièges courants, et un exemple de sortie que vous pouvez vérifier immédiatement. + +--- + +## Ce dont vous avez besoin + +Avant de commencer, assurez‑vous d’avoir : + +* **Java 17** (ou tout JDK récent) – le code fonctionne aussi avec des versions antérieures, mais 17 est le meilleur compromis. +* Bibliothèque **Aspose OCR for Java** – vous pouvez télécharger le JAR depuis le site Aspose ou l’ajouter via Maven/Gradle. +* Un **PDF multi‑pages** (ou TIFF) que vous souhaitez traiter. Dans nos exemples nous utiliserons `contract_multipage.pdf` placé dans un dossier appelé `YOUR_DIRECTORY`. +* Un fichier de licence **Aspose OCR** valide (`Aspose.OCR.Java.lic`). Sans licence la bibliothèque fonctionne en mode évaluation, ce qui est suffisant pour un test rapide mais ajoute un filigrane. + +C’est tout — pas de moteurs OCR supplémentaires, pas de binaires natifs, juste un JAR unique et une licence. + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "How to use OCR in Java – visual overview of the process") + +*Texte alternatif de l’image : comment utiliser l’OCR en Java – aperçu visuel du chargement, de la reconnaissance et de la sortie du texte.* + +--- + +## Étape 1 : Configurer le moteur OCR – **Comment utiliser l’OCR** correctement + +La première chose à faire est de créer une instance du moteur OCR et d’appliquer votre licence. Sans licence le moteur fonctionnera toujours, mais vous verrez un filigrane d’évaluation dans la sortie. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Pourquoi c’est important :** +`OcrEngine` est l’objet central qui orchestre l’analyse d’image, la détection de langue et l’extraction de texte. Appliquer la licence dès le départ empêche le moteur de retomber en mode essai plus tard, ce qui pourrait affecter la précision. + +--- + +## Étape 2 : Charger le document – **Extraire du texte d’un PDF** efficacement + +Aspose OCR peut lire directement les conteneurs PDF et TIFF. Ici nous chargeons un PDF multi‑pages contenant des images numérisées. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Pourquoi c’est important :** +`PdfDocument.fromFile` analyse le conteneur et vous donne accès à chaque page sous forme d’image. Cette abstraction permet au moteur OCR de traiter chaque page de la même façon, quel que soit le format d’origine. + +**Astuce :** Si votre fichier source est un TIFF, le même appel fonctionne — Aspose détecte automatiquement le format. Aucun code supplémentaire n’est requis. + +--- + +## Étape 3 : Reconnaître toutes les pages en une fois – **Reconnaître le texte d’un PDF** sans accroc + +Au lieu de boucler vous‑même sur les pages, vous pouvez demander au moteur de traiter le document entier en un seul appel. C’est la façon la plus efficace de **convertir un PDF en texte** lorsqu’on travaille avec un **PDF multi‑pages OCR**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Pourquoi c’est important :** +Appeler `recognizeDocument` une seule fois réduit la surcharge liée à l’initialisation répétée du moteur. Cela garantit également des paramètres de langue cohérents d’une page à l’autre, ce qui est crucial pour les documents juridiques qui mêlent souvent plusieurs polices. + +--- + +## Étape 4 : Exporter le texte reconnu – **Convertir le PDF en texte** pour l’indexation + +Maintenant que chaque page a été traitée, nous parcourons simplement les résultats et affichons les chaînes extraites. Vous pouvez aussi les écrire dans un fichier, une base de données, ou les injecter dans un index de recherche. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Sortie attendue (troncature) :** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Si le PDF contient 12 pages, vous verrez douze sections `--- Page X ---`, chacune suivie du texte extrait par OCR. + +--- + +## Astuces avancées pour un **PDF multi‑pages OCR** + +### 1. Ajuster les paramètres de langue + +Par défaut Aspose tente de détecter automatiquement la langue, mais vous pouvez accélérer le processus en la spécifiant : + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Contrôler le pré‑traitement d’image + +Les contrats numérisés contiennent souvent du bruit. Vous pouvez activer le redressement et la binarisation : + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Gérer les gros fichiers avec élégance + +Si vous traitez des PDF de plus de 100 Mo, envisagez de diffuser les pages plutôt que de charger le document entier d’un coup : + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Cette approche réduit la pression sur la mémoire et est pratique pour les traitements par lots. + +### 4. Exporter vers des formats structurés + +Au‑delà du texte brut, vous pouvez exporter en JSON ou XML pour un traitement en aval : + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Problèmes courants & comment les éviter + +| Problème | Pourquoi cela arrive | Solution | +|----------|----------------------|----------| +| **Sortie vide** | Licence non appliquée ou chemin de fichier incorrect. | Vérifiez le chemin de `setLicense` et assurez‑vous que le fichier existe. | +| **Caractères illisibles** | Paramètre de langue incorrect ou source à basse résolution. | Définissez la bonne `Language` et assurez‑vous que les images sources sont ≥300 dpi. | +| **Erreurs de mémoire** | Chargement d’un PDF énorme en une fois. | Utilisez l’approche de diffusion présentée ci‑dessus. | +| **Reconnaissance partielle d’une page** | Le PDF contient des calques raster et vectoriels mélangés. | Aplatissez le PDF d’abord : `pdfDoc.flatten();` avant l’OCR. | + +--- + +## Récapitulatif – Ce que nous avons couvert + +* **Comment utiliser l’OCR** avec Aspose en Java. +* **Extraire du texte d’un PDF** (ou TIFF) en un seul appel. +* **Reconnaître le texte d’un PDF** sur toutes les pages sans boucles manuelles. +* **Convertir le PDF en texte** et l’afficher proprement. +* Astuces pour gérer un **PDF multi‑pages OCR**, incluant les réglages de langue et le streaming mémoire‑friendly. + +Vous disposez maintenant d’un extrait complet, prêt pour la production, que vous pouvez intégrer à n’importe quel projet Java. N’hésitez pas à ajuster les options de traitement d’image, à changer la destination de sortie, ou à intégrer le résultat dans un index de recherche. + +--- + +## Prochaines étapes + +* **Explorer les fonctionnalités avancées d’Aspose OCR** – comme la reconnaissance d’écriture manuscrite ou la conformité PDF/A. +* **Combiner l’OCR avec la manipulation de PDF** (par ex., ajouter une couche texte cachée dans le PDF pour le rendre searchable). +* **Automatiser le traitement par lots** en lisant un dossier de PDF et en écrivant chaque résultat dans un fichier `.txt` correspondant. + +Si vous rencontrez des difficultés, les forums Aspose sont un excellent endroit pour poser vos questions, et la référence API fournit des détails exhaustifs sur chaque méthode utilisée ici. + +Bon codage, et profitez de transformer ces scans récalcitrants en texte recherchable ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/french/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..f60b1a525 --- /dev/null +++ b/ocr/french/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-05-03 +description: Lire un fichier binaire Java pour charger une licence Aspose OCR. Apprenez + l’utilisation de FileInputStream, la gestion des données binaires et des conseils + pratiques dans ce guide étape par étape. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: fr +og_description: Lire un fichier binaire Java pour charger une licence Aspose OCR. + Suivez ce guide complet pour maîtriser FileInputStream et la gestion des données + binaires en Java. +og_title: Lire un fichier binaire Java – Charger les octets de licence pour Aspose + OCR +tags: +- Java +- File I/O +- OCR +title: Lire un fichier binaire Java – Charger les octets de licence pour Aspose OCR +url: /fr/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Lire un fichier binaire Java – Charger les octets de licence pour Aspose OCR + +Vous avez déjà eu besoin de **lire un fichier binaire Java** en traitant une licence pour une bibliothèque tierce ? Vous n'êtes pas seul. La plupart des développeurs Java rencontrent ce problème lorsqu'ils essaient d'alimenter un fichier `.lic` dans un moteur OCR, et les astuces habituelles pour les fichiers texte ne fonctionnent tout simplement pas. + +Dans ce tutoriel, nous allons parcourir un exemple complet et exécutable qui montre exactement comment ouvrir un fichier de licence binaire, extraire ses octets en mémoire, et transmettre ces octets à Aspose OCR for Java. En chemin, vous verrez pourquoi `FileInputStream` est l'outil adéquat, comment gérer les éventuels `IOException`, et quelques astuces de pro que vous ne trouverez pas forcément dans la documentation officielle. + +À la fin du guide, vous serez capable de **lire un fichier binaire Java**, créer un objet `License`, et l'assigner à un `OcrEngine` sans aucune difficulté. + +## Ce que couvre ce guide + +- Prérequis : Java 17+, Maven (ou Gradle), et la bibliothèque Aspose OCR for Java. +- Code étape par étape qui lit un fichier `.lic` binaire à l'aide de `FileInputStream`. +- Explication de chaque ligne afin que vous compreniez le *pourquoi* derrière le *comment*. +- Gestion des cas limites (fichier manquant, octets corrompus) et conseils pratiques de débogage. +- Un extrait final, autonome, que vous pouvez copier‑coller dans votre IDE et exécuter immédiatement. + +Si vous vous êtes déjà demandé s'il vous fallait une API spéciale pour lire les fichiers de licence, la réponse est un **non** retentissant — simple I/O binaire. Plongeons‑y. + +## Étape 1 : Lire un fichier binaire Java avec FileInputStream + +La première chose dont nous avons besoin est une méthode fiable pour extraire les octets bruts du fichier de licence sur le disque. En Java, `FileInputStream` est le cheval de bataille pour cela. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Pourquoi cela fonctionne :** `Files.readAllBytes` crée en interne un `FileInputStream`, lit le flux complet, puis le ferme pour vous. C’est sûr, concis, et évite le piège classique du « oublier de fermer le flux ». Si vous préférez le modèle classique, vous pouvez le remplacer par un bloc *try‑with‑resources* utilisant directement `FileInputStream`. + +### Astuce pro + +Si le fichier de licence est volumineux (improbable, mais possible), envisagez de le lire par morceaux plutôt que de le charger en une fois. Pour la plupart des licences OCR—généralement moins de quelques kilo‑octets—l’approche « tout d’un coup » est parfaitement adéquate. + +## Étape 2 : Créer un objet License pour Aspose OCR + +Maintenant que nous disposons des octets bruts, nous devons les transformer en une instance `License` compatible avec Aspose. La bibliothèque fournit une classe `License` qui accepte un tableau d’octets. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Pourquoi c’est important :** En passant les octets directement, vous évitez tout problème lié aux chemins (comme la confusion entre chemin relatif et répertoire de travail) et vous rendez votre déploiement portable — il suffit de placer le fichier `.lic` où que votre application s’exécute. + +## Étape 3 : Assigner la licence au moteur OCR + +Avec l’objet `License` prêt, la dernière étape consiste à l’attacher à un `OcrEngine`. Cette étape garantit que le composant OCR fonctionne en mode licencié plutôt qu’en mode d’évaluation. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Note :** Certaines versions plus anciennes d’Aspose exposent un champ public `license` au lieu d’un setter. Ajustez le code en conséquence (`ocrEngine.license = license;`) si vous rencontrez une erreur de compilation. + +## Étape 4 : Vérifier que la licence a été chargée avec succès (Optionnel mais utile) + +Un petit test de bon sens vous fait gagner des heures de débogage plus tard. La classe `License` ne lève pas d’exception en cas de succès, mais vous pouvez tenter une opération OCR sans risque pour confirmer. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Si vous voyez le message « License applied successfully », tout est en ordre. Sinon, revérifiez le chemin du fichier, l’intégrité des octets, et assurez‑vous d’utiliser la bonne version d’Aspose. + +## Exemple complet fonctionnel + +Assembler toutes les pièces donne un programme compact, prêt à être copié‑collé. N’hésitez pas à le placer dans un fichier `Main.java` et à l’exécuter. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Sortie attendue (en supposant que l’image factice existe) :** + +``` +License applied successfully – OCR engine is ready. +``` + +Si le fichier de licence est absent ou corrompu, vous verrez un message d’erreur clair tel que : + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Pièges courants et comment les éviter + +- **Confusion de chemin :** Les chemins relatifs sont résolus par rapport au répertoire de travail de la JVM, pas à l’emplacement du fichier source. Utilisez un chemin absolu ou placez le fichier `.lic` à côté du JAR et référencez‑le avec `getResourceAsStream`. +- **Ordre d’octets incorrect :** Ne tentez jamais de lire un fichier binaire avec un `Reader` (orienté caractères). Cela corrompra les données. Restez sur les API basées sur `FileInputStream`. +- **Incompatibilité de version :** Certaines versions plus anciennes d’Aspose attendent `license.setLicense("path/to/file")` au lieu de `setLicenseBytes`. Consultez les notes de version de la bibliothèque si vous obtenez un `NoSuchMethodError`. +- **Oubli de fermer les flux :** Si vous revenez à l’approche classique avec `FileInputStream`, encapsulez‑le dans un bloc *try‑with‑resources* pour garantir la fermeture. + +## Conclusion + +Vous savez maintenant comment **lire un fichier binaire Java** pour charger une licence Aspose OCR, créer un objet `License`, et le brancher à un `OcrEngine`. Le processus repose sur une manipulation correcte des données binaires avec `FileInputStream` (ou la méthode plus moderne `Files.readAllBytes`) et quelques appels d’API simples. + +À partir d’ici, vous pouvez passer aux tâches OCR réelles — extraction de texte depuis des PDF, des images ou même des documents numérisés—en étant certain que la couche de licence ne vous posera plus de problème. Si vous êtes curieux de sujets connexes, consultez les tutoriels sur **Java FileInputStream**, **binary data handling Java**, et **read license file Java** pour d’autres bibliothèques. + +Bon codage, et que vos résultats OCR soient d’une clarté cristalline ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/french/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/french/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..cb4fd31cf --- /dev/null +++ b/ocr/french/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Apprenez à reconnaître le texte à partir d’une image et à convertir une + image en texte en utilisant Aspose OCR pour Java. Inclut des conseils pour améliorer + la précision de l’OCR et exécuter l’OCR sur des fichiers PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: fr +og_description: Guide étape par étape pour reconnaître le texte à partir d’une image + avec Aspose OCR pour Java. Apprenez à convertir une image en texte, à améliorer + la précision de l’OCR et à exécuter l’OCR sur des fichiers PNG. +og_title: Reconnaître du texte à partir d'une image avec Aspose OCR – Tutoriel Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Reconnaître le texte d’une image avec Aspose OCR – Guide complet Java +url: /fr/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconnaître du texte à partir d'une image avec Aspose OCR – Guide complet Java + +Vous avez déjà eu besoin de **reconnaître du texte à partir d'une image** mais vous ne saviez pas quelle bibliothèque vous offrirait des résultats fiables ? Vous n'êtes pas seul — de nombreux développeurs rencontrent ce problème lorsqu'ils essaient d'extraire des données de PDF numérisés, de reçus ou de rapports de laboratoire. La bonne nouvelle, c'est qu'Aspose OCR pour Java rend tout le processus simple comme bonjour, et vous pouvez même **convertir l'image en texte** en quelques lignes seulement. + +Dans ce tutoriel, nous passerons en revue tout ce que vous devez savoir : du chargement d'une image pour l'OCR, à l'ajustement des paramètres pour **améliorer la précision de l'OCR**, jusqu'à **exécuter l'OCR sur des fichiers PNG** et afficher le texte extrait. Pas de blabla, juste un exemple pratique et exécutable que vous pouvez intégrer dès aujourd'hui à votre projet. + +--- + +## Ce dont vous aurez besoin + +Avant de commencer, assurez‑vous d'avoir les éléments suivants sur votre machine : + +| Prérequis | Raison | +|-----------|--------| +| Java 17 (ou version supérieure) | Aspose OCR cible Java 8+, mais le JDK le plus récent offre de meilleures performances. | +| Bibliothèque Aspose OCR for Java (`aspose-ocr.jar`) | Le moteur principal qui fait le gros du travail. | +| Fichier de licence Aspose OCR valide (`Aspose.OCR.Java.lic`) | Active l'ensemble complet des fonctionnalités ; sinon vous obtiendrez un filigrane d'essai. | +| Un fichier image (PNG, JPEG, TIFF, etc.) contenant du texte lisible | Nous utiliserons `lab_report.png` comme exemple concret. | +| Un dictionnaire personnalisé (facultatif) | Améliore la reconnaissance pour les termes spécifiques au domaine comme « hemoglobin ». | + +Si l'un de ces éléments vous est inconnu, ne paniquez pas — installer un JAR et créer un simple fichier texte sont des tâches triviales que nous aborderons dans un instant. + +--- + +## Étape 1 – Configurer le projet et importer les dépendances + +Tout d'abord, créez un nouveau projet Maven (ou Gradle) et ajoutez la dépendance Aspose OCR. Les utilisateurs Maven peuvent coller cet extrait dans leur `pom.xml` : + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Si vous préférez Gradle, l'équivalent est : + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Astuce pro :** Surveillez le numéro de version ; les versions plus récentes contiennent souvent des corrections de bugs qui influent directement sur **l'amélioration de la précision de l'OCR**. + +Ensuite, créez une classe Java nommée `OcrDemo.java`. En haut du fichier, importez les classes requises : + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Étape 2 – Initialiser le moteur OCR et appliquer votre licence + +Vous ne pouvez pas **exécuter l'OCR sur PNG** sans d'abord indiquer au moteur qu'il est licencié. Voici comment procéder : + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Pourquoi cet objet `License` supplémentaire ? Aspose sépare la gestion de la licence du moteur afin de vous permettre de changer de licence à la volée, ce qui peut être pratique dans des scénarios SaaS multi‑locataires. + +--- + +## Étape 3 – Charger un dictionnaire personnalisé (facultatif mais puissant) + +Si vous traitez de la terminologie médicale, de formules chimiques ou de noms de marques, un dictionnaire personnalisé peut **améliorer la précision de l'OCR** de façon spectaculaire. Le dictionnaire est un fichier texte simple avec un mot par ligne : + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Pourquoi cela fonctionne :** Le moteur OCR utilise le dictionnaire pour biaiser son modèle linguistique vers les mots qui vous importent, réduisant ainsi les erreurs de reconnaissance comme « hemo‑globin » → « hemoglobin ». + +Si vous n'avez pas de dictionnaire, ignorez simplement cette ligne — Aspose fonctionne bien avec ses packs linguistiques intégrés. + +--- + +## Étape 4 – Charger l'image que vous souhaitez traiter + +Nous allons maintenant réellement **charger l'image pour l'OCR**. Aspose prend en charge de nombreux formats, mais le PNG est particulièrement sans perte, ce qui en fait un choix sûr pour les documents numérisés. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Cas particulier :** Si votre image est très volumineuse (plus de 5 Mo), envisagez de la réduire d'abord pour accélérer le traitement. La classe `Image` propose une méthode `resize` que vous pouvez appeler avant la reconnaissance. + +--- + +## Étape 5 – Exécuter le processus OCR et récupérer le texte + +Une fois tout configuré, lancez le moteur OCR. La méthode `recognize` renvoie un objet `OcrResult` contenant la chaîne extraite, les scores de confiance, et même les boîtes englobantes si vous avez besoin d'informations de mise en page. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Lorsque vous exécuterez le programme, vous devriez voir quelque chose comme : + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Voilà — vous avez réussi à **reconnaître du texte à partir d'une image** et à **convertir l'image en texte** avec Aspose OCR. + +--- + +## Étape 6 – Pièges courants et comment les résoudre + +Même avec une bibliothèque solide, quelques obstacles peuvent survenir : + +| Symptom | Cause probable | Solution | +|---------|----------------|----------| +| Sortie vide | Licence non appliquée ou expirée | Vérifiez le chemin vers `Aspose.OCR.Java.lic` et assurez‑vous qu'il correspond à la version. | +| Caractères illisibles | Image à basse résolution ou fortement compressée | Utilisez une source à plus haute résolution ou pré‑traitez l'image (binarisation, redressement). | +| Mots spécifiques au domaine manquants | Aucun dictionnaire personnalisé | Ajoutez un fichier dictionnaire contenant les termes manquants, un par ligne. | +| Traitement lent sur de gros lots | Absence de multithreading | Créez un pool d'instances `OcrEngine` (elles sont thread‑safe) et traitez les images en parallèle. | + +--- + +## Étape 7 – Étendre l'exemple : enregistrer les résultats dans un fichier + +Si vous devez conserver le texte extrait pour une analyse ultérieure, écrivez‑le simplement dans un fichier : + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Vous disposez maintenant d'un pipeline réutilisable qui **charge l'image pour l'OCR**, extrait le contenu, et le stocke où vous le souhaitez. + +--- + +## Bonus : exécuter l'OCR sur plusieurs fichiers PNG dans un dossier + +Les projets réels doivent souvent traiter des dizaines de scans. Voici une boucle rapide qui récupère chaque `.png` d'un répertoire : + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +N'oubliez pas de réutiliser la même instance `ocrEngine` — créer une nouvelle instance pour chaque fichier ajoute une surcharge inutile. + +--- + +## Conclusion + +Vous disposez maintenant d’une solution complète, de bout en bout, qui **reconnaît du texte à partir d'une image** grâce à Aspose OCR pour Java. Du chargement de l'image, en passant éventuellement par l'enrichissement du moteur avec un dictionnaire personnalisé pour **améliorer la précision de l'OCR**, jusqu'à **exécuter l'OCR sur PNG** et sauvegarder le résultat, le code est prêt à être intégré dans n'importe quel projet Java. + +Et après ? Essayez d'alimenter le texte extrait dans un pipeline de traitement du langage naturel, ou expérimentez l'OCR sur des notes manuscrites (Aspose propose également un mode écriture manuscrite). Les possibilités sont infinies, et vous venez de franchir la première étape. + +Bon codage ! Si vous avez rencontré des difficultés, n'hésitez pas à laisser un commentaire ci‑dessous — résolvons les problèmes ensemble. + +![Capture d'écran du résultat OCR dans la console – reconnaître du texte à partir d'une image](/images/ocr_console_result.png "exemple de reconnaissance de texte à partir d'une image") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/german/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..c1dac37ca --- /dev/null +++ b/ocr/german/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Tabellen aus Bildern mit Aspose OCR Java extrahieren. Lernen Sie, ein + Bild für OCR zu laden, Tabellen aus PNG zu extrahieren, den Text der Bildtabelle + zu konvertieren und Belegbilder schnell zu erkennen. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: de +og_description: Tabellen aus Bildern mit Aspose OCR Java extrahieren. Dieser Leitfaden + zeigt, wie man ein Bild für OCR lädt, eine Tabelle aus einer PNG-Datei extrahiert, + den Tabellentext aus dem Bild konvertiert und ein Belegbild erkennt. +og_title: Tabellen aus Bild extrahieren – Aspose OCR Java‑Tutorial +tags: +- Aspose OCR +- Java +- Image Processing +title: Tabellen aus Bild extrahieren – Vollständiger Aspose OCR Java Leitfaden +url: /de/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tabellen aus Bild extrahieren – Vollständiger Aspose OCR Java Leitfaden + +Ever needed to **extract tables from image** files but kept hitting a wall? Maybe you have a scanned receipt or a photographed invoice and the tabular data is buried in a PNG. In this tutorial you’ll see exactly how to *load image for OCR*, turn that picture into structured rows, and **convert image table text** into something you can work with in Java. + +We’ll walk through every step, from licensing the Aspose OCR engine to printing each cell of the detected tables. By the end you’ll be able to **recognize receipt image** files and pull out their tables without breaking a sweat. + +## What You’ll Learn + +- How to initialize the Aspose OCR engine and apply your license. +- Why enabling table detection is the key to **extract tables from image**. +- The exact code needed to **load image for OCR** and run recognition on a PNG. +- Ways to handle multiple tables, low‑resolution scans, and common pitfalls. +- How to **convert image table text** into a printable (or database‑ready) format. + +No external documentation required—everything you need is right here. + +## Prerequisites + +- Java 17 or newer (the code uses the modern module system). +- An Aspose OCR for Java license file (`Aspose.OCR.Java.lic`). If you’re just experimenting, a temporary evaluation key works as well. +- A PNG image that contains a clear table (e.g., `receipt_with_table.png`). +- Maven or Gradle to pull the Aspose OCR dependency: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Keep the license file next to your `src/main/resources` folder so the path stays stable across environments. + +--- + +## Step 1 – Initialize the OCR engine to **extract tables from image** + +Before the engine can do anything, it needs to know you’re a legit user. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Why this matters:* Without a valid license the OCR engine runs in trial mode, which can truncate results or add unwanted watermarks—making table extraction unreliable. + +--- + +## Step 2 – Enable table detection (**extract table from png**) + +Table detection isn’t on by default; you have to flip the switch. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Enabling this flag tells Aspose OCR to treat groups of aligned text as rows and columns, which is exactly what you need when you want to **extract tables from image** files that are PNGs. + +--- + +## Step 3 – **Load image for OCR** and **recognize receipt image** + +Now we actually feed the picture into the engine. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +If you’re dealing with a **recognize receipt image** scenario, you might want to pre‑process the image (deskew, increase contrast). That’s outside the scope of this quick guide but worth exploring for noisy scans. + +--- + +## Step 4 – Process OCR result and **convert image table text** + +The `OcrResult` object may contain one or more tables. Let’s iterate over them and print each cell. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**What this does:** + +- Checks whether any tables were found; if not, it suggests a quality tweak. +- For each table, it prints rows with tab‑separated cells, which is a convenient format for CSV imports. +- The `Cell::getText` call is the heart of **convert image table text** – it pulls the raw OCR string from each cell. + +### Expected Output + +Assuming `receipt_with_table.png` contains a simple 3 × 2 table, you’ll see something like: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +If the image has multiple tables, each will be separated by a blank line. + +--- + +## Step 5 – Verify the extracted tables and handle edge cases + +### Common pitfalls + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **No tables detected** | Image too blurry or low contrast | Apply binarization (`ImageProcessing.applyThreshold`) before OCR | +| **Merged cells** | Table lines are faint, OCR treats them as one block | Increase `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Incorrect column order** | Skewed image causing mis‑alignment | Use `ImageProcessing.deskew` or rotate the image by 90° | + +### What to do next + +- **Export to CSV** – replace `System.out.println(line);` with a `FileWriter` to persist data. +- **Feed into a database** – map each row to a POJO and use JPA for persistence. +- **Combine with other APIs** – for receipt processing you might also extract totals using regular expressions on the OCR text. + +--- + +## Full Working Example (Copy‑Paste Ready) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Run this program, point it at a PNG that contains a clear table, and watch the console fill with neatly formatted rows. + +--- + +## Conclusion + +You now have a solid, end‑to‑end solution to **extract tables from image** files using Aspose OCR for Java. From licensing to **load image for OCR**, enabling **extract table from png**, and finally **convert image table text**, every step is covered with explanations and practical tips. + +Next, try chaining the output into a CSV file, push the rows into a relational database, or combine the OCR step with a receipt‑total‑extraction routine. The same pattern works for invoices, price lists, and any scanned document that hides data behind a grid. + +Got questions about handling low‑resolution receipts or scaling this to batch processing? Drop a comment below, and happy coding! + +![Extract tables from image example](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/german/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..044e29735 --- /dev/null +++ b/ocr/german/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-05-03 +description: Extrahiere Text aus einem Bild mit Python und Aspose OCR. Lerne ein Schritt‑für‑Schritt‑Python‑OCR‑Tutorial + mit gemischter Latein‑Kyrillisch‑Unterstützung. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: de +og_description: Extrahiere Text schnell aus Bildern mit Python. Dieser Leitfaden zeigt, + wie man Aspose OCR in Python für gemischte lateinisch‑kyrillische Bilder verwendet. +og_title: Text aus Bild mit Python extrahieren – Vollständige Aspose OCR‑Anleitung +tags: +- OCR +- Python +- Aspose +title: Text aus Bild mit Python extrahieren – Vollständiger Aspose OCR‑Leitfaden +url: /de/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Text aus Bild mit Python extrahieren – Vollständiger Aspose OCR Leitfaden + +Hatten Sie schon einmal das Bedürfnis, **extract text from image python** zu nutzen, waren sich aber nicht sicher, welche Bibliothek eine Mischung aus lateinischen und kyrillischen Zeichen verarbeiten kann? Sie sind nicht allein – Entwickler stoßen ständig auf dieses Problem, wenn sie mehrsprachige Screenshots OCR‑en. + +Die gute Nachricht: Aspose OCR für Python macht den gesamten Prozess fast schmerzfrei. In diesem Tutorial führen wir Sie durch die Installation des Pakets, das Anwenden Ihrer Lizenz, das Laden eines Bildes mit gemischter Sprache und schließlich das Auslesen des erkannten Textes in wenigen Code‑Zeilen. Am Ende haben Sie ein einsatzbereites Skript, das Sie in jedes Projekt einbinden können. + +## Was Sie lernen werden + +- Wie Sie **Aspose OCR Python** in einer virtuellen Umgebung einrichten. +- Warum das Hinweisgeben von Sprachen (wie Lateinisch und Kyrillisch) die Erkennung beschleunigt. +- Der genaue Code, der nötig ist, um **extract text from image python** mit einem einzigen Funktionsaufruf zu erledigen. +- Häufige Stolperfallen beim Umgang mit mehrsprachigem OCR und wie Sie diese vermeiden. + +### Voraussetzungen + +- Python 3.8 oder neuer, auf Ihrem Rechner installiert. +- Eine Aspose OCR‑Lizenzdatei (`Aspose.OCR.Java.lic`). Die kostenlose Testversion funktioniert für Tests, aber eine lizenzierte Datei entfernt Wasserzeichen. +- Ein PNG/JPEG‑Bild, das sowohl lateinische als auch kyrillische Zeichen enthält (wir nennen es `mixed_latin_cyrillic.png`). + +Wenn Sie diese Punkte abgehakt haben, können Sie loslegen – es werden keine zusätzlichen Frameworks oder schweren Abhängigkeiten benötigt. + +--- + +## Schritt 1 – Text aus Bild mit Python extrahieren: Aspose OCR installieren + +Zuerst: Holen Sie sich die Bibliothek von PyPI und stellen Sie sicher, dass Ihre Umgebung die Lizenzdatei finden kann. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro Tipp:** Wenn Sie einen Berechtigungsfehler erhalten, fügen Sie `--user` zum `pip install`‑Befehl hinzu oder führen Sie das Terminal als Administrator aus. + +Jetzt, wo das Paket auf Ihrem System ist, importieren wir es und verweisen die Engine auf unsere Lizenz. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Warum benötigen wir zu diesem Zeitpunkt eine Lizenz? Ohne Lizenz läuft die Engine im **Evaluationsmodus**, der die Anzahl der Seiten begrenzt und ein Wasserzeichen zum Ergebnis hinzufügt. Das Vorab‑Setzen der Lizenz stellt sicher, dass der spätere `recognize`‑Aufruf sauberen Text zurückgibt. + +## Schritt 2 – Laden Sie Ihr Bild mit gemischtem Latein‑Kyrillisch‑Inhalt + +Als Nächstes bringen wir das Bild in den Speicher. Aspose OCR arbeitet mit seiner eigenen `Image`‑Klasse, die das zugrunde liegende Dateiformat abstrahiert. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Falls Sie sich fragen, ob andere Formate funktionieren – ja, JPEG, BMP, TIFF und sogar PDF werden unterstützt. Ändern Sie einfach die Dateierweiterung, und die Methode `from_file` kümmert sich um den Rest. + +## Schritt 3 – Sprachenhinweise für schnellere Erkennung (optional aber hilfreich) + +Wenn Sie die im Bild vorhandenen Sprachen kennen, können Sie der Engine einen Hinweis geben. Das ist nicht zwingend erforderlich, reduziert jedoch **die Verarbeitungszeit erheblich** und verbessert die Genauigkeit beim mehrsprachigen OCR. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +Die Hinweis‑Liste akzeptiert jede von Aspose OCR unterstützte Sprache (z. B. `"Arabic"`, `"Japanese"`). Wenn Sie diesen Schritt überspringen, versucht die Engine jede integrierte Sprache, was bei großen Stapeln langsamer sein kann. + +## Schritt 4 – OCR‑Engine ausführen und Text extrahieren + +Jetzt kommt der entscheidende Moment: Die Zeichen tatsächlich erkennen. Die Methode `recognize` liefert ein `OcrResult`‑Objekt, das den Klartext, Konfidenzwerte und sogar Begrenzungsrahmen enthält, falls Sie diese später benötigen. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Warum das funktioniert:** Unter der Haube kombiniert Aspose OCR einen neuronalen Textdetektor mit sprachspezifischen Klassifikatoren. Indem Sie ein `Image`‑Objekt übergeben, umgehen Sie jegliche Notwendigkeit für manuelle Vorverarbeitung wie Binarisierung. + +## Schritt 5 – Extrahierten Text anzeigen + +Zum Schluss geben wir das Ergebnis in der Konsole aus. In einer echten Anwendung könnten Sie es in eine Datei schreiben, in eine Datenbank einspielen oder an eine Übersetzungs‑API weiterleiten. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Wenn Sie das Skript ausführen, sollten Sie etwa Folgendes sehen: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Diese Ausgabe bestätigt, dass wir erfolgreich **extract text from image python** durchgeführt haben und sowohl lateinische als auch kyrillische Zeichen in einem Durchlauf verarbeitet wurden. + +## Vollständiges funktionierendes Beispiel + +Unten finden Sie das komplette Skript, das Sie in eine Datei namens `extract_ocr.py` kopieren können. Ersetzen Sie lediglich die Platzhalter‑Pfade durch Ihre tatsächlichen Verzeichnisse. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Speichern Sie die Datei, aktivieren Sie Ihre virtuelle Umgebung und führen Sie aus: + +```bash +python extract_ocr.py +``` + +Sie sollten den erkannten Text ausgegeben sehen, was bestätigt, dass das Skript End‑zu‑End funktioniert. + +## Häufig gestellte Fragen & Sonderfälle + +**Was ist, wenn das Bild unscharf ist?** +Aspose OCR enthält integrierte Entzerrungs‑ und Rauschunterdrückungsfunktionen, aber bei stark degradierten Fotos möchten Sie vielleicht eine Vorverarbeitung mit OpenCV durchführen (z. B. einen Gauß‑Weichzeichner und Schwellenwert anwenden). Die `Image`‑Klasse kann auch ein NumPy‑Array akzeptieren, sodass Sie benutzerdefinierte Filter vor dem Aufruf von `recognize` anketten können. + +**Kann ich einen ganzen Ordner mit Bildern verarbeiten?** +Absolut. Verpacken Sie die Logik in einer `for`‑Schleife, ändern Sie `from_file`, um jede Datei zu lesen, und speichern Sie die Ergebnisse in einem Dictionary. Denken Sie daran, API‑Rate‑Limits zu beachten, wenn Sie die Cloud‑Version nutzen. + +**Brauche ich für jede Sprache eine separate Lizenz?** +Nein, eine einzige Aspose OCR‑Lizenz deckt alle unterstützten Sprachen ab. Die `language_hints`‑Liste ist lediglich ein Performance‑Hinweis. + +**Wie sieht es mit PDF‑Eingaben aus?** +Ersetzen Sie `Image.from_file` durch `ocr.Image.from_file("document.pdf")`. Die OCR‑Engine rastert jede Seite automatisch und gibt den zusammengefügten Text zurück. + +## Fazit + +Wir haben gerade einen knappen, produktionsreifen Weg gezeigt, um **extract text from image python** mit Aspose OCR zu nutzen. Die Schritte – Installation, Lizenz, Laden, Sprachenhinweise, Erkennen und Anzeigen – decken alles ab, was Sie benötigen, um zuverlässige Ergebnisse für gemischten Latein‑Kyrillisch‑Inhalt zu erhalten. + +Ab hier können Sie weiterführende Themen wie **image to text conversion** für Batch‑Verarbeitung erkunden, das Ergebnis in ein **Python OCR tutorial** für Natural‑Language‑Processing integrieren oder mit anderen Sprach‑Hints für mehrsprachige Dokumente experimentieren. Der Himmel ist die Grenze, und der Code liegt bereits in Ihren Händen. + +Haben Sie einen anderen Anwendungsfall oder ein Problem entdeckt? Hinterlassen Sie einen Kommentar, teilen Sie Ihre Erfahrung, und lassen Sie uns die Diskussion am Laufen halten. Viel Spaß beim Coden! + +![Beispiel für Textauszug aus Bild mit Python](/images/extract-text-from-image-python.png "Screenshot zeigt OCR‑Ausgabe – Text aus Bild mit Python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/german/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..d8a34b992 --- /dev/null +++ b/ocr/german/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Extrahiere Text aus einem Bild sofort mit Aspose OCR. Lerne, einen Interessensbereich + zu definieren, das Bild für OCR zu laden und Text aus einer Rechnung in nur wenigen + Minuten zu extrahieren. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: de +og_description: Extrahieren Sie Text aus einem Bild mit Aspose OCR. Dieser Leitfaden + zeigt, wie man einen Interessensbereich definiert, das Bild für OCR lädt und Text + aus einer Rechnung effizient extrahiert. +og_title: Text aus Bild mit Aspose OCR extrahieren – komplettes Tutorial +tags: +- ocr +- python +- image-processing +title: Text aus Bild mit Aspose OCR extrahieren – Schritt‑für‑Schritt‑Anleitung +url: /de/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Text aus Bild mit Aspose OCR extrahieren – Schritt‑für‑Schritt‑Anleitung + +Müssen Sie **Text aus Bild** schnell extrahieren? Sie sind nicht allein – Entwickler kämpfen ständig mit verrauschten Scans, Quittungen und Rechnungen. In diesem Tutorial führen wir Sie durch eine vollständige Lösung, die nicht nur zeigt, wie man *Text aus Bild* extrahiert, sondern auch demonstriert, wie man **Region of Interest definiert**, **Bild für OCR lädt** und die genaue Zeile aus einer Rechnung herauszieht. + +Wir behandeln alles, von der Installation der Aspose OCR-Bibliothek bis hin zum Umgang mit Sonderfällen wie gedrehten Seiten. Am Ende haben Sie ein ausführbares Skript, das den gewünschten Text in einem einzigen Aufruf extrahiert – ohne manuelles Zuschneiden. + +## Was Sie lernen werden + +- Wie man **Bild für OCR lädt** mit der Python‑API von Aspose. +- Der beste Weg, **Region of Interest** (ROI) zu **definieren**, sodass Sie nur den relevanten Teil des Bildes verarbeiten. +- Wie man **Text aus Rechnung** extrahiert, ohne die gesamte Seite zu übernehmen. +- Tipps, um **Bild mit OCR zu verarbeiten** effizient und häufige Fallstricke zu vermeiden. + +**Voraussetzungen** – eine aktuelle Python 3.9+ Umgebung, eine gültige Aspose OCR-Lizenzdatei und ein Bild (z. B. ein Rechnungs‑PNG). Keine weiteren externen Werkzeuge sind erforderlich. + +--- + +## Schritt 1 – OCR‑Engine initialisieren (Grundkonfiguration) + +Bevor Sie **Bild mit OCR verarbeiten** können, benötigen Sie eine Engine‑Instanz, die Ihre Lizenz enthält. Dieser Schritt ist entscheidend, da eine nicht lizenzierte Engine nur ein eingeschränktes Ergebnis liefert. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Warum das wichtig ist*: Das Objekt `OcrEngine` ist das Herz der Bibliothek; es verwaltet Sprachmodelle, Bildvorverarbeitung und Lizenzierung. Das Vorab‑Setzen der Lizenz stellt sicher, dass Sie volle Genauigkeit und keine Wasserzeichen erhalten. + +--- + +## Schritt 2 – Bild für OCR laden + +Jetzt, wo die Engine bereit ist, müssen wir **Bild für OCR laden**. Aspose unterstützt viele Formate (PNG, JPEG, TIFF), aber die Verwendung von `Image.from_file` garantiert, dass das Bild korrekt dekodiert wird. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro‑Tipp**: Halten Sie Ihre Bilddateien unter 5 MB für die schnellste Verarbeitung. Größere Dateien können vor dem OCR mit `image.resize(width, height)` verkleinert werden. + +--- + +## Schritt 3 – Region of Interest (ROI) definieren + +Die meisten Rechnungen enthalten viel irrelevanten Text – Adressblöcke, Fußzeilen usw. Durch **Region of Interest definieren** sagen wir der Engine, nur dort zu suchen, wo Betrag oder Datum stehen, was Geschwindigkeit und Genauigkeit verbessert. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Wie es funktioniert*: Die Klasse `Rectangle` schneidet das Bild virtuell zu; die OCR‑Engine sieht niemals Pixel außerhalb des Rechtecks, sodass Rauschen außerhalb der ROI ignoriert wird. + +--- + +## Schritt 4 – Text im ROI erkennen + +Mit der Engine, dem Bild und der ROI bereit, **extrahieren wir schließlich Text aus Bild**. Die Methode `recognize` liefert ein `OcrResult`‑Objekt, das die erkannte Zeichenkette und Konfidenzwerte enthält. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Erwartete Ausgabe** (Beispiel für eine typische Gesamtsumme‑Zeile einer Rechnung): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Wenn die ROI korrekt positioniert ist, sehen Sie nur die benötigte Zeile – nichts weiter. + +--- + +## Schritt 5 – Vollständiges funktionierendes Beispiel (Copy‑Paste‑bereit) + +Unten finden Sie das vollständige Skript, das alle vorherigen Schritte zusammenführt. Speichern Sie es als `extract_invoice_roi.py` und führen Sie `python extract_invoice_roi.py` aus. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Führen Sie das Skript aus und Sie sollten die Zielzeile in der Konsole ausgegeben sehen. Wenn Sie einen leeren String erhalten, überprüfen Sie die ROI‑Koordinaten erneut – manchmal führt ein paar Pixel Versatz dazu, dass der Text vollständig ausgeschlossen wird. + +--- + +## Schritt 6 – Häufige Varianten & Sonderfälle + +### a) Unterschiedliche Rechnungs‑Layouts +Rechnungen von verschiedenen Anbietern verschieben häufig das Feld für den Gesamtbetrag. Um **Bild mit OCR zu verarbeiten** über mehrere Layouts hinweg, sollten Sie folgendes in Betracht ziehen: + +- **Mehrere ROIs**: Führen Sie die Engine nacheinander mit mehreren Rechtecken aus und wählen Sie das Ergebnis mit der höchsten Konfidenz. +- **Dynamische ROI‑Erkennung**: Verwenden Sie eine leichte Bildverarbeitungsbibliothek (z. B. OpenCV), um zuerst das „Total“-Label zu finden und dann die ROI relativ dazu zu berechnen. + +### b) Gedrehte oder schiefe Bilder +Wenn der Scan geneigt ist, rufen Sie `image.rotate(angle)` vor der Erkennung auf: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR bietet auch Auto‑Deskew, aber manuelle Rotation gibt Ihnen mehr Kontrolle. + +### c) Nicht‑lateinische Zeichen +Das Standard‑Sprachmodell ist Englisch. Um **Text aus Rechnung** in einer anderen Sprache zu extrahieren, setzen Sie die Sprache vor der Erkennung: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Große PDFs +Bei mehrseitigen PDFs extrahieren Sie zunächst jede Seite als Bild (Aspose PDF → Image) und wenden dann die gleiche ROI‑Logik pro Seite an. + +--- + +## Schritt 7 – Leistungstipps & Pro‑Tipps + +- **Engine cachen**: Das wiederholte Erstellen von `OcrEngine` in einer Schleife verlangsamt Sie. Instanziieren Sie sie einmal und verwenden Sie sie wieder. +- **Batch‑Verarbeitung**: Wenn Sie Dutzende von Rechnungen haben, wickeln Sie den OCR‑Aufruf in einen `ThreadPoolExecutor` ein, um I/O‑intensive Arbeit zu parallelisieren. +- **Konfidenz‑Check**: `ocr_result.confidence` liefert einen Float zwischen 0 und 1. Verwerfen Sie Ergebnisse unter 0,85 und greifen Sie auf eine größere ROI oder manuelle Überprüfung zurück. + +> **Achtung**: Eine zu kleine ROI kann Zeichen abschneiden, was zu fehlerhafter Ausgabe führt. Testen Sie immer mit einigen Beispielrechnungen, bevor Sie skalieren. + +--- + +## Fazit + +Sie haben jetzt eine solide, produktionsreife Methode, um **Text aus Bild** mit Aspose OCR zu **extrahieren**, inklusive einer Möglichkeit, **Region of Interest zu definieren**, **Bild für OCR zu laden** und zuverlässig **Text aus Rechnungs‑Feldern** zu **extrahieren**. Durch die Beschränkung des OCR auf eine enge ROI erhöhen Sie sowohl Geschwindigkeit als auch Genauigkeit – perfekt für die Stapelverarbeitung von tausenden Quittungen. + +Bereit für den nächsten Schritt? Versuchen Sie, dieses Skript in eine Flask‑API zu integrieren, sodass Ihre Web‑App eine Rechnung hochladen und sofort den Gesamtbetrag zurückgeben kann. Oder experimentieren Sie mit mehreren ROIs, um Datum, Rechnungsnummer und Lieferantennamen auf einmal zu extrahieren. Die Möglichkeiten sind endlos, und mit den hier behandelten Grundlagen sind Sie gut gerüstet, jede OCR‑Herausforderung zu meistern. + +Viel Spaß beim Coden, und möge Ihr extrahierter Text immer sauber sein! + +![Workflow-Diagramm, das zeigt, wie man Text aus Bild mit Aspose OCR extrahiert](workflow.png){: .center-image alt="Workflow-Diagramm, das zeigt, wie man Text aus Bild mit Aspose OCR extrahiert"} + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/german/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..d4b22a171 --- /dev/null +++ b/ocr/german/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-05-03 +description: Extrahiere Text aus einem Bild mit Pythons asynchroner OCR. Erfahre, + wie man TIF in Text umwandelt, ein Bild für die OCR lädt und Text aus dem Bild effizient + erkennt. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: de +og_description: Extrahiere Text aus einem Bild mit Python Async-OCR. Dieser Leitfaden + zeigt, wie man TIF in Text umwandelt, ein Bild für OCR lädt und Text aus dem Bild + erkennt. +og_title: Text aus Bild mit Python Async OCR extrahieren – Vollständiger Leitfaden +tags: +- OCR +- Python +- AsyncIO +title: Text aus Bild mit Python Async OCR extrahieren – Vollständiger Leitfaden +url: /de/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Text aus Bild mit Python Async OCR extrahieren – Vollständige Anleitung + +Müssen Sie **Text aus Bild** schnell extrahieren? Mit Pythons async OCR können Sie das in nur wenigen Codezeilen erledigen. Egal, ob Sie mit einem riesigen .tif‑Scan oder ein paar JPEGs arbeiten, zeigt Ihnen dieses Tutorial, wie Sie tif in Text umwandeln, Bild für OCR laden und schließlich Text aus Bild erkennen, ohne Ihre Ereignisschleife zu blockieren. + +Die Sache ist die—die meisten Entwickler greifen zu einer synchronen Bibliothek und starren dann auf eine eingefrorene UI, während die Engine Pixel verarbeitet. In diesem Leitfaden kehren wir das um, indem wir die asynchrone API von Aspose OCR Cloud verwenden, sodass Ihre Anwendung reaktionsfähig bleibt. Am Ende haben Sie ein ausführbares Skript, das Text aus jedem unterstützten Bildformat extrahiert, und Sie verstehen das Warum hinter jedem Schritt. + +## Was Sie lernen werden + +- Wie man das Aspose OCR Cloud SDK für Python einrichtet. +- Den genauen Code, der benötigt wird, um **Bild für OCR zu laden** und eine asynchrone Erkennungsaufgabe zu starten. +- Tipps zum Umgang mit großen .tif‑Dateien und Lizenzierungs‑Eigenheiten. +- Möglichkeiten, **Bildtext sicher zu extrahieren**, selbst wenn der Dienst Fehler zurückgibt. +- Ein komplettes, copy‑paste‑fertiges Beispiel, das Sie in Ihr eigenes Projekt einbinden können. + +> **Prerequisite**: Python 3.8+ und eine Aspose OCR Cloud Lizenzdatei (`Aspose.OCR.Java.lic`). Keine anderen Drittanbieter‑Pakete sind erforderlich. + +![Ablauf zur Textextraktion aus Bild](workflow.png){: .align-center alt="Ablauf zur Textextraktion aus Bild"} + +## Text aus Bild extrahieren – Async OCR Übersicht + +Bevor wir in den Code eintauchen, lassen Sie uns den Ablauf erläutern. Wenn Sie `recognize_async` aufrufen, sendet das SDK das Bild an die Aspose‑Cloud, startet einen Hintergrundjob und gibt Ihnen ein `Task`‑Objekt zurück. Das Awaiten dieses Tasks liefert ein `OcrResult`, das die reine Textdarstellung des Bildes enthält. Da der Aufruf asynchron ist, können Sie mehrere Jobs parallel starten – ideal für die Stapelverarbeitung großer Archive gescannter Dokumente. + +### Warum Async verwenden? + +- **Non‑blocking I/O** – Ihre Ereignisschleife bleibt frei, um andere Aufgaben zu erledigen (z. B. HTTP‑Anfragen zu bedienen). +- **Scalability** – Starten Sie Dutzende von Erkennungen gleichzeitig; die Cloud übernimmt die schwere Arbeit. +- **Responsiveness** – UI‑Anwendungen frieren nicht ein, während sie auf die OCR‑Engine warten. + +Jetzt, da das „Warum“ klar ist, sehen wir uns das **Wie** an. + +## TIF in Text umwandeln mit Aspose OCR + +Ein häufiges Stolperstein ist die Annahme, dass jede OCR‑Bibliothek .tif nativ unterstützt. Aspose tut es, aber Sie müssen ihm trotzdem ein `Image`‑Objekt übergeben. Das SDK abstrahiert das Format, sodass Sie einfach den Dateipfad angeben können. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Erklärung der wichtigsten Zeilen** + +- `ocr_engine.license = ...` – Ohne eine gültige Lizenz gibt die Cloud einen 403‑Fehler zurück. Stellen Sie sicher, dass die `.lic`‑Datei aus dem Arbeitsverzeichnis Ihres Skripts erreichbar ist. +- `ocr.Image.from_file(image_path)` – Dieser Schritt **lädt Bild für OCR**; das SDK erkennt das Format automatisch, sodass Sie das .tif nicht vorher konvertieren müssen. +- `recognize_async` – Gibt eine coroutine‑kompatible Aufgabe zurück. Sie könnten mehrere davon in einem `gather`‑Aufruf starten, wenn Sie ein Batch haben. + +> **Pro‑Tipp**: Wenn Sie TIFFs in Gigabyte‑Größe verarbeiten, sollten Sie sie zuerst in Seiten aufteilen. Asposes `Image.from_file` kann einen Seitenindex akzeptieren, was den Speicherverbrauch reduziert. + +## Text aus Bild asynchron erkennen + +Sehen wir uns an, wie Sie die Funktion aus einem typischen Skript aufrufen würden. Der Einstiegspunkt `asyncio.run` ist der einfachste Weg, die Coroutine zu starten, wenn Sie sich nicht bereits in einer Ereignisschleife befinden (z. B. ein reines CLI‑Tool). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Was zu erwarten ist** + +Das Ausführen des Skripts gegen einen klaren, hochauflösenden Scan liefert typischerweise einen mehrzeiligen String, der der gedruckten Seite entspricht. Ist das Bild verrauscht, versucht Aspose dennoch, es zu bereinigen, aber Sie könnten unleserliche Zeichen sehen. In diesem Fall sollten Sie eine Vorverarbeitung mit OpenCV (z. B. Schwellenwertbildung) in Betracht ziehen, bevor Sie die Datei an die OCR‑Engine übergeben. + +### Fehler elegant behandeln + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Das Abfangen von `OcrException` stellt sicher, dass Ihr Programm nicht abstürzt, wenn die Cloud einen Fehler zurückgibt – ein Problem, das Neulinge häufig überrascht, wenn sie Netzwerkprobleme vergessen. + +## Bild für OCR laden – Praktische Tipps + +1. **File Path vs. Bytes** – Das SDK akzeptiert einen Dateipfad, Sie können aber auch aus einem `bytes`‑Objekt laden, wenn das Bild im Speicher liegt (`ocr.Image.from_bytes`). Das ist praktisch, wenn Sie die Datei bereits von S3 oder einer Datenbank abgerufen haben. +2. **Supported Formats** – Neben .tif verarbeitet Aspose PDF, BMP, GIF und sogar mehrseitige TIFFs. Verwenden Sie `Image.from_file("doc.pdf")`, um PDFs direkt zu OCR‑en. +3. **Performance** – Für Batch‑Jobs sollten Sie dieselbe `OcrEngine`‑Instanz wiederverwenden; das Erstellen einer neuen Engine für jede Datei verursacht unnötigen Overhead. + +## Vollständiges funktionierendes Beispiel (Alle Schritte in einem Skript) + +Unten finden Sie das vollständige, sofort ausführbare Skript, das Lizenzierung, Fehlerbehandlung und einen einfachen Befehlszeilen‑Argument‑Parser integriert. Kopieren Sie es, passen Sie den Lizenzpfad an, und Sie sind startklar. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Erwartete Ausgabe** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Enthält das Bild einen einfachen Absatz, zeigt die Konsole dieselben Zeilen an und bewahrt Zeilenumbrüche. Bei mehrseitigen TIFFs fügt das SDK die Seiten in der richtigen Reihenfolge zusammen. + +## Häufig gestellte Fragen (FAQ) + +**Q: Funktioniert das mit anderen async‑Frameworks wie FastAPI?** +A: Absolut. Ersetzen Sie den `asyncio.run`‑Aufruf durch `await async_ocr(path)` in Ihrem Endpunkt, und FastAPI kümmert sich um die Ereignisschleife. + +**Q: Was, wenn ich Hunderte von Dateien gleichzeitig verarbeiten muss?** +A: Verwenden Sie `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Kann ich Text aus einem passwortgeschützten PDF extrahieren?** +A: Nicht direkt. Sie müssen das PDF zuerst entsperren (z. B. mit `pikepdf`) und dann die entschlüsselten Bytes an `ocr.Image.from_bytes` übergeben. + +**Q: Wie gehe ich mit anderen Sprachen als Englisch um?** +A: Setzen Sie die Sprache vor der Erkennung: + +```python +engine.language = "spa" # Spanish ISO code +``` + +## Fazit + +Sie haben jetzt eine robuste **Text‑aus‑Bild**‑Lösung, die Pythons `asyncio` und die asynchrone API von Aspose OCR Cloud nutzt. Indem Sie die obigen Schritte befolgen, können Sie **tif in Text umwandeln**, **Bild für OCR laden** und **Text aus Bild erkennen** in einer nicht‑blockierenden Weise – ideal sowohl für Befehlszeilen‑Tools als auch für stark frequentierte Web‑Services. + +Was kommt als Nächstes? Versuchen Sie, einen Ordner mit Scans zu stapeln, experimentieren Sie mit Spracheinstellungen oder leiten Sie die OCR‑Ausgabe in eine nachgelagerte NLP‑Pipeline weiter. Der Himmel ist + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/german/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..0af662f13 --- /dev/null +++ b/ocr/german/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Extrahiere Text OCR schnell mit Aspose OCR. Erfahre, wie du die OCR‑Genauigkeit + verbesserst, Bild‑OCR lädst, Bild‑OCR vorverarbeitest und einen OCR‑Scan in Python + ausführst. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: de +og_description: Extrahiere Text per OCR schnell mit Aspose OCR. Lerne, wie du die + OCR‑Genauigkeit verbesserst, Bild‑OCR lädst, Bild‑OCR vorverarbeitest und einen + OCR‑Scan in Python durchführst. +og_title: Textextraktion OCR – Vollständiger Leitfaden mit Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Text extrahieren OCR – Vollständiger Leitfaden mit Aspose OCR +url: /de/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Vollständige Anleitung mit Aspose OCR + +Haben Sie jemals **extract text ocr** aus einem wackeligen Scan extrahieren müssen, waren sich aber nicht sicher, warum die Ergebnisse wie Kauderwelsch aussahen? Sie sind nicht allein – viele Entwickler stoßen auf dieses Problem, wenn das Bild schräg, verrauscht oder einfach nur kontrastarm ist. Die gute Nachricht ist, dass ein paar Konfigurationsanpassungen ein unordentliches Bild in sauberen, durchsuchbaren Text verwandeln können. In diesem Tutorial führen wir Sie durch ein vollständiges End‑to‑End‑Beispiel, das zeigt, wie man **improve ocr accuracy** verbessert, **load image ocr** lädt, **preprocess image ocr** durchführt und schließlich einen OCR‑Scan mit Aspose OCR für Python ausführt. + +Am Ende dieses Leitfadens haben Sie ein ausführbares Skript, das ein gescanntes JPEG einliest, es automatisch bereinigt und den extrahierten Text in der Konsole ausgibt. Keine mysteriösen „Siehe die Dokumentation“-Links – alles, was Sie brauchen, finden Sie hier. + +## Was Sie benötigen + +- **Python 3.8+** (die neueste stabile Version funktioniert am besten) +- **Aspose.OCR for Python via .NET** – Installation mit `pip install aspose-ocr` +- Eine **Lizenzdatei** (`Aspose.OCR.Java.lic`), falls Sie eine erworben haben (die kostenlose Testversion funktioniert zum Testen) +- Ein Bild, das Sie verarbeiten möchten (z. B. `skewed_scanned_doc.jpg`) + +Das war's. Wenn Sie diese Komponenten haben, können wir direkt zum Code springen. + +## Schritt 1: Extract Text OCR mit Aspose OCR Engine + +Das Erste, was Sie tun, ist die OCR‑Engine zu starten und Ihre Lizenz anzuwenden. Stellen Sie sich die Engine als das Gehirn vor, das das Bild liest; ohne Lizenz wird sie sich weigern, über ein winziges Demo‑Limit hinaus zu arbeiten. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Warum das wichtig ist:** Die Lizenz im Voraus anzuwenden verhindert ein stilles Versagen später. Wenn Sie diesen Schritt überspringen, fällt die Engine in einen eingeschränkten Modus zurück und Sie erhalten nur eine Handvoll Zeichen – definitiv nicht das, was Sie erwarten, wenn Sie **extract text ocr** versuchen. + +## Schritt 2: Improve OCR Accuracy mit Pre‑processing + +Scans, die schief oder körnig sind, sind das Ärgernis jedes OCR‑Projekts. Aspose ermöglicht das Umschalten einer Handvoll nützlicher Einstellungen, die automatisch deskew, denoise und den Kontrast erhöhen. Das ist das Herzstück von **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – dreht das Bild wieder horizontal, was entscheidend ist, wenn das Originaldokument nicht perfekt flach war. +- **remove_noise** – entfernt zufällige Punkte, die häufig in niedrig aufgelösten JPEGs auftreten. +- **enhance_contrast** – macht dunklen Text dunkler und hellen Hintergrund heller, wodurch die Engine Zeichen besser unterscheiden kann. +- **binarization = "Otsu"** – ein klassischer Algorithmus, der den besten Schwellenwert für die Schwarz‑Weiß‑Umwandlung bestimmt. + +> **Pro‑Tipp:** Wenn Sie wissen, dass Ihre Quellbilder bereits sauber sind, können Sie diese Optionen deaktivieren, um die Verarbeitung zu beschleunigen. Für die meisten realen Scans ist es jedoch die sicherste Wahl, sie aktiviert zu lassen. + +## Schritt 3: Load Image OCR für das Scannen + +Jetzt, wo die Engine bereit ist, müssen wir **load image ocr**. Asposes Methode `Image.from_file` unterstützt JPEG, PNG, TIFF und einige weitere Formate. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Pfad auf Ihrem Rechner. Wenn Sie mit einem In‑Memory‑Byte‑Stream arbeiten (z. B. von einem Web‑Upload), können Sie auch `ocr.Image.from_bytes(byte_data)` verwenden – dieselbe Engine wird das verarbeiten. + +> **Sonderfall:** Große TIFF‑Dateien können viel Speicher benötigen. Wenn Sie einen `MemoryError` erhalten, sollten Sie das Bild zuerst herunterrechnen oder `ocr_engine.config.max_image_size` verwenden, um die Abmessungen zu begrenzen. + +## Schritt 4: Run OCR Scan und Ergebnisse erhalten + +Nachdem das Bild geladen und die Vorverarbeitung aktiviert wurde, ist der letzte Schritt, **run OCR scan** auszuführen. Dieser Aufruf erledigt die gesamte schwere Arbeit im Hintergrund. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Das Objekt `ocr_result` enthält mehrere nützliche Eigenschaften: + +- `ocr_result.text` – der reine Textstring, der Sie interessiert. +- `ocr_result.confidence` – ein numerischer Wert (0‑100), der die Gesamtzuverlässigkeit angibt. +- `ocr_result.words` – eine Liste von Wortobjekten mit Begrenzungsrahmen‑Koordinaten, praktisch zum Hervorheben. + +## Schritt 5: Print the Extracted Text + +Abschließend geben wir das Ergebnis aus. In einer echten Anwendung könnten Sie den Text in eine Datei, eine Datenbank schreiben oder in einen Suchindex einspeisen. Für dieses Tutorial reicht ein einfaches `print` aus. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Erwartete Ausgabe** (Beispiel für eine einfache Rechnung): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Wenn die Confidence niedrig ist (< 80), sollten Sie die Vorverarbeitungsoptionen erneut prüfen oder eine andere Binarisierungsmethode wie `"Sauvola"` ausprobieren. + +## Bonus: Visualisierung der Pre‑processing‑Pipeline (Optional) + +Manchmal hilft es, zu sehen, was die Engine mit dem Bild gemacht hat. Aspose ermöglicht den Export des verarbeiteten Bitmaps: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Sie könnten das Bild dann in der Dokumentation einbetten: + +Diagramm des extract text ocr Workflows, das die Vorverarbeitungsschritte zeigt + +> **Warum Sie das tun würden:** Wenn das OCR‑Ergebnis seltsam aussieht, zeigt ein kurzer Blick auf `processed_debug.png` oft, ob das Bild noch zu dunkel, noch schief oder noch Rauschen enthält. + +## Häufige Fragen & Stolperfallen + +- **Was ist, wenn mein Dokument mehrere Seiten hat?** + Aspose OCR arbeitet seitenweise. Durchlaufen Sie jedes Seitenbild und verketten Sie `ocr_result.text`. + +- **Kann ich Sprachen außer Englisch erkennen?** + Ja – setzen Sie `ocr_engine.config.language = "fra"` (oder einen anderen ISO‑639‑2‑Code), bevor Sie `recognize` aufrufen. + +- **Gibt es ein Limit für die Bildgröße?** + Die Engine begrenzt standardmäßig auf 10 MP. Erhöhen Sie `ocr_engine.config.max_image_size`, wenn Sie größere Scans benötigen, achten Sie jedoch auf den Speicherverbrauch. + +- **Brauche ich eine separate OCR‑Engine für PDFs?** + Für PDFs können Sie entweder jede Seite zuerst als Bild extrahieren (mit Aspose.PDF) oder die integrierte PDF‑OCR‑Funktion nutzen. Die hier gezeigten Schritte bleiben gleich, sobald Sie ein Bild haben. + +## Zusammenfassung + +Wir haben behandelt, wie man **extract text ocr** mit Aspose OCR für Python verwendet, von der Lizenzierung der Engine über das Anpassen von Einstellungen, die **improve ocr accuracy** erhöhen, das Laden der Quelldatei bis hin zum endgültigen **run OCR scan**, um sauberen Text zu extrahieren. Das vollständige Skript ist bereit zum Kopieren‑Einfügen, und Sie verstehen jetzt, warum jedes Konfigurationsflag wichtig ist. + +## Was kommt als Nächstes? + +- **Experimentieren Sie mit verschiedenen Binarisierungsmethoden** (`"Sauvola"`, `"Bradley"`). Einige Schriftarten reagieren besser auf adaptive Schwellenwerte. +- **Integrieren Sie eine Suchmaschine** (z. B. Elasticsearch) und nutzen Sie den Confidence‑Score, um Ergebnisse zu ranken. +- **Kombinieren Sie mit OCR‑Post‑Processing‑Bibliotheken** wie `pyspellchecker`, um häufige Fehlinterpretationen zu bereinigen. +- **Erforschen Sie die Batch‑Verarbeitung** für Hunderte von Scans – verpacken Sie die Schritte in einer Funktion und übergeben Sie ihr einen Ordner mit Bildern. + +Passen Sie den Code gerne an, fügen Sie eigenes Logging hinzu oder binden Sie ihn in eine größere Dokumenten‑Management‑Pipeline ein. Wenn Sie auf Probleme stoßen, hinterlassen Sie unten einen Kommentar – happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/german/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..94efebac4 --- /dev/null +++ b/ocr/german/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Wie man PDFs mit Aspose OCR Java OCR verarbeitet. Erfahren Sie, wie Sie + OCR auf PDFs ausführen, Text in PDFs erkennen, PDFs in JSON konvertieren und PDFs + für OCR mit nur wenigen Codezeilen laden. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: de +og_description: Wie man PDF mit Aspose OCR Java OCR verarbeitet. Dieser Leitfaden + zeigt, wie man OCR auf PDF ausführt, Text in PDF erkennt, PDF in JSON konvertiert + und PDF schnell für OCR lädt. +og_title: Wie man PDFs mit Aspose OCR verarbeitet – Vollständiges Programmier‑Tutorial +tags: +- Aspose OCR +- Java +- PDF processing +title: Wie man PDFs mit Aspose OCR OCRt – Vollständige Schritt‑für‑Schritt‑Anleitung +url: /de/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man PDF mit Aspose OCR OCR‑t – Vollständige Schritt‑für‑Schritt‑Anleitung + +Haben Sie sich jemals gefragt, **wie man PDF**‑Dateien OCR‑t, ohne sich mit Befehlszeilentools herumzuschlagen oder teure SaaS‑Lösungen zu bezahlen? Sie sind nicht allein. In vielen Projekten – Rechnungsautomatisierung, Archivierung gescannter Verträge oder Aufbau einer durchsuchbaren Wissensdatenbank – stößt man schnell auf die Notwendigkeit, Text aus PDFs schnell und zuverlässig zu extrahieren. + +Die gute Nachricht? Mit Aspose OCR für Java können Sie **OCR auf PDF ausführen**, Text‑PDF‑Seiten erkennen, **PDF in JSON konvertieren** und sogar **PDF für OCR laden** in nur wenigen Zeilen Code. In diesem Tutorial führen wir Sie durch den gesamten Workflow, erklären, warum jeder Schritt wichtig ist, und geben Ihnen ein sofort einsatzbereites Code‑Beispiel, das Sie in Ihr eigenes Projekt übernehmen können. + +## Was Sie lernen werden + +- Wie Sie die Aspose OCR‑Engine einrichten und Ihre Lizenz anwenden. +- Der genaue Weg, **PDF für OCR zu laden** und an den Erkenner zu übergeben. +- Wie Sie **Text‑PDF** über alle Seiten hinweg in einem Aufruf **erkennen**. +- Export des vollständigen OCR‑Ergebnisses in eine **JSON**‑Datei (ideal für nachgelagerte APIs) und einer einzelnen Seite nach **XML**. +- Tipps, Fallstricke und Varianten, die Sie bei mehrseitigen PDFs oder benutzerdefinierten Sprachpaketen benötigen könnten. + +> **Voraussetzungen** – Sie benötigen Java 8 oder neuer, eine gültige Aspose OCR für Java Lizenzdatei (`Aspose.OCR.Java.lic`) und das Aspose OCR‑JAR in Ihrem Klassenpfad. Keine weiteren externen Bibliotheken sind erforderlich. + +--- + +## Wie man PDF OCR‑t – Aspose OCR‑Engine initialisieren + +Das Erste, was Sie tun müssen, ist eine Instanz von `OcrEngine` zu erstellen und Ihre Lizenz zu laden. Dieser Schritt schaltet den vollen Funktionsumfang frei und entfernt das Evaluations‑Wasserzeichen. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Warum das wichtig ist:** +Ohne Lizenz läuft Aspose OCR im eingeschränkten „Trial“-Modus, der die Anzahl der Seiten begrenzt und ein Wasserzeichen zum Ergebnis hinzufügt. Das frühzeitige Anwenden der Lizenz stellt sicher, dass der Rest der Pipeline ohne unerwartete Einschränkungen funktioniert. + +--- + +## OCR auf PDF ausführen – Dokument laden und Text erkennen + +Jetzt **laden wir PDF für OCR**. Aspose OCR behandelt PDFs als speziellen `PdfDocument`‑Typ, der intern jede Seite als Bild extrahiert, bevor sie dem Erkenner zugeführt wird. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Was passiert im Hintergrund?** +`recognizeDocument` iteriert über jede Seite, rasterisiert sie mit optimaler DPI und führt dann die OCR‑Engine aus. Das Ergebnis ist ein `OcrPage`‑Array, wobei jedes Element den erkannten Text, Vertrauenswerte und Layout‑Informationen enthält. Dieser Ansatz ist weitaus zuverlässiger, als rohe PDF‑Bytes in eine generische OCR‑Bibliothek zu geben. + +--- + +## OCR‑Ergebnis in JSON konvertieren – Vollständigen Bericht exportieren + +Die meisten nachgelagerten Systeme bevorzugen JSON, weil es leicht in Java, JavaScript, Python oder sogar PowerShell zu deserialisieren ist. Aspose OCR liefert einen `JsonExport`‑Helper, der das gesamte `OcrPage[]`‑Array serialisiert. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Wann würden Sie das verwenden?** +Wenn Sie die OCR‑Ausgabe in einen Suchindex (Elasticsearch, Solr) oder eine Datenpipeline einspeisen müssen, bietet das JSON‑Format eine strukturierte Darstellung jeder Seite, Zeile und jedes Wortes, komplett mit Vertrauenswerten. + +--- + +## Erste Seite nach XML exportieren – Einzelne Seite speichern + +Manchmal interessiert nur eine einzelne Seite – vielleicht enthält die erste Seite einen Titel oder eine Rechnungsnummer. Die Klasse `XmlExport` ermöglicht es, ein einzelnes `OcrPage` in eine übersichtliche XML‑Datei zu schreiben. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Warum XML?** +Legacy‑Systeme oder bestimmte Unternehmens‑Workflows setzen noch immer auf XML‑Schemata für die Datenaufnahme. Die erzeugte Datei folgt Asposes eigenem Schema, wodurch die Validierung unkompliziert ist. + +--- + +## Ausgabe überprüfen – JSON‑ und XML‑Dateien prüfen + +Nach Abschluss des Programms sollten Sie zwei Dateien im Verzeichnis `YOUR_DIRECTORY` sehen: + +- `report_ocr.json` – Enthält ein Array von Seiten‑Objekten. Ein kurzer Ausschnitt könnte so aussehen: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Enthält dieselben Informationen für Seite 1, eingeschlossen in ``‑Tags. + +Öffnen Sie die Dateien in einem beliebigen Editor; Sie sehen die rohen OCR‑Zeichenketten, Vertrauenswerte und Bounding‑Box‑Koordinaten. Wenn das JSON leer erscheint, prüfen Sie, ob das Eingabe‑PDF tatsächlich rasterisierten Inhalt (gescannte Bilder) enthält und nicht auswählbaren Text – Aspose OCR funktioniert nur auf Bildern. + +--- + +## Häufige Fallstricke & Profi‑Tipps + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| **Leeres JSON** | PDF enthält nativen Text, keine Bilder. | Verwenden Sie `PdfDocument.fromFile(..., true)`, um die Rasterisierung zu erzwingen, oder konvertieren Sie Seiten vorher in Bilder. | +| **Niedrige Confidence** | Ausgangs‑PDF ist niedrig aufgelöst oder stark komprimiert. | Erhöhen Sie die DPI mit `ocrEngine.getImageProcessingOptions().setDpi(300)` vor `recognizeDocument`. | +| **Lizenz nicht gefunden** | Falscher Pfad oder fehlende Datei. | Nutzen Sie einen absoluten Pfad oder legen Sie die `.lic`‑Datei in den Klassenpfad und rufen Sie `lic.setLicense("Aspose.OCR.Java.lic")` auf. | +| **Out‑of‑Memory bei riesigen PDFs** | Alle Seiten werden gleichzeitig im Speicher geladen. | Seiten stapelweise verarbeiten: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Beispiel erweitern + +- **OCR auf PDF mit einer bestimmten Sprache ausführen** – setzen Sie `ocrEngine.getLanguage().setLanguage(Language.English)` oder laden Sie ein benutzerdefiniertes Sprachpaket. +- **Jede Seite in separate JSON‑Dateien exportieren** – iterieren Sie über `ocrPages` und rufen Sie `JsonExport.save(page, "page" + page.getPageNumber() + ".json")` auf. +- **Integration in eine Suchmaschine** – speisen Sie das JSON in den `attachment`‑Processor von Elasticsearch für Volltextsuche. + +--- + +## Fazit + +Sie verfügen jetzt über eine komplette, produktionsreife Lösung, **wie man PDF OCR‑t** mit Aspose OCR für Java. Durch Initialisieren der Engine, Laden des PDFs, Ausführen von OCR und Exportieren sowohl nach **JSON** als auch **XML** können Sie OCR in jede Backend‑Workflow‑Umgebung integrieren – egal, ob Sie **OCR auf PDF ausführen**, **Text‑PDF erkennen**, **PDF in JSON konvertieren** oder einfach **PDF für OCR laden** möchten. + +Probieren Sie es aus, passen Sie DPI‑ oder Spracheinstellungen an und sehen Sie, wie Ihre bisher undurchsichtigen PDFs zu durchsuchbaren Assets werden. Noch weiter gehen? Indexieren Sie das JSON in Elasticsearch oder verarbeiten Sie das XML mit XSLT, um benutzerdefinierte Berichte zu erzeugen. + +Viel Spaß beim Coden, und mögen Ihre PDFs immer lesbar sein! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/german/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..4851b42b9 --- /dev/null +++ b/ocr/german/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'Wie man OCR schnell ausführt: Lernen Sie, Text aus einem Bild zu extrahieren + und Text aus einem Formular mit Aspose OCR Java zu erkennen. Einfache Schritte zum + Lesen von Bildern für OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: de +og_description: 'Wie man OCR schnell ausführt: Lernen Sie, Text aus Bildern zu extrahieren + und Text aus Formularen mit Aspose OCR Java zu erkennen. Einfache Schritte zum Lesen + von Bildern für OCR.' +og_title: wie man OCR auf einem Formular ausführt – Text aus Bild extrahieren +tags: +- ocr +- java +- image-processing +title: Wie man OCR auf einem Formular ausführt – Text aus Bild extrahieren +url: /de/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# wie man ocr auf einem formular ausführt – text aus bild extrahieren + +Haben Sie sich jemals gefragt, **wie man ocr** auf einem gescannten Dokument auszuführen, ohne Stunden mit obskuren Bibliotheken zu verbringen? Sie sind nicht allein. In vielen Projekten – sei es das Digitalisieren von Rechnungen, das Archivieren von Verträgen oder das Auslesen von handschriftlichen Formularen – ist die Fähigkeit, **Text aus Bild**‑Dateien zu **extrahieren**, ein täglicher Schmerzpunkt. + +Hier ist die Sache: Aspose OCR for Java macht die gesamte Pipeline fast schmerzfrei. In diesem Tutorial gehen wir jede Codezeile durch, die Sie benötigen, um **Text aus Formular erkennen**‑Dateien zu **erkennen**, erklären, warum jeder Schritt wichtig ist, und zeigen Ihnen, wie Sie **Bild für ocr auslesen**‑Ergebnisse mit Vertrauenswerten **auslesen** können. Am Ende haben Sie eine einsatzbereite Java‑Klasse, die Sie in jedes Maven‑ oder Gradle‑Projekt einbinden können. + +## Was Sie lernen werden + +- Richten Sie die Aspose OCR‑Engine ein und wenden Sie Ihre Lizenz an. +- Laden Sie ein JPEG, PNG oder TIFF in den Speicher. +- Führen Sie OCR aus und iterieren Sie über jede Zeile des erkannten Textes. +- Erkennen Sie Zeilen mit niedriger Vertrauenswürdigkeit für manuelle Überprüfung. +- Erweitern Sie das Beispiel für mehrseitige PDFs oder verschiedene Bildformate. + +Vorkenntnisse mit Aspose sind nicht erforderlich, nur eine grundlegende Java‑Entwicklungsumgebung (JDK 11+ und eine IDE Ihrer Wahl). Lassen Sie uns beginnen. + +![Beispiel für OCR‑Ausführung](/images/ocr-demo.png){alt="Beispiel für OCR auf einem gescannten Formular"} + +## Schritt 1: OCR‑Engine initialisieren – **wie man ocr ausführt** + +Das allererste, was Sie vor jeder OCR‑Operation tun müssen, ist, eine `OcrEngine`‑Instanz zu erstellen und eine gültige Lizenz anzuhängen. Ohne Lizenz läuft die Bibliothek im Demo‑Modus, der die Anzahl der verarbeitbaren Seiten einschränkt. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Warum das wichtig ist:** +Die `OcrEngine` enthält alle Konfigurationen – Sprache, Erkennungsmodus und Leistungsoptimierungen. Durch das Vorab‑Setzen der Lizenz vermeiden Sie das stille Zurückfallen in den Testmodus, das sonst Ihre Ausgabe abschneiden würde. + +## Schritt 2: Bild laden – **Text aus Bild extrahieren** + +Als Nächstes benötigen wir ein `Image`‑Objekt, das auf die Datei verweist, die Sie scannen möchten. Aspose unterstützt eine breite Palette von Formaten, sodass Sie eine gescannte PDF‑Seite, die Sie bereits in PNG konvertiert haben, ein rohes JPEG oder sogar ein mehrseitiges TIFF einlesen können. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Warum das wichtig ist:** +Das Laden des Bildes als `Image`‑Objekt gibt der Engine Zugriff auf Pixeldaten, DPI‑Informationen und Farbtiefe – alles Faktoren, die die OCR‑Genauigkeit beeinflussen. Wenn Sie diesen Schritt überspringen und ein rohes Byte‑Array übergeben, verlieren Sie diese hilfreichen Hinweise. + +## Schritt 3: OCR ausführen – **Text aus Formular erkennen** + +Jetzt kommt der spaßige Teil: das eigentliche Erkennen der Zeichen. Die Methode `recognize` gibt ein `RecognitionResult` zurück, das eine Sammlung von `Line`‑Objekten enthält, von denen jedes einen eigenen Vertrauenswert hat. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Warum das wichtig ist:** +Der Aufruf von `recognize` löst eine Kaskade interner Prozesse aus – Vorverarbeitung (Entzerrung, Rauschunterdrückung), Segmentierung, Zeichenklassifizierung und Nachverarbeitung (Rechtschreibprüfung, Sprachmodell). Das Ergebnisobjekt abstrahiert all diese Komplexität. + +## Schritt 4: Ergebnisse verarbeiten – **Bild für ocr auslesen** Ausgabe + +Sobald Sie das `RecognitionResult` haben, können Sie jede Zeile iterieren, automatisch entscheiden, was beibehalten wird, und alles markieren, das unsicher erscheint. Ein Vertrauensschwellenwert von 85 % ist ein guter Ausgangspunkt für die meisten gedruckten Formulare. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Erwartete Ausgabe (Beispiel):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +Im obigen Beispiel war sich die Engine bei der letzten Ziffer des Gesamtbetrags unsicher, also haben wir eine Warnung ausgegeben. Sie könnten diese Zeilen in eine Benutzeroberfläche für manuelle Korrektur leiten oder sie für eine spätere Überprüfung protokollieren. + +### Sonderfälle & Tipps + +- **Mehrere Seiten:** Wenn Sie ein mehrseitiges PDF haben, iterieren Sie über jeden Seitenindex und rufen `Image.fromPdf(pdfPath, pageIndex)` auf. +- **Verschiedene Sprachen:** Setzen Sie `engine.getLanguage().setLanguage(Language.Spanish);` bevor Sie `recognize` aufrufen. +- **Bildqualität:** Niedrigauflösende Scans (< 150 DPI) erzeugen oft ein Vertrauen unter 80 %. Das Hochskalieren mit `image.resize(300, 300)` kann helfen, aber die beste Lösung ist ein besserer Scan. +- **Performance:** Das Wiederverwenden derselben `OcrEngine`‑Instanz für viele Bilder reduziert den Overhead im Vergleich zum Erstellen einer neuen Instanz jedes Mal. + +## Häufig gestellte Fragen + +**Kann ich das auf einem Headless‑Server ausführen?** +Absolut. Die Bibliothek hat keine GUI‑Abhängigkeiten, sodass sie problemlos in Docker‑Containern oder CI‑Pipelines funktioniert. + +**Was ist, wenn ich noch keine Lizenz habe?** +Sie können weiterhin `engine.recognize` aufrufen, aber der Demo‑Modus stoppt nach den ersten 2 Seiten und versieht die Ausgabe mit einem Wasserzeichen. Das ist ideal für schnelle Tests. + +**Gibt es eine Möglichkeit, strukturierte Daten (z. B. Tabellen) zu extrahieren?** +Aspose OCR bietet eine `TableRecognizer`‑Klasse, aber das liegt außerhalb des Umfangs dieses Einsteiger‑Leitfadens. Sobald Sie die Grundlagen beherrscht haben, schauen Sie in die offizielle Dokumentation für `TableRecognizer`. + +## Zusammenfassung – **wie man ocr** in Kürze + +Wir haben alles behandelt, was Sie benötigen, um **wie man ocr** auf einem gescannten Formular auszuführen: die Engine initialisieren, das Bild laden, die Erkennung ausführen und die Ergebnisse intelligent verarbeiten. Mit nur wenigen Zeilen Java können Sie **Text aus Bild**‑Dateien **extrahieren**, **Text aus Formular**‑Dokumenten **erkennen** und **Bild für ocr**‑Ausgaben mit Vertrauenswerten **auslesen**, die Ihnen ermöglichen zu entscheiden, wann eine menschliche Überprüfung erforderlich ist. + +Nächste Schritte? Versuchen Sie, das JPEG durch ein mehrseitiges TIFF zu ersetzen, experimentieren Sie mit verschiedenen Vertrauensschwellen oder integrieren Sie die Ausgabe in eine Datenbank für automatisierte Dateneingabe. Die Möglichkeiten sind so vielfältig wie die Dokumente, die Sie verarbeiten müssen. + +Haben Sie weitere Fragen zu OCR, Bildvorverarbeitung oder Lizenzierung? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/german/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..acf0a6fd7 --- /dev/null +++ b/ocr/german/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-05-03 +description: Wie man OCR verwendet, um Text aus PDF‑Dateien in Java zu extrahieren. + Erfahren Sie, wie man Text aus PDFs erkennt, PDFs in Text umwandelt und OCR für + mehrseitige PDFs effizient verarbeitet. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: de +og_description: Wie man OCR verwendet, um Text aus PDF-Dateien in Java zu extrahieren. + Dieser Leitfaden zeigt, wie man Text aus PDFs erkennt, PDFs in Text konvertiert + und OCR für mehrseitige PDFs verarbeitet. +og_title: Wie man OCR in Java verwendet – Text aus mehrseitigen PDFs extrahieren +tags: +- ocr +- java +- pdf +- aspose +title: Wie man OCR in Java verwendet – Text aus mehrseitigen PDFs extrahieren +url: /de/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man OCR in Java verwendet – Text aus mehrseitigen PDFs extrahieren + +**How to use OCR** in einem Java‑Projekt? Wenn Sie jemals Text aus PDF‑Dateien extrahieren mussten, ohne sich auf die interne Textebene des PDFs zu verlassen, sind Sie hier genau richtig. Dieses Tutorial führt Sie durch eine vollständige, ausführbare Lösung, die **Text aus PDF erkennt**, PDF in Text konvertiert und sogar ein **OCR‑Mehrseitiges‑PDF** mit einem einzigen Aufruf verarbeitet. + +Stellen Sie sich vor, Sie erhalten einen gescannten Vertrag — ein 12‑seitiges TIFF in einem PDF. Sie benötigen den durchsuchbaren Text für die Indexierung, aber die Datei enthält keine eingebetteten Zeichen. Kein Problem; wir zeigen Ihnen genau, wie Sie das Schritt für Schritt erledigen. + +> **Was Sie erhalten:** ein sofort einsatzbereites Java‑Snippet mit Aspose.OCR, Erklärungen, warum jede Zeile wichtig ist, Tipps zu häufigen Fallstricken und ein Beispiel‑Ausgabe, die Sie sofort überprüfen können. + +## Was Sie benötigen + +* **Java 17** (oder ein aktuelles JDK) – der Code funktioniert auch mit älteren Versionen, aber 17 ist der optimale Punkt. +* **Aspose OCR for Java** Bibliothek – Sie können das JAR von der Aspose‑Website herunterladen oder über Maven/Gradle einbinden. +* Ein **mehrseitiges PDF** (oder TIFF), das Sie verarbeiten möchten. In unseren Beispielen verwenden wir `contract_multipage.pdf`, das in einem Ordner namens `YOUR_DIRECTORY` liegt. +* Eine gültige **Aspose OCR Lizenzdatei** (`Aspose.OCR.Java.lic`). Ohne diese läuft die Bibliothek im Evaluierungsmodus, was für einen schnellen Test in Ordnung ist, aber ein Wasserzeichen hinzufügt. + +Das war’s – keine zusätzlichen OCR‑Engines, keine nativen Binärdateien, nur ein einzelnes JAR und eine Lizenz. + +![Beispiel zur Verwendung von OCR](https://example.com/ocr-demo.png "Wie man OCR in Java verwendet – visuelle Übersicht des Prozesses") + +*Bildbeschreibung: Wie man OCR in Java verwendet – visuelle Übersicht über das Laden, Erkennen und Ausgeben von Text.* + +## Schritt 1: OCR‑Engine einrichten – **How to Use OCR** korrekt + +Das Erste, was Sie tun müssen, ist eine Instanz der OCR‑Engine zu erstellen und Ihre Lizenz anzuwenden. Ohne Lizenz funktioniert die Engine zwar, aber Sie sehen ein Test‑Wasserzeichen in der Ausgabe. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Warum das wichtig ist:** +Der `OcrEngine` ist das Kernobjekt, das die Bildanalyse, Spracherkennung und Textextraktion steuert. Das frühe Setzen der Lizenz verhindert, dass die Engine später in den Testmodus zurückfällt, was die Genauigkeit beeinträchtigen könnte. + +## Schritt 2: Dokument laden – **Extract Text from PDF** effizient + +Aspose OCR kann sowohl PDF‑ als auch TIFF‑Container direkt lesen. Hier laden wir ein mehrseitiges PDF, das gescannte Bilder enthält. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Warum das wichtig ist:** +`PdfDocument.fromFile` analysiert den Container und gibt Ihnen Zugriff auf jede Seite als Bild. Diese Abstraktion ermöglicht es der OCR‑Engine, jede Seite einheitlich zu behandeln, unabhängig vom ursprünglichen Format. + +**Tipp:** Wenn Ihre Quelldatei ein TIFF ist, funktioniert derselbe Aufruf – Aspose erkennt das Format automatisch. Kein zusätzlicher Code erforderlich. + +## Schritt 3: Alle Seiten auf einmal erkennen – **Recognize Text from PDF** nahtlos + +Statt selbst über die Seiten zu iterieren, können Sie die Engine auffordern, das gesamte Dokument in einem einzigen Aufruf zu verarbeiten. Dies ist der effizienteste Weg, **PDF in Text zu konvertieren**, wenn Sie ein **OCR‑Mehrseitiges‑PDF** verarbeiten. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Warum das wichtig ist:** +Einmal `recognizeDocument` aufzurufen reduziert den Overhead, der durch wiederholtes Initialisieren der Engine entsteht. Es garantiert zudem konsistente Spracheinstellungen über alle Seiten hinweg, was bei juristischen Dokumenten, die häufig verschiedene Schriftarten mischen, entscheidend ist. + +## Schritt 4: Erkannten Text ausgeben – **Convert PDF to Text** für die Indexierung + +Jetzt, da jede Seite verarbeitet wurde, iterieren wir einfach über die Ergebnisse und geben die extrahierten Zeichenketten aus. Sie können sie auch in eine Datei, eine Datenbank schreiben oder in einen Suchindex einspeisen. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Erwartete Ausgabe (gekürzt):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Enthält das PDF 12 Seiten, sehen Sie zwölf `--- Page X ---`‑Abschnitte, jeweils gefolgt vom OCR‑extrahierten Text. + +## Erweiterte Tipps für ein **OCR Multi Page PDF** + +### 1. Spracheinstellungen anpassen + +Standardmäßig versucht Aspose, die Sprache automatisch zu erkennen, aber Sie können den Vorgang beschleunigen, indem Sie sie angeben: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Bildvorverarbeitung steuern + +Gescannte Verträge enthalten oft Rauschen. Sie können Entzerrung und Binarisierung aktivieren: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Große Dateien elegant verarbeiten + +Wenn Sie PDFs größer als 100 MB verarbeiten, sollten Sie das Streaming von Seiten in Betracht ziehen, anstatt das gesamte Dokument auf einmal zu laden: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Dieses Muster reduziert den Speicherverbrauch und ist praktisch für Batch‑Jobs. + +### 4. Export in strukturierte Formate + +Neben einfachem Text können Sie in JSON oder XML für die Weiterverarbeitung exportieren: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## Häufige Fallstricke & wie man sie vermeidet + +| Fallstrick | Warum es passiert | Lösung | +|------------|-------------------|--------| +| **Leere Ausgabe** | Lizenz nicht angewendet oder Dateipfad falsch. | Überprüfen Sie den Pfad von `setLicense` und stellen Sie sicher, dass die Datei existiert. | +| **Fehlerhafte Zeichen** | Falsche Spracheinstellung oder Quelle mit niedriger Auflösung. | Setzen Sie die korrekte `Language` und stellen Sie sicher, dass Quellbilder ≥300 dpi haben. | +| **Speicher‑Fehler** | Ein riesiges PDF auf einmal laden. | Verwenden Sie den oben gezeigten Streaming‑Ansatz. | +| **Teilweise Seitenerkennung** | PDF enthält gemischte Raster‑/Vektorschichten. | Flachlegen Sie das PDF zuerst: `pdfDoc.flatten();` vor OCR. | + +## Zusammenfassung – Was wir behandelt haben + +* **How to use OCR** mit Aspose in Java. +* **Extract text from PDF** (oder TIFF) in einem einzigen Aufruf. +* **Recognize text from PDF** über alle Seiten hinweg ohne manuelle Schleifen. +* **Convert PDF to Text** und geben es sauber aus. +* Tipps zum Umgang mit einem **OCR multi page PDF**, einschließlich Sprachanpassungen und speichereffizientem Streaming. + +Sie haben jetzt ein vollständiges, produktionsreifes Snippet, das Sie in jedes Java‑Projekt einbinden können. Passen Sie gern die Bildverarbeitungsoptionen an, ändern Sie das Ausgabeziel oder integrieren Sie das Ergebnis in einen Suchindex. + +## Nächste Schritte + +* **Entdecken Sie die erweiterten Funktionen von Aspose OCR** – wie Handschriftenerkennung oder PDF/A‑Konformität. +* **Kombinieren Sie OCR mit PDF‑Manipulation** (z. B. eine versteckte Textebene wieder in das PDF einfügen, um durchsuchbare PDFs zu erhalten). +* **Automatisieren Sie die Batch‑Verarbeitung**, indem Sie einen Ordner mit PDFs einlesen und jedes Ergebnis in eine entsprechende `.txt`‑Datei schreiben. + +Wenn Sie auf Probleme stoßen, sind die Aspose‑Foren ein guter Ort, um Hilfe zu erhalten, und die API‑Referenz liefert ausführliche Details zu jeder hier verwendeten Methode. + +Viel Spaß beim Coden und beim Umwandeln dieser hartnäckigen Scans in durchsuchbaren Text! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/german/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..99f56e278 --- /dev/null +++ b/ocr/german/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Binärdatei in Java lesen, um eine Aspose OCR‑Lizenz zu laden. Erfahren + Sie die Verwendung von FileInputStream, die Handhabung binärer Daten und praktische + Tipps in dieser Schritt‑für‑Schritt‑Anleitung. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: de +og_description: Lese binäre Datei in Java, um eine Aspose OCR‑Lizenz zu laden. Folgen + Sie diesem vollständigen Leitfaden, um FileInputStream und die Verarbeitung binärer + Daten in Java zu meistern. +og_title: Binärdatei in Java lesen – Lizenzbytes für Aspose OCR laden +tags: +- Java +- File I/O +- OCR +title: Binärdatei in Java lesen – Lizenzbytes für Aspose OCR laden +url: /de/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Binärdatei in Java lesen – Lizenzbytes für Aspose OCR laden + +Haben Sie jemals **Binärdatei in Java lesen** benötigt, wenn Sie mit einer Lizenz für eine Drittanbieter‑Bibliothek arbeiten? Sie sind nicht allein. Die meisten Java‑Entwickler stoßen auf dieses Problem, wenn sie versuchen, eine `.lic`‑Datei in eine OCR‑Engine zu laden, und die üblichen Textdatei‑Tricks funktionieren einfach nicht. + +In diesem Tutorial führen wir Sie durch ein vollständiges, ausführbares Beispiel, das genau zeigt, wie man eine binäre Lizenzdatei öffnet, ihre Bytes in den Speicher lädt und diese Bytes an Aspose OCR für Java übergibt. Unterwegs sehen Sie, warum `FileInputStream` das richtige Werkzeug ist, wie man mögliche `IOException`s behandelt und ein paar Profi‑Tipps, die Sie in der offiziellen Dokumentation vielleicht nicht finden. + +Am Ende des Leitfadens können Sie **Binärdatei in Java lesen** Stil, ein `License`‑Objekt erstellen und es einem `OcrEngine` zuweisen, ohne ins Schwitzen zu geraten. + +## Was dieser Leitfaden abdeckt + +- Voraussetzungen: Java 17+, Maven (oder Gradle) und die Aspose OCR für Java Bibliothek. +- Schritt‑für‑Schritt‑Code, der eine binäre `.lic`‑Datei mit `FileInputStream` liest. +- Erklärung jeder Zeile, damit Sie das *Warum* hinter dem *Wie* verstehen. +- Behandlung von Randfällen (fehlende Datei, beschädigte Bytes) und praktische Debugging‑Tipps. +- Ein abschließendes, eigenständiges Snippet, das Sie in Ihre IDE kopieren und sofort ausführen können. + +Falls Sie sich jemals gefragt haben, ob Sie eine spezielle API zum Lesen von Lizenzdateien benötigen, lautet die Antwort ein klares **nein** – einfach das gute alte binäre I/O. Tauchen wir ein. + +## Schritt 1: Binärdatei in Java lesen mit FileInputStream + +Das Erste, was wir benötigen, ist ein zuverlässiger Weg, rohe Bytes aus der Lizenzdatei auf dem Datenträger zu holen. In Java ist `FileInputStream` dafür das Arbeitspferd. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Warum das funktioniert:** `Files.readAllBytes` erstellt intern einen `FileInputStream`, liest den gesamten Stream und schließt ihn für Sie. Es ist sicher, kompakt und vermeidet die klassische Falle „Stream nicht schließen“. Wenn Sie das klassische Muster bevorzugen, können Sie es durch einen try‑with‑resources‑Block mit `FileInputStream` direkt ersetzen. + +### Profi‑Tipp + +Falls die Lizenzdatei riesig ist (ungewöhnlich, aber möglich), sollten Sie sie in Stücken streamen, anstatt sie auf einmal zu laden. Für die meisten OCR‑Lizenzdateien – meist unter ein paar Kilobyte – ist der Einmal‑Ansatz völlig ausreichend. + +## Schritt 2: Lizenzobjekt für Aspose OCR erstellen + +Jetzt, wo wir die rohen Bytes haben, müssen wir sie in eine Aspose‑kompatible `License`‑Instanz umwandeln. Die Bibliothek stellt eine `License`‑Klasse bereit, die ein Byte‑Array akzeptiert. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Warum das wichtig ist:** Durch das direkte Übergeben der Bytes vermeiden Sie Pfad‑bezogene Probleme (wie Verwirrung bei relativen Pfaden zum Arbeitsverzeichnis) und halten Ihre Bereitstellung portabel – packen Sie die `.lic`‑Datei einfach dort, wo Ihre Anwendung läuft. + +## Schritt 3: Lizenz dem OCR‑Engine zuweisen + +Mit dem fertigen `License`‑Objekt ist der letzte Schritt, es einem `OcrEngine` zuzuweisen. Dieser Schritt stellt sicher, dass die OCR‑Komponente im lizenzierten Modus läuft und nicht in der Evaluations‑Sandbox. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Hinweis:** Einige ältere Aspose‑Versionen stellen ein öffentliches `license`‑Feld statt eines Setters bereit. Passen Sie den Code entsprechend an (`ocrEngine.license = license;`), falls ein Kompilierungsfehler auftritt. + +## Schritt 4: Lizenz erfolgreich geladen überprüfen (optional aber hilfreich) + +Eine schnelle Plausibilitätsprüfung spart später Stunden an Fehlersuche. Die `License`‑Klasse wirft bei Erfolg keine Ausnahme, aber Sie können einen harmlosen OCR‑Vorgang versuchen, um dies zu bestätigen. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Wenn Sie die Meldung „License applied successfully“ sehen, können Sie loslegen. Andernfalls prüfen Sie den Dateipfad, die Byte‑Integrität und ob Sie die richtige Aspose‑Version verwenden, erneut. + +## Vollständiges funktionierendes Beispiel + +Wenn man alle Teile zusammenfügt, entsteht ein kompaktes, copy‑paste‑fertiges Programm. Sie können es einfach in eine `Main.java`‑Datei einfügen und ausführen. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Erwartete Ausgabe (vorausgesetzt, das Dummy‑Bild existiert):** + +``` +License applied successfully – OCR engine is ready. +``` + +Falls die Lizenzdatei fehlt oder beschädigt ist, erhalten Sie eine klare Fehlermeldung wie: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Häufige Stolperfallen & wie man sie vermeidet + +- **Pfad‑Verwirrung:** Relative Pfade werden relativ zum Arbeitsverzeichnis der JVM aufgelöst, nicht zum Speicherort der Quelldatei. Verwenden Sie einen absoluten Pfad oder legen Sie die `.lic`‑Datei neben dem JAR ab und referenzieren Sie sie mit `getResourceAsStream`. +- **Falsche Byte‑Reihenfolge:** Versuchen Sie niemals, eine Binärdatei mit einem `Reader` (zeichenorientiert) zu lesen. Das würde die Daten beschädigen. Bleiben Sie bei APIs, die auf `FileInputStream` basieren. +- **Versionskonflikt:** Einige ältere Aspose‑Versionen erwarten `license.setLicense("path/to/file")` anstelle von `setLicenseBytes`. Prüfen Sie die Release‑Notes der Bibliothek, falls ein `NoSuchMethodError` auftritt. +- **Streams nicht geschlossen:** Wenn Sie zum klassischen `FileInputStream`‑Ansatz zurückkehren, verpacken Sie ihn in einen try‑with‑resources‑Block, um das Schließen sicherzustellen. + +## Fazit + +Sie wissen jetzt, wie man **Binärdatei in Java liest**, um eine Aspose OCR‑Lizenz zu laden, ein `License`‑Objekt zu erstellen und es an einen `OcrEngine` anzuschließen. Der Prozess beruht auf dem korrekten Umgang mit Binärdaten mittels `FileInputStream` (oder dem moderneren `Files.readAllBytes`) und ein paar einfachen API‑Aufrufen. + +Ab hier können Sie zu echten OCR‑Aufgaben übergehen – Text aus PDFs, Bildern oder sogar gescannten Dokumenten extrahieren – in dem Wissen, dass die Lizenzschicht Ihnen nicht im Weg steht. Wenn Sie an verwandten Themen interessiert sind, schauen Sie sich Tutorials zu **Java FileInputStream**, **binary data handling Java** und **read license file Java** für andere Bibliotheken an. + +Viel Spaß beim Programmieren, und möge Ihr OCR‑Ergebnis kristallklar sein! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/german/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/german/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..0187fae7a --- /dev/null +++ b/ocr/german/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Erfahren Sie, wie Sie Text aus Bildern erkennen und Bilder in Text umwandeln + können, indem Sie Aspose OCR für Java verwenden. Enthält Tipps zur Verbesserung + der OCR‑Genauigkeit und zur Ausführung von OCR auf PNG‑Dateien. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: de +og_description: Schritt‑für‑Schritt‑Anleitung zur Texterkennung aus Bildern mit Aspose + OCR für Java. Lernen Sie, Bilder in Text zu konvertieren, die OCR‑Genauigkeit zu + verbessern und OCR auf PNG‑Dateien anzuwenden. +og_title: Texterkennung aus Bild mit Aspose OCR – Java‑Tutorial +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Texterkennung aus Bild mit Aspose OCR – Vollständiger Java-Leitfaden +url: /de/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Texterkennung aus Bild mit Aspose OCR – Vollständiger Java‑Leitfaden + +Haben Sie jemals **Texte aus einem Bild erkennen** müssen, waren sich aber nicht sicher, welche Bibliothek zuverlässige Ergebnisse liefert? Sie sind nicht allein – viele Entwickler stoßen an diese Grenze, wenn sie erstmals versuchen, Daten aus gescannten PDFs, Quittungen oder Laborberichten zu extrahieren. Die gute Nachricht ist, dass Aspose OCR für Java den gesamten Prozess zum Kinderspiel macht, und Sie können sogar **Bild in Text umwandeln** mit nur wenigen Zeilen. + +In diesem Tutorial führen wir Sie durch alles, was Sie wissen müssen: vom Laden eines Bildes für OCR, über das Anpassen von Einstellungen zur **Verbesserung der OCR‑Genauigkeit**, bis hin zum **Ausführen von OCR auf PNG**‑Dateien und dem Ausgeben des extrahierten Textes. Kein Schnickschnack, nur ein praktisches, ausführbares Beispiel, das Sie noch heute in Ihr Projekt einbinden können. + +--- + +## Was Sie benötigen + +Bevor wir loslegen, stellen Sie sicher, dass Sie Folgendes auf Ihrem Rechner haben: + +| Voraussetzung | Grund | +|--------------|--------| +| Java 17 (oder neuer) | Aspose OCR unterstützt Java 8+, aber das neueste JDK bietet bessere Performance. | +| Aspose OCR for Java‑Bibliothek (`aspose-ocr.jar`) | Die Kern‑Engine, die die schwere Arbeit übernimmt. | +| Eine gültige Aspose OCR‑Lizenzdatei (`Aspose.OCR.Java.lic`) | Aktiviert den vollen Funktionsumfang; sonst erhalten Sie ein Wasserzeichen der Testversion. | +| Eine Bilddatei (PNG, JPEG, TIFF usw.) mit klarem Text | Wir verwenden `lab_report.png` als konkretes Beispiel. | +| Ein benutzerdefiniertes Wörterbuch (optional) | Verbessert die Erkennung domänenspezifischer Begriffe wie „hemoglobin“. | + +Wenn Ihnen einer dieser Punkte unbekannt ist, keine Panik – das Installieren einer JAR‑Datei und das Erstellen einer einfachen Textdatei sind triviale Aufgaben, die wir gleich behandeln. + +--- + +## Schritt 1 – Projekt einrichten und Abhängigkeiten importieren + +Erstellen Sie zunächst ein neues Maven‑ (oder Gradle‑)Projekt und fügen Sie die Aspose OCR‑Abhängigkeit hinzu. Maven‑Nutzer können diesen Ausschnitt in ihre `pom.xml` einfügen: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Falls Sie Gradle bevorzugen, lautet das Äquivalent: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Profi‑Tipp:** Achten Sie auf die Versionsnummer; neuere Releases enthalten oft Fehlerbehebungen, die die **Verbesserung der OCR‑Genauigkeit** direkt beeinflussen. + +Erstellen Sie nun eine Java‑Klasse namens `OcrDemo.java`. Importieren Sie am Anfang der Datei die benötigten Klassen: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Schritt 2 – OCR‑Engine initialisieren und Lizenz anwenden + +Sie können **OCR auf PNG**‑Dateien nicht ausführen, ohne der Engine vorher mitzuteilen, dass sie lizenziert ist. So geht’s: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Warum das zusätzliche `License`‑Objekt? Aspose trennt die Lizenzverwaltung von der Engine, damit Sie Lizenzen zur Laufzeit wechseln können – praktisch in Multi‑Tenant‑SaaS‑Szenarien. + +--- + +## Schritt 3 – Benutzerdefiniertes Wörterbuch laden (optional aber leistungsstark) + +Wenn Sie mit medizinischer Terminologie, chemischen Formeln oder Markennamen arbeiten, kann ein benutzerdefiniertes Wörterbuch die **Verbesserung der OCR‑Genauigkeit** dramatisch steigern. Das Wörterbuch ist eine reine Textdatei mit einem Wort pro Zeile: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Warum es funktioniert:** Die OCR‑Engine nutzt das Wörterbuch, um ihr Sprachmodell zu den von Ihnen gewünschten Wörtern zu biasen, wodurch Fehlinterpretationen wie „hemo‑globin“ → „hemoglobin“ reduziert werden. + +Falls Sie kein Wörterbuch haben, überspringen Sie diese Zeile einfach – Aspose arbeitet auch gut mit den integrierten Sprachpaketen. + +--- + +## Schritt 4 – Bild laden, das Sie verarbeiten möchten + +Jetzt **laden wir das Bild für OCR**. Aspose unterstützt viele Formate, aber PNG ist besonders verlustfrei und damit eine sichere Wahl für gescannte Dokumente. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Randfall:** Ist Ihr Bild sehr groß (über 5 MB), sollten Sie es zuerst verkleinern, um die Verarbeitung zu beschleunigen. Die Klasse `Image` bietet eine `resize`‑Methode, die Sie vor der Erkennung aufrufen können. + +--- + +## Schritt 5 – OCR‑Prozess ausführen und Text abrufen + +Mit allem bereit, starten Sie die OCR‑Engine. Die Methode `recognize` liefert ein `OcrResult`‑Objekt, das den extrahierten String, Konfidenzwerte und sogar Begrenzungsrahmen enthält, falls Sie Layout‑Informationen benötigen. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Wenn Sie das Programm ausführen, sollten Sie etwa Folgendes sehen: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Damit ist es erledigt – Sie haben erfolgreich **Texte aus einem Bild erkannt** und **Bild in Text umgewandelt** mit Aspose OCR. + +--- + +## Schritt 6 – Häufige Fallstricke und wie man sie behebt + +Selbst mit einer soliden Bibliothek können ein paar Stolpersteine auftreten: + +| Symptom | Wahrscheinliche Ursache | Lösung | +|---------|--------------------------|--------| +| Leere Ausgabe | Lizenz nicht angewendet oder abgelaufen | Pfad zu `Aspose.OCR.Java.lic` prüfen und sicherstellen, dass er zur Version passt. | +| Verzerrte Zeichen | Bild hat niedrige Auflösung oder ist stark komprimiert | Hochauflösende Quelle verwenden oder Bild vorverarbeiten (Binarisierung, Deskew). | +| Fehlende domänenspezifische Wörter | Kein benutzerdefiniertes Wörterbuch | Wörterbuchdatei mit den fehlenden Begriffen hinzufügen, ein Wort pro Zeile. | +| Langsame Verarbeitung großer Stapel | Kein Multithreading | Pool von `OcrEngine`‑Instanzen erstellen (sie sind thread‑sicher) und Bilder parallel verarbeiten. | + +--- + +## Schritt 7 – Beispiel erweitern: Ergebnisse in Datei speichern + +Möchten Sie den extrahierten Text später analysieren, schreiben Sie ihn einfach in eine Datei: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Jetzt haben Sie eine wiederverwendbare Pipeline, die **Bild für OCR lädt**, den Inhalt extrahiert und ihn dort speichert, wo Sie möchten. + +--- + +## Bonus: OCR auf mehreren PNG‑Dateien in einem Ordner ausführen + +In realen Projekten muss man oft Dutzende von Scans verarbeiten. Hier ein kurzer Loop, der jede `.png`‑Datei in einem Verzeichnis aufnimmt: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Denken Sie daran, dieselbe `ocrEngine`‑Instanz wiederzuverwenden – das Erzeugen einer neuen Instanz pro Datei verursacht unnötigen Overhead. + +--- + +## Fazit + +Sie verfügen jetzt über eine voll ausgestattete End‑to‑End‑Lösung, die **Texte aus einem Bild erkennt** mit Aspose OCR für Java. Vom Laden des Bildes, optional über das Anreichern der Engine mit einem benutzerdefinierten Wörterbuch zur **Verbesserung der OCR‑Genauigkeit**, bis hin zum **Ausführen von OCR auf PNG**‑Dateien und dem Speichern der Ausgabe – der Code ist bereit, in jedes Java‑Projekt integriert zu werden. + +Was kommt als Nächstes? Versuchen Sie, den extrahierten Text in eine Natural‑Language‑Processing‑Pipeline zu speisen, oder experimentieren Sie mit OCR für handschriftliche Notizen (Aspose bietet auch einen Handwriting‑Modus). Die Möglichkeiten sind endlos, und Sie haben gerade den ersten Schritt freigeschaltet. + +Viel Spaß beim Coden! Wenn Sie auf Probleme stoßen, hinterlassen Sie gern einen Kommentar unten – wir lösen das gemeinsam. + +![Screenshot des OCR‑Ergebnisses in der Konsole – Texterkennung aus Bild](/images/ocr_console_result.png "Beispiel für Texterkennung aus Bild") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/greek/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..2c1c5b434 --- /dev/null +++ b/ocr/greek/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Εξαγωγή πινάκων από εικόνα χρησιμοποιώντας το Aspose OCR Java. Μάθετε + πώς να φορτώνετε εικόνα για OCR, να εξάγετε πίνακα από PNG, να μετατρέπετε το κείμενο + του πίνακα εικόνας και να αναγνωρίζετε γρήγορα εικόνες αποδείξεων. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: el +og_description: Εξαγωγή πινάκων από εικόνα με το Aspose OCR Java. Αυτός ο οδηγός δείχνει + πώς να φορτώσετε εικόνα για OCR, να εξάγετε πίνακα από PNG, να μετατρέψετε το κείμενο + του πίνακα εικόνας και να αναγνωρίσετε εικόνα απόδειξης. +og_title: Εξαγωγή πινάκων από εικόνα – Οδηγός Aspose OCR Java +tags: +- Aspose OCR +- Java +- Image Processing +title: Εξαγωγή πινάκων από εικόνα – Πλήρης οδηγός Aspose OCR Java +url: /el/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Εξαγωγή πινάκων από εικόνα – Πλήρης Οδηγός Aspose OCR Java + +Έχετε ποτέ χρειαστεί να **εξάγετε πίνακες από εικόνα** αρχεία αλλά αντιμετωπίζετε δυσκολίες; Ίσως έχετε μια σαρωμένη απόδειξη ή ένα φωτογραφημένο τιμολόγιο και τα δεδομένα σε μορφή πίνακα είναι κρυμμένα σε ένα PNG. Σε αυτό το σεμινάριο θα δείτε ακριβώς πώς να *φορτώσετε εικόνα για OCR*, να μετατρέψετε αυτή τη φωτογραφία σε δομημένες γραμμές και **να μετατρέψετε το κείμενο πίνακα εικόνας** σε κάτι με το οποίο μπορείτε να εργαστείτε σε Java. + +Θα περάσουμε από κάθε βήμα, από την αδειοδότηση της μηχανής Aspose OCR μέχρι την εκτύπωση κάθε κελιού των εντοπισμένων πινάκων. Στο τέλος θα μπορείτε να **αναγνωρίσετε εικόνες αποδείξεων** και να εξάγετε τους πίνακές τους χωρίς κόπο. + +## Τι Θα Μάθετε + +- Πώς να αρχικοποιήσετε τη μηχανή Aspose OCR και να εφαρμόσετε την άδειά σας. +- Γιατί η ενεργοποίηση της ανίχνευσης πινάκων είναι το κλειδί για **εξαγωγή πινάκων από εικόνα**. +- Ο ακριβής κώδικας που απαιτείται για **φόρτωση εικόνας για OCR** και εκτέλεση αναγνώρισης σε PNG. +- Τρόποι διαχείρισης πολλαπλών πινάκων, σαρώσεων χαμηλής ανάλυσης και κοινών παγίδων. +- Πώς να **μετατρέψετε το κείμενο πίνακα εικόνας** σε εκτυπώσιμη (ή έτοιμη για βάση δεδομένων) μορφή. + +Δεν απαιτείται εξωτερική τεκμηρίωση — όλα όσα χρειάζεστε είναι εδώ. + +## Προαπαιτούμενα + +- Java 17 ή νεότερη (ο κώδικας χρησιμοποιεί το σύγχρονο σύστημα μονάδων). +- Ένα αρχείο άδειας Aspose OCR for Java (`Aspose.OCR.Java.lic`). Αν κάνετε μόνο πειραματισμό, ένα προσωρινό κλειδί αξιολόγησης λειτουργεί επίσης. +- Μια εικόνα PNG που περιέχει έναν καθαρό πίνακα (π.χ., `receipt_with_table.png`). +- Maven ή Gradle για να κατεβάσετε την εξάρτηση Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Κρατήστε το αρχείο άδειας δίπλα στο φάκελο `src/main/resources` ώστε η διαδρομή να παραμένει σταθερή σε όλα τα περιβάλλοντα. + +--- + +## Βήμα 1 – Αρχικοποίηση της μηχανής OCR για **εξαγωγή πινάκων από εικόνα** + +Πριν η μηχανή μπορέσει να κάνει οτιδήποτε, πρέπει να γνωρίζει ότι είστε έγκυρος χρήστης. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Γιατί είναι σημαντικό:* Χωρίς έγκυρη άδεια η μηχανή OCR λειτουργεί σε δοκιμαστική λειτουργία, η οποία μπορεί να περικόπτει τα αποτελέσματα ή να προσθέτει ανεπιθύμητα υδατογραφήματα — καθιστώντας την εξαγωγή πινάκων μη αξιόπιστη. + +--- + +## Βήμα 2 – Ενεργοποίηση ανίχνευσης πινάκων (**εξαγωγή πίνακα από png**) + +Η ανίχνευση πινάκων δεν είναι ενεργοποιημένη από προεπιλογή· πρέπει να ενεργοποιήσετε τη λειτουργία. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Η ενεργοποίηση αυτής της σημαίας λέει στο Aspose OCR να αντιμετωπίζει ομάδες ευθυγραμμισμένου κειμένου ως γραμμές και στήλες, κάτι που χρειάζεστε όταν θέλετε να **εξάγετε πίνακες από εικόνα** αρχεία που είναι PNG. + +--- + +## Βήμα 3 – **Φόρτωση εικόνας για OCR** και **αναγνώριση εικόνας απόδειξης** + +Τώρα τροφοδοτούμε πραγματικά την εικόνα στη μηχανή. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Αν αντιμετωπίζετε ένα σενάριο **αναγνώρισης εικόνας απόδειξης**, ίσως θελήσετε να προεπεξεργαστείτε την εικόνα (ευθυγράμμιση, αύξηση αντίθεσης). Αυτό δεν περιλαμβάνεται στον οδηγό, αλλά αξίζει να το εξερευνήσετε για θορυβώδεις σαρώσεις. + +--- + +## Βήμα 4 – Επεξεργασία αποτελέσματος OCR και **μετατροπή κειμένου πίνακα εικόνας** + +Το αντικείμενο `OcrResult` μπορεί να περιέχει έναν ή περισσότερους πίνακες. Ας τα διατρέξουμε και να εκτυπώσουμε κάθε κελί. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Τι κάνει αυτό:** + +- Ελέγχει αν βρέθηκαν πίνακες· αν όχι, προτείνει βελτίωση της ποιότητας. +- Για κάθε πίνακα, εκτυπώνει γραμμές με κελιά χωρισμένα με tabs, κάτι που είναι βολική μορφή για εισαγωγές CSV. +- Η κλήση `Cell::getText` είναι η καρδιά του **μετατροπής κειμένου πίνακα εικόνας** – εξάγει το ακατέργαστο κείμενο OCR από κάθε κελί. + +### Αναμενόμενη Έξοδος + +Υποθέτοντας ότι το `receipt_with_table.png` περιέχει έναν απλό πίνακα 3 × 2, θα δείτε κάτι όπως: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Αν η εικόνα έχει πολλαπλούς πίνακες, ο καθένας θα διαχωρίζεται με μια κενή γραμμή. + +--- + +## Βήμα 5 – Επαλήθευση των εξαγόμενων πινάκων και διαχείριση ειδικών περιπτώσεων + +### Συνηθισμένες παγίδες + +| Πρόβλημα | Γιατί συμβαίνει | Γρήγορη διόρθωση | +|----------|----------------|-------------------| +| **Δεν εντοπίστηκαν πίνακες** | Η εικόνα είναι πολύ θολή ή χαμηλής αντίθεσης | Εφαρμόστε δυαδικοποίηση (`ImageProcessing.applyThreshold`) πριν το OCR | +| **Συγχωνευμένα κελιά** | Οι γραμμές του πίνακα είναι αχνές, το OCR τις αντιμετωπίζει ως ένα μπλοκ | Αυξήστε το `TableDetectionSensitivity` στο `ocrEngine.getConfig()` | +| **Λανθασμένη σειρά στηλών** | Καμπυλωμένη εικόνα που προκαλεί κακή ευθυγράμμιση | Χρησιμοποιήστε `ImageProcessing.deskew` ή περιστρέψτε την εικόνα κατά 90° | + +### Τι να κάνετε στη συνέχεια + +- **Εξαγωγή σε CSV** – αντικαταστήστε το `System.out.println(line);` με ένα `FileWriter` για να αποθηκεύσετε τα δεδομένα. +- **Εισαγωγή σε βάση δεδομένων** – αντιστοιχίστε κάθε γραμμή σε ένα POJO και χρησιμοποιήστε JPA για την αποθήκευση. +- **Συνδυασμός με άλλα APIs** – για επεξεργασία αποδείξεων μπορεί επίσης να εξάγετε τα σύνολα χρησιμοποιώντας κανονικές εκφράσεις στο κείμενο OCR. + +--- + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Εκτελέστε αυτό το πρόγραμμα, δείξτε το σε ένα PNG που περιέχει καθαρό πίνακα, και παρακολουθήστε την κονσόλα να γεμίζει με καλοσχηματισμένες γραμμές. + +--- + +## Συμπέρασμα + +Τώρα έχετε μια σταθερή, ολοκληρωμένη λύση για **εξαγωγή πινάκων από εικόνα** αρχεία χρησιμοποιώντας το Aspose OCR for Java. Από την αδειοδότηση μέχρι το **φόρτωση εικόνας για OCR**, την ενεργοποίηση του **εξαγωγής πίνακα από png**, και τελικά το **μετατροπή κειμένου πίνακα εικόνας**, κάθε βήμα καλύπτεται με εξηγήσεις και πρακτικές συμβουλές. + +Στη συνέχεια, δοκιμάστε να συνδέσετε την έξοδο με ένα αρχείο CSV, να σπρώξετε τις γραμμές σε μια σχεσιακή βάση δεδομένων, ή να συνδυάσετε το βήμα OCR με μια ρουτίνα εξαγωγής συνολικού ποσού από απόδειξη. Το ίδιο μοτίβο λειτουργεί για τιμολόγια, τιμοκαταλόγους και οποιοδήποτε σαρωμένο έγγραφο που κρύβει δεδομένα πίσω από ένα πλέγμα. + +Έχετε ερωτήσεις σχετικά με τη διαχείριση αποδείξεων χαμηλής ανάλυσης ή την κλιμάκωση σε επεξεργασία παρτίδων; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική! + +![Παράδειγμα εξαγωγής πινάκων από εικόνα](https://example.com/assets/extract-tables-from-image.png "Εξαγωγή πινάκων από εικόνα – δείγμα εξόδου") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/greek/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/greek/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..95a90c475 --- /dev/null +++ b/ocr/greek/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Εξάγετε κείμενο από εικόνα με Python χρησιμοποιώντας το Aspose OCR. Μάθετε + έναν βήμα‑βήμα οδηγό OCR σε Python με υποστήριξη μεικτών λατινικών‑κυριλλικών. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: el +og_description: Αποκτήστε κείμενο από εικόνα με Python γρήγορα. Αυτός ο οδηγός δείχνει + πώς να χρησιμοποιήσετε το Aspose OCR σε Python για εικόνες με ανάμειξη λατινικών‑κυριλλικών. +og_title: Εξαγωγή κειμένου από εικόνα με Python – Πλήρης οδηγός Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Εξαγωγή κειμένου από εικόνα με Python – Πλήρης οδηγός Aspose OCR +url: /el/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from Image Python – Complete Aspose OCR Guide + +Έχετε ποτέ χρειαστεί να **extract text from image python** αλλά δεν ήσασταν σίγουροι ποια βιβλιοθήκη μπορεί να διαχειριστεί ένα μίγμα λατινικών και κυριλλικών χαρακτήρων; Δεν είστε οι μόνοι—οι προγραμματιστές συχνά αντιμετωπίζουν αυτό το πρόβλημα όταν κάνουν OCR σε πολυγλωσσικά screenshots. + +Το καλό νέο είναι ότι το Aspose OCR for Python κάνει όλη τη διαδικασία σχεδόν άβολη. Σε αυτό το tutorial θα περάσουμε από την εγκατάσταση του πακέτου, την εφαρμογή της άδειας, τη φόρτωση μιας εικόνας με μίξη γλωσσών, και τέλος την εξαγωγή του αναγνωρισμένου κειμένου με λίγες γραμμές κώδικα. Στο τέλος θα έχετε ένα έτοιμο script που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο. + +## What You’ll Learn + +- Πώς να ρυθμίσετε το **Aspose OCR Python** σε ένα εικονικό περιβάλλον. +- Γιατί η υπόδειξη γλωσσών (όπως Λατινικά και Κυριλλικά) επιταχύνει την ανίχνευση. +- Ο ακριβής κώδικας που χρειάζεται για **extract text from image python** με μία κλήση συνάρτησης. +- Συνηθισμένα προβλήματα όταν δουλεύετε με OCR πολλαπλών γλωσσών και πώς να τα αποφύγετε. + +### Prerequisites + +- Python 3.8 ή νεότερη εγκατεστημένη στο σύστημά σας. +- Ένα αρχείο άδειας Aspose OCR (`Aspose.OCR.Java.lic`). Η δωρεάν δοκιμή λειτουργεί για δοκιμές, αλλά ένα αδειοδοτημένο αρχείο αφαιρεί τα υδατογραφήματα. +- Μια εικόνα PNG/JPEG που περιέχει τόσο λατινικούς όσο και κυριλλικούς χαρακτήρες (θα την ονομάσουμε `mixed_latin_cyrillic.png`). + +Αν έχετε ελέγξει όλα τα παραπάνω, είστε έτοιμοι—δεν απαιτούνται επιπλέον frameworks ή βαριές εξαρτήσεις. + +--- + +## Step 1 – Extract Text from Image Python: Install Aspose OCR + +First thing’s first: get the library from PyPI and make sure your environment can locate the license file. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** Αν αντιμετωπίσετε σφάλμα δικαιωμάτων, προσθέστε `--user` στην εντολή `pip install` ή τρέξτε το τερματικό ως διαχειριστής. + +Τώρα που το πακέτο είναι στο σύστημά σας, θα το εισάγουμε και θα κατευθύνουμε τη μηχανή στην άδειά μας. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Γιατί χρειάζεται άδεια σε αυτό το στάδιο; Χωρίς αυτή η μηχανή λειτουργεί σε **λειτουργία αξιολόγησης**, η οποία περιορίζει τον αριθμό των σελίδων και προσθέτει υδατογράφημα στο αποτέλεσμα. Η παροχή της άδειας εκ των προτέρων εξασφαλίζει ότι η μετέπειτα κλήση `recognize` επιστρέφει καθαρό κείμενο. + +--- + +## Step 2 – Load Your Image with Mixed Latin‑Cyrillic Content + +Next, we bring the picture into memory. Aspose OCR works with its own `Image` class, which abstracts away the underlying file format. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Αν αναρωτιέστε αν λειτουργούν και άλλες μορφές—ναι, JPEG, BMP, TIFF, και ακόμη PDF υποστηρίζονται. Απλώς αλλάξτε την επέκταση του αρχείου και η μέθοδος `from_file` θα χειριστεί τα υπόλοιπα. + +--- + +## Step 3 – Hint Languages for Faster Detection (Optional but Helpful) + +When you know the languages present in the image, you can give the engine a heads‑up. This isn’t mandatory, but it **significantly reduces processing time** and improves accuracy for mixed‑language OCR. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +Η λίστα `language_hints` δέχεται οποιαδήποτε γλώσσα υποστηρίζεται από το Aspose OCR (π.χ., `"Arabic"`, `"Japanese"`). Αν παραλείψετε αυτό το βήμα, η μηχανή θα δοκιμάσει κάθε ενσωματωμένη γλώσσα, κάτι που μπορεί να είναι πιο αργό σε μεγάλες δέσμες. + +--- + +## Step 4 – Run the OCR Engine and Extract Text + +Now the moment of truth: actually recognise the characters. The `recognize` method returns an `OcrResult` object that holds the plain text, confidence scores, and even bounding boxes if you need them later. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Why this works:** Στο παρασκήνιο το Aspose OCR συνδυάζει έναν νευρωνικό ανιχνευτή κειμένου με ταξινομητές ειδικών γλωσσών. Με το να του δώσετε ένα αντικείμενο `Image`, παρακάμπτετε την ανάγκη για χειροκίνητη προεπεξεργασία όπως η δυαδικοποίηση. + +--- + +## Step 5 – View the Extracted Text + +Finally, let’s print the result to the console. In a real application you might write it to a file, push it to a database, or feed it into a translation API. + +```python +print("Recognised text:") +print(extracted_text) +``` + +When you run the script, you should see something like: + +``` +Recognised text: +Hello мир! This is a test. +``` + +That output confirms we successfully **extract text from image python**, handling both Latin and Cyrillic characters in a single pass. + +--- + +## Full Working Example + +Below is the complete script you can copy‑paste into a file called `extract_ocr.py`. Just replace the placeholder paths with your actual directories. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Save the file, activate your virtual environment, and run: + +```bash +python extract_ocr.py +``` + +You should see the recognised text printed, confirming the script works end‑to‑end. + +--- + +## Frequently Asked Questions & Edge Cases + +**What if the image is blurry?** +Aspose OCR includes built‑in de‑skewing and noise reduction, but for heavily degraded photos you might want to pre‑process with OpenCV (e.g., apply a Gaussian blur and threshold). The `Image` class can also accept a NumPy array, so you can chain custom filters before calling `recognize`. + +**Can I process a whole folder of images?** +Absolutely. Wrap the logic in a `for` loop, change `from_file` to read each filename, and store the results in a dictionary. Remember to respect API rate limits if you’re using the cloud version. + +**Do I need a separate license for each language?** +No, a single Aspose OCR license covers all supported languages. The `language_hints` list is just a performance hint. + +**What about PDF input?** +Replace `Image.from_file` with `ocr.Image.from_file("document.pdf")`. The OCR engine will automatically rasterise each page and return concatenated text. + +--- + +## Conclusion + +We’ve just shown a concise, production‑ready way to **extract text from image python** using Aspose OCR. The steps—install, license, load, hint languages, recognise, and display—cover everything you need to get reliable results for mixed Latin‑Cyrillic content. + +From here you could explore advanced topics like **image to text conversion** for batch processing, integrate the output with a **Python OCR tutorial** on natural‑language processing, or experiment with other language hints for multilingual documents. The sky’s the limit, and the code is already in your hands. + +Got a different use case or ran into an issue? Drop a comment, share your experience, and let’s keep the conversation going. Happy coding! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/greek/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..f04e8e8d1 --- /dev/null +++ b/ocr/greek/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Εξάγετε κείμενο από εικόνα άμεσα χρησιμοποιώντας το Aspose OCR. Μάθετε + πώς να ορίζετε περιοχή ενδιαφέροντος, να φορτώνετε εικόνα για OCR και να εξάγετε + κείμενο από τιμολόγιο σε λίγα μόνο λεπτά. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: el +og_description: Εξάγετε κείμενο από εικόνα χρησιμοποιώντας το Aspose OCR. Αυτός ο + οδηγός δείχνει πώς να ορίσετε την περιοχή ενδιαφέροντος, να φορτώσετε την εικόνα + για OCR και να εξάγετε κείμενο από τιμολόγιο αποτελεσματικά. +og_title: Εξαγωγή κειμένου από εικόνα με το Aspose OCR – Πλήρης οδηγός +tags: +- ocr +- python +- image-processing +title: Εξαγωγή κειμένου από εικόνα με Aspose OCR – Οδηγός βήμα‑βήμα +url: /el/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Εξαγωγή Κειμένου από Εικόνα με Aspose OCR – Οδηγός Βήμα‑βήμα + +Χρειάζεστε **εξαγωγή κειμένου από εικόνα** γρήγορα; Δεν είστε μόνοι—οι προγραμματιστές αντιμετωπίζουν συνεχώς θορυβώδεις σκαναρίσματα, αποδείξεις και τιμολόγια. Σε αυτό το tutorial θα περάσουμε από μια πλήρη λύση που όχι μόνο δείχνει πώς να *εξάγετε κείμενο από εικόνα* αλλά επίσης δείχνει πώς να **ορίσετε περιοχή ενδιαφέροντος**, **φορτώσετε εικόνα για OCR**, και να πάρετε τη συγκεκριμένη γραμμή που χρειάζεστε από ένα τιμολόγιο. + +Θα καλύψουμε τα πάντα, από την εγκατάσταση της βιβλιοθήκης Aspose OCR μέχρι τη διαχείριση ειδικών περιπτώσεων όπως σελίδες με περιστροφή. Στο τέλος, θα έχετε ένα εκτελέσιμο script που εξάγει το επιθυμητό κείμενο με μία κλήση—χωρίς χειροκίνητη περικοπή. + +## Τι Θα Μάθετε + +- Πώς να **φορτώσετε εικόνα για OCR** χρησιμοποιώντας το Python API της Aspose. +- Τον καλύτερο τρόπο για **ορισμό περιοχής ενδιαφέροντος** (ROI) ώστε να επεξεργάζεστε μόνο το μέρος της εικόνας που έχει σημασία. +- Πώς να **εξάγετε κείμενο από πεδία τιμολογίου** χωρίς να επεξεργάζεστε ολόκληρη τη σελίδα. +- Συμβουλές για **επεξεργασία εικόνας με OCR** αποδοτικά και αποφυγή κοινών παγίδων. + +**Προαπαιτούμενα** – περιβάλλον Python 3.9+ πρόσφατο, έγκυρο αρχείο άδειας Aspose OCR, και μια εικόνα (π.χ. ένα PNG τιμολογίου). Δεν απαιτούνται άλλα εξωτερικά εργαλεία. + +--- + +## Βήμα 1 – Αρχικοποίηση του OCR Engine (Κύρια Ρύθμιση) + +Πριν μπορέσετε να **επεξεργαστείτε εικόνα με OCR**, χρειάζεστε ένα αντικείμενο engine που να περιέχει την άδειά σας. Αυτό το βήμα είναι κρίσιμο επειδή ένα μη αδειοδοτημένο engine θα επιστρέψει μόνο περιορισμένο σύνολο αποτελεσμάτων. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Γιατί είναι σημαντικό*: Το αντικείμενο `OcrEngine` είναι η καρδιά της βιβλιοθήκης· διαχειρίζεται μοντέλα γλώσσας, προεπεξεργασία εικόνας και αδειοδότηση. Η ρύθμιση της άδειας εκ των προτέρων εξασφαλίζει πλήρη ακρίβεια και χωρίς υδατογραφήματα. + +--- + +## Βήμα 2 – Φόρτωση Εικόνας για OCR + +Τώρα που το engine είναι έτοιμο, πρέπει να **φορτώσετε εικόνα για OCR**. Η Aspose υποστηρίζει πολλές μορφές (PNG, JPEG, TIFF), αλλά η χρήση του `Image.from_file` εγγυάται ότι η εικόνα αποκωδικοποιείται σωστά. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Συμβουλή επαγγελματία**: Κρατήστε τα αρχεία εικόνας κάτω από 5 MB για τη γρηγορότερη επεξεργασία. Μεγαλύτερα αρχεία μπορούν να μειωθούν με `image.resize(width, height)` πριν το OCR. + +--- + +## Βήμα 3 – Ορισμός Περιοχής Ενδιαφέροντος (ROI) + +Τα περισσότερα τιμολόγια περιέχουν πολλά άσχετα κείμενα—μπλοκ διευθύνσεων, υποσέλιδα κ.λπ. Με το **ορισμό περιοχής ενδιαφέροντος** λέμε στο engine να κοιτάζει μόνο εκεί που βρίσκεται το ποσό ή η ημερομηνία, βελτιώνοντας την ταχύτητα και την ακρίβεια. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Πώς λειτουργεί*: Η κλάση `Rectangle` περικόπτει την εικόνα εικονικά· το OCR engine δεν βλέπει εικονοστοιχεία εκτός του ορθογωνίου, έτσι ο θόρυβος εκτός ROI αγνοείται. + +--- + +## Βήμα 4 – Αναγνώριση Κειμένου Μέσα στο ROI + +Με το engine, την εικόνα και το ROI έτοιμα, τελικά **εξάγουμε κείμενο από εικόνα**. Η μέθοδος `recognize` επιστρέφει ένα αντικείμενο `OcrResult` που περιέχει τη ανιχνευμένη συμβολοσειρά και τις βαθμολογίες εμπιστοσύνης. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Αναμενόμενο αποτέλεσμα** (παράδειγμα για τυπική γραμμή σύνοψης τιμολογίου): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Αν το ROI είναι σωστά τοποθετημένο, θα δείτε μόνο τη γραμμή που χρειάζεστε—τίποτα άλλο. + +--- + +## Βήμα 5 – Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +Παρακάτω βρίσκεται το πλήρες script που ενώνει όλα τα προηγούμενα βήματα. Αποθηκεύστε το ως `extract_invoice_roi.py` και τρέξτε `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Τρέξτε το script και θα πρέπει να δείτε τη στοχευμένη γραμμή να εκτυπώνεται στην κονσόλα. Αν λάβετε κενή συμβολοσειρά, ελέγξτε ξανά τις συντεταγμένες του ROI—μερικά pixel εκτός θέσης μπορεί να εξαιρέσουν εντελώς το κείμενο. + +--- + +## Βήμα 6 – Συνηθισμένες Παραλλαγές & Ακραίες Περιπτώσεις + +### α) Διαφορετικές διατάξεις τιμολογίων +Τιμολόγια από διαφορετικούς προμηθευτές συχνά μετατοπίζουν το πλαίσιο του συνολικού ποσού. Για να **επεξεργαστείτε εικόνα με OCR** σε πολλαπλές διατάξεις, σκεφτείτε: + +- **Πολλαπλά ROI**: Εκτελέστε το engine διαδοχικά με αρκετά ορθογώνια και επιλέξτε το αποτέλεσμα με τη μεγαλύτερη εμπιστοσύνη. +- **Δυναμική ανίχνευση ROI**: Χρησιμοποιήστε μια ελαφριά βιβλιοθήκη επεξεργασίας εικόνας (π.χ. OpenCV) για να εντοπίσετε πρώτα την ετικέτα “Total”, έπειτα υπολογίστε το ROI σχετικά με αυτήν. + +### β) Περιστρεφόμενες ή λοξές εικόνες +Αν το σκανάρισμα είναι κεκλιμένο, καλέστε `image.rotate(angle)` πριν από την αναγνώριση: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Η Aspose OCR προσφέρει επίσης αυτόματη ευθυγράμμιση, αλλά η χειροκίνητη περιστροφή σας δίνει πιο ακριβή έλεγχο. + +### γ) Μη‑Λατινικοί χαρακτήρες +Το προεπιλεγμένο μοντέλο γλώσσας είναι τα Αγγλικά. Για να **εξάγετε κείμενο από τιμολόγιο** γραμμένο σε άλλη γλώσσα, ορίστε τη γλώσσα πριν την αναγνώριση: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### δ) Μεγάλα PDF +Όταν δουλεύετε με πολυσελιδικά PDF, εξάγετε κάθε σελίδα ως εικόνα πρώτα (Aspose PDF → Image) και έπειτα εφαρμόστε την ίδια λογική ROI ανά σελίδα. + +--- + +## Βήμα 7 – Συμβουλές Απόδοσης & Pro Tips + +- **Cache το engine**: Η δημιουργία `OcrEngine` επανειλημμένα σε βρόχο επιβραδύνει. Δημιουργήστε το μία φορά και επαναχρησιμοποιήστε το. +- **Επεξεργασία σε παρτίδες**: Αν έχετε δεκάδες τιμολόγια, τυλίξτε την κλήση OCR σε ένα `ThreadPoolExecutor` για παράλληλη εκτέλεση I/O‑bound εργασιών. +- **Έλεγχος εμπιστοσύνης**: `ocr_result.confidence` δίνει τιμή μεταξύ 0 και 1. Απορρίψτε αποτελέσματα κάτω από 0.85 και επιστρέψτε σε μεγαλύτερο ROI ή σε χειροκίνητη ανασκόπηση. + +> **Προσοχή**: Ο ορισμός ROI πολύ μικρού μπορεί να κόψει χαρακτήρες, οδηγώντας σε ακατάλληλο αποτέλεσμα. Δοκιμάστε πάντα με μερικά δείγματα τιμολογίων πριν κλιμακώσετε. + +--- + +## Συμπέρασμα + +Τώρα έχετε μια σταθερή, έτοιμη για παραγωγή μέθοδο για **εξαγωγή κειμένου από εικόνα** χρησιμοποιώντας Aspose OCR, με δυνατότητα **ορισμού περιοχής ενδιαφέροντος**, **φόρτωσης εικόνας για OCR**, και αξιόπιστης **εξαγωγής κειμένου από πεδία τιμολογίου**. Περιορίζοντας το OCR σε στενό ROI αυξάνετε τόσο την ταχύτητα όσο και την ακρίβεια—ιδανικό για επεξεργασία χιλιάδων αποδείξεων. + +Έτοιμοι για το επόμενο βήμα; Δοκιμάστε να ενσωματώσετε αυτό το script σε ένα Flask API ώστε η web εφαρμογή σας να μπορεί να ανεβάσει ένα τιμολόγιο και να επιστρέφει αμέσως το συνολικό ποσό. Ή πειραματιστείτε με πολλαπλά ROI για να εξάγετε την ημερομηνία, τον αριθμό τιμολογίου και το όνομα προμηθευτή σε μία κλήση. Οι δυνατότητες είναι ατελείωτες, και με τα θεμέλια που καλύψαμε, είστε έτοιμοι να αντιμετωπίσετε οποιαδήποτε πρόκληση OCR. + +Καλή προγραμματιστική, και το εξαγόμενο κείμενό σας να είναι πάντα καθαρό! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Διάγραμμα ροής για εξαγωγή κειμένου από εικόνα χρησιμοποιώντας Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/greek/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..816b866bc --- /dev/null +++ b/ocr/greek/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-05-03 +description: Εξαγωγή κειμένου από εικόνα χρησιμοποιώντας το async OCR της Python. + Μάθετε πώς να μετατρέπετε tif σε κείμενο, να φορτώνετε εικόνα για OCR και να αναγνωρίζετε + κείμενο από εικόνα αποδοτικά. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: el +og_description: Αποκτήστε κείμενο από εικόνα χρησιμοποιώντας ασύγχρονο OCR σε Python. + Αυτός ο οδηγός δείχνει πώς να μετατρέψετε tif σε κείμενο, να φορτώσετε εικόνα για + OCR και να αναγνωρίσετε κείμενο από την εικόνα. +og_title: Εξαγωγή κειμένου από εικόνα με Python Async OCR – Πλήρης οδηγός +tags: +- OCR +- Python +- AsyncIO +title: Εξαγωγή κειμένου από εικόνα με Python Async OCR – Πλήρης οδηγός +url: /el/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Εξαγωγή Κειμένου από Εικόνα με Python Async OCR – Πλήρης Οδηγός + +Χρειάζεστε να **εξάγετε κείμενο από εικόνα** γρήγορα; Με το async OCR της Python μπορείτε να το κάνετε σε λίγες μόνο γραμμές κώδικα. Είτε εργάζεστε με μια τεράστια σάρωση .tif είτε με μερικά JPEG, αυτό το tutorial σας δείχνει πώς να μετατρέψετε tif σε κείμενο, να φορτώσετε εικόνα για OCR και τελικά να αναγνωρίσετε κείμενο από εικόνα χωρίς να μπλοκάρετε το event loop σας. + +Το θέμα είναι—οι περισσότεροι προγραμματιστές προτιμούν μια συγχρονική βιβλιοθήκη, μετά κοιτάζουν ένα παγωμένο UI ενώ η μηχανή επεξεργάζεται τα pixel. Σε αυτόν τον οδηγό θα αλλάξουμε την προσέγγιση χρησιμοποιώντας το ασύγχρονο API του Aspose OCR Cloud, ώστε η εφαρμογή σας να παραμένει ανταποκρινόμενη. Στο τέλος θα έχετε ένα εκτελέσιμο script που εξάγει κείμενο από οποιαδήποτε υποστηριζόμενη μορφή εικόνας, και θα κατανοήσετε το «γιατί» πίσω από κάθε βήμα. + +## Τι Θα Μάθετε + +- Πώς να ρυθμίσετε το Aspose OCR Cloud SDK για Python. +- Ο ακριβής κώδικας που απαιτείται για **φόρτωση εικόνας για OCR** και έναρξη μιας ασύγχρονης εργασίας αναγνώρισης. +- Συμβουλές για τη διαχείριση μεγάλων αρχείων .tif και ιδιαιτεροτήτων αδειοδότησης. +- Τρόποι για **εξαγωγή κειμένου από εικόνα** με ασφάλεια, ακόμη και όταν η υπηρεσία επιστρέφει σφάλματα. +- Ένα πλήρες, έτοιμο για αντιγραφή‑επικόλληση παράδειγμα που μπορείτε να ενσωματώσετε στο δικό σας έργο. + +> **Προαπαιτούμενο**: Python 3.8+ και αρχείο άδειας Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Δεν απαιτούνται άλλα πακέτα τρίτων. + +![extract text from image workflow](workflow.png){: .align-center alt="εξαγωγή κειμένου από εικόνα workflow"} + +## Εξαγωγή Κειμένου από Εικόνα – Επισκόπηση Async OCR + +Πριν βουτήξουμε στον κώδικα, ας αποσυσκευάσουμε τη ροή. Όταν καλείτε `recognize_async`, το SDK στέλνει την εικόνα στο cloud της Aspose, δημιουργεί μια εργασία στο παρασκήνιο και σας επιστρέφει ένα αντικείμενο `Task`. Η αναμονή αυτής της εργασίας δίνει ένα `OcrResult` που περιέχει την αναπαράσταση plain‑text της εικόνας. Επειδή η κλήση είναι ασύγχρονη, μπορείτε να εκκινήσετε πολλαπλές εργασίες παράλληλα—ιδανικό για επεξεργασία παρτίδας μεγάλων αρχείων σαρωμένων εγγράφων. + +### Γιατί να Χρησιμοποιήσετε Async; + +- **Μη‑μπλοκαριστικό I/O** – Το event loop σας παραμένει ελεύθερο για να διαχειρίζεται άλλες εργασίες (π.χ., εξυπηρέτηση HTTP αιτήσεων). +- **Κλιμακωσιμότητα** – Εκκινήστε δεκάδες αναγνωρίσεις ταυτόχρονα· το cloud κάνει το βαρέως φορτίου. +- **Ανταπόκριση** – Οι εφαρμογές UI δεν θα παγώσουν ενώ περιμένουν τον κινητήρα OCR. + +Τώρα που το «γιατί» είναι σαφές, ας δούμε το **πώς**. + +## Μετατροπή TIF σε Κείμενο Χρησιμοποιώντας Aspose OCR + +Ένα κοινό εμπόδιο είναι η υπόθεση ότι κάθε βιβλιοθήκη OCR υποστηρίζει εγγενώς .tif. Η Aspose το κάνει, αλλά πρέπει ακόμη να της δώσετε ένα αντικείμενο `Image`. Το SDK αφαιρεί την ανησυχία για τη μορφή, ώστε μπορείτε απλώς να του δώσετε τη διαδρομή του αρχείου. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Επεξήγηση βασικών γραμμών** + +- `ocr_engine.license = ...` – Χωρίς έγκυρη άδεια το cloud επιστρέφει σφάλμα 403. Βεβαιωθείτε ότι το αρχείο `.lic` είναι προσβάσιμο από τον τρέχοντα φάκελο του script σας. +- `ocr.Image.from_file(image_path)` – Αυτό το βήμα **φορτώνει εικόνα για OCR**· το SDK ανιχνεύει αυτόματα τη μορφή, έτσι δεν χρειάζεται να μετατρέψετε το .tif εκ των προτέρων. +- `recognize_async` – Επιστρέφει μια εργασία συμβατή με coroutine. Μπορείτε να εκκινήσετε αρκετές από αυτές σε κλήση `gather` αν έχετε παρτίδα. + +> **Συμβουλή επαγγελματία**: Αν επεξεργάζεστε TIFF μεγέθους gigabyte, σκεφτείτε να τα χωρίσετε πρώτα σε σελίδες. Το `Image.from_file` της Aspose μπορεί να δεχτεί δείκτη σελίδας, μειώνοντας την πίεση μνήμης. + +## Αναγνώριση Κειμένου από Εικόνα Ασύγχρονα + +Ας δούμε πώς θα καλέσετε τη συνάρτηση από ένα τυπικό script. Το σημείο εισόδου `asyncio.run` είναι ο πιο απλός τρόπος για να εκκινήσετε το coroutine όταν δεν βρίσκεστε ήδη μέσα σε event loop (π.χ., σε απλό CLI εργαλείο). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Τι να περιμένετε** + +Η εκτέλεση του script σε μια καθαρή, υψηλής ανάλυσης σάρωση συνήθως αποδίδει μια πολυγραμμική συμβολοσειρά που ταιριάζει με τη τυπωμένη σελίδα. Αν η εικόνα είναι θορυβώδης, η Aspose προσπαθεί ακόμη να την καθαρίσει, αλλά μπορεί να δείτε παραμορφωμένους χαρακτήρες. Σε αυτήν την περίπτωση, σκεφτείτε προεπεξεργασία με OpenCV (π.χ., κατωφλίωση) πριν δώσετε το αρχείο στη μηχανή OCR. + +### Διαχείριση Σφαλμάτων με Ευγένεια + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Το σύλληψη του `OcrException` εξασφαλίζει ότι το πρόγραμμά σας δεν θα καταρρεύσει όταν το cloud επιστρέφει σφάλμα—κάτι που συχνά παρεκκλίνει τους νέους χρήστες που ξεχνούν τις διακοπές δικτύου. + +## Φόρτωση Εικόνας για OCR – Πρακτικές Συμβουλές + +1. **Διαδρομή Αρχείου vs. Bytes** – Το SDK δέχεται διαδρομή αρχείου, αλλά μπορείτε επίσης να φορτώσετε από αντικείμενο `bytes` αν η εικόνα βρίσκεται στη μνήμη (`ocr.Image.from_bytes`). Αυτό είναι χρήσιμο όταν έχετε ήδη κατεβάσει το αρχείο από S3 ή βάση δεδομένων. +2. **Υποστηριζόμενες Μορφές** – Εκτός από .tif, η Aspose διαχειρίζεται PDF, BMP, GIF και ακόμη και πολυ‑σελίδες TIFF. Χρησιμοποιήστε `Image.from_file("doc.pdf")` για άμεση OCR PDF. +3. **Απόδοση** – Για εργασίες παρτίδας, επαναχρησιμοποιήστε το ίδιο αντικείμενο `OcrEngine`; η δημιουργία νέου engine για κάθε αρχείο προσθέτει περιττό κόστος. + +## Πλήρες Παράδειγμα Εργασίας (Όλα τα Βήματα σε Ένα Script) + +Παρακάτω βρίσκεται το πλήρες, έτοιμο για εκτέλεση script που ενσωματώνει αδειοδότηση, διαχείριση σφαλμάτων και έναν απλό parser επιχειρημάτων γραμμής εντολών. Αντιγράψτε‑επικολλήστε το, προσαρμόστε τη διαδρομή της άδειας, και είστε έτοιμοι. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Αναμενόμενο αποτέλεσμα** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Αν η εικόνα περιέχει μια απλή παράγραφο, η κονσόλα θα εμφανίσει τις ίδιες γραμμές, διατηρώντας τις αλλαγές γραμμής. Για πολυ‑σελίδες TIFF, το SDK ενώνει τις σελίδες με τη σωστή σειρά. + +## Συχνές Ερωτήσεις (FAQ) + +**Q: Λειτουργεί αυτό με άλλα async frameworks όπως το FastAPI;** +A: Απόλυτα. Αντικαταστήστε την κλήση `asyncio.run` με `await async_ocr(path)` μέσα στο endpoint σας, και το FastAPI θα διαχειριστεί το event loop για εσάς. + +**Q: Τι γίνεται αν χρειαστεί να επεξεργαστώ εκατοντάδες αρχεία ταυτόχρονα;** +A: Χρησιμοποιήστε `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Μπορώ να εξάγω κείμενο από PDF προστατευμένο με κωδικό;** +A: Όχι άμεσα. Πρέπει πρώτα να ξεκλειδώσετε το PDF (π.χ., με `pikepdf`) και μετά να δώσετε τα αποσυμπιεσμένα bytes στο `ocr.Image.from_bytes`. + +**Q: Πώς διαχειρίζομαι γλώσσες εκτός της Αγγλικής;** +A: Ορίστε τη γλώσσα πριν από την αναγνώριση: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Η Aspose υποστηρίζει πάνω από 60 γλώσσες· ελέγξτε την τεκμηρίωση για τους ακριβείς αναγνωριστικούς κωδικούς. + +## Συμπέρασμα + +Τώρα έχετε μια σταθερή, **εξαγωγή κειμένου από εικόνα** λύση που αξιοποιεί το `asyncio` της Python και το ασύγχρονο API του Aspose OCR Cloud. Ακολουθώντας τα παραπάνω βήματα μπορείτε να **μετατρέψετε tif σε κείμενο**, **φορτώσετε εικόνα για OCR**, και να **αναγνωρίσετε κείμενο από εικόνα** με μη‑μπλοκαριστικό τρόπο—ιδανικό τόσο για εργαλεία γραμμής εντολών όσο και για υπηρεσίες web υψηλής κίνησης. + +Τι ακολουθεί; Δοκιμάστε την παρτίδα ενός φακέλου σαρώσεων, πειραματιστείτε με τις ρυθμίσεις γλώσσας, ή διοχετεύστε το αποτέλεσμα OCR σε μια επόμενη NLP 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/greek/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/greek/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..809703e3b --- /dev/null +++ b/ocr/greek/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Εξάγετε κείμενο OCR γρήγορα χρησιμοποιώντας το Aspose OCR. Μάθετε πώς + να βελτιώσετε την ακρίβεια του OCR, να φορτώσετε εικόνα OCR, να προεπεξεργαστείτε + εικόνα OCR και να εκτελέσετε σάρωση OCR σε Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: el +og_description: Εξάγετε κείμενο OCR γρήγορα χρησιμοποιώντας το Aspose OCR. Μάθετε + πώς να βελτιώσετε την ακρίβεια του OCR, να φορτώσετε εικόνα OCR, να προεπεξεργαστείτε + εικόνα OCR και να εκτελέσετε σάρωση OCR σε Python. +og_title: Εξαγωγή κειμένου OCR – Πλήρης Οδηγός με το Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Εξαγωγή κειμένου OCR – Πλήρης Οδηγός με το Aspose OCR +url: /el/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# εξαγωγή κειμένου ocr – Πλήρης Οδηγός με Aspose OCR + +Κάποτε χρειάστηκε να **extract text ocr** από μια ασταθή σάρωση αλλά δεν ήξερες γιατί τα αποτελέσματα έμοιαζαν με ακαταλαβίστικα; Δεν είσαι μόνος—πολλοί προγραμματιστές αντιμετωπίζουν το ίδιο πρόβλημα όταν η εικόνα είναι κεκλιμένη, θορυβώδης ή απλώς χαμηλής αντίθεσης. Τα καλά νέα είναι ότι με λίγες ρυθμίσεις διαμόρφωσης μπορείς να μετατρέψεις μια ακατάστατη εικόνα σε καθαρό, αναζητήσιμο κείμενο. Σε αυτό το tutorial θα περάσουμε από ένα πλήρες, end‑to‑end παράδειγμα που δείχνει πώς να **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, και τελικά να εκτελέσεις OCR scan με Aspose OCR for Python. + +Στο τέλος αυτού του οδηγού θα έχεις ένα εκτελέσιμο script που διαβάζει ένα σκαναρισμένο JPEG, το καθαρίζει αυτόματα και εκτυπώνει το εξαγόμενο κείμενο στην κονσόλα. Χωρίς μυστικούς συνδέσμους “δείτε τα docs”—όλα όσα χρειάζεσαι είναι εδώ. + +## Τι Θα Χρειαστείτε + +- **Python 3.8+** (η τελευταία σταθερή έκδοση λειτουργεί καλύτερα) +- **Aspose.OCR for Python via .NET** – εγκαταστήστε με `pip install aspose-ocr` +- Ένα **license file** (`Aspose.OCR.Java.lic`) εάν έχετε αγοράσει (η δωρεάν δοκιμή λειτουργεί για δοκιμές) +- Μια εικόνα που θέλετε να επεξεργαστείτε (π.χ., `skewed_scanned_doc.jpg`) + +Αυτό είναι όλο. Αν έχετε αυτά τα στοιχεία, μπορούμε να περάσουμε κατευθείαν στον κώδικα. + +## Βήμα 1: Extract Text OCR με Aspose OCR Engine + +Το πρώτο που κάνετε είναι να εκκινήσετε τη μηχανή OCR και να εφαρμόσετε την άδειά σας. Σκεφτείτε τη μηχανή ως τον εγκέφαλο που θα διαβάσει την εικόνα· χωρίς άδεια θα αρνηθεί να λειτουργήσει πέρα από ένα μικρό όριο demo. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Γιατί είναι σημαντικό:** Η εφαρμογή της άδειας εκ των προτέρων αποτρέπει μια σιωπηλή αποτυχία αργότερα. Αν παραλείψετε αυτό το βήμα, η μηχανή θα επιστρέψει σε περιορισμένη λειτουργία και θα λάβετε μόνο λίγους χαρακτήρες—σίγουρα όχι αυτό που περιμένετε όταν προσπαθείτε να **extract text ocr**. + +## Βήμα 2: Improve OCR Accuracy με Pre‑processing + +Οι σάρωσες που είναι στραβές ή θορυβώδεις είναι η αδυναμία κάθε έργου OCR. Η Aspose σας επιτρέπει να ενεργοποιήσετε μια σειρά χρήσιμων ρυθμίσεων που αυτόματα διορθώνουν την κλίση, αφαιρούν θόρυβο και αυξάνουν την αντίθεση. Αυτό είναι η καρδιά του **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – περιστρέφει την εικόνα πίσω στην οριζόντια θέση, κάτι κρίσιμο όταν το αρχικό έγγραφο δεν ήταν τέλεια επίπεδο. +- **remove_noise** – αφαιρεί τυχαίες κηλίδες που εμφανίζονται συχνά σε JPEG χαμηλής ανάλυσης. +- **enhance_contrast** – κάνει το σκοτεινό κείμενο πιο σκοτεινό και το φωτεινό φόντο πιο φωτεινό, βοηθώντας τη μηχανή να διακρίνει τους χαρακτήρες. +- **binarization = "Otsu"** – ένας κλασικός αλγόριθμος που αποφασίζει το βέλτιστο όριο για μετατροπή σε ασπρόμαυρο. + +> **Συμβουλή:** Αν ξέρετε ότι οι πηγές εικόνων είναι ήδη καθαρές, μπορείτε να απενεργοποιήσετε αυτές τις επιλογές για να επιταχύνετε την επεξεργασία. Αλλά για τις περισσότερες πραγματικές σάρωσες, η ενεργοποίηση τους είναι η πιο ασφαλής επιλογή. + +## Βήμα 3: Load Image OCR για Σάρωση + +Τώρα που η μηχανή είναι έτοιμη, πρέπει να **load image ocr**. Η μέθοδος `Image.from_file` της Aspose υποστηρίζει JPEG, PNG, TIFF και μερικές ακόμη μορφές. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Αντικαταστήστε το `YOUR_DIRECTORY` με την πραγματική διαδρομή στο μηχάνημά σας. Αν εργάζεστε με ροή byte στη μνήμη (π.χ., από ανέβασμα στο web), μπορείτε επίσης να χρησιμοποιήσετε `ocr.Image.from_bytes(byte_data)`—η ίδια μηχανή θα το διαχειριστεί. + +> **Περίπτωση άκρης:** Τα μεγάλα αρχεία TIFF μπορεί να καταναλώνουν πολύ μνήμη. Αν αντιμετωπίσετε `MemoryError`, σκεφτείτε να μειώσετε την ανάλυση της εικόνας πρώτα ή να χρησιμοποιήσετε `ocr_engine.config.max_image_size` για να περιορίσετε τις διαστάσεις. + +## Βήμα 4: Run OCR Scan και Λήψη Αποτελεσμάτων + +Με την εικόνα φορτωμένη και την προεπεξεργασία ενεργοποιημένη, το τελικό βήμα είναι να **run OCR scan**. Αυτή η κλήση κάνει όλη τη βαριά δουλειά στο παρασκήνιο. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Το αντικείμενο `ocr_result` περιέχει αρκετές χρήσιμες ιδιότητες: + +- `ocr_result.text` – η απλή συμβολοσειρά που σας ενδιαφέρει. +- `ocr_result.confidence` – ένας αριθμητικός δείκτης (0‑100) που υποδεικνύει τη συνολική αξιοπιστία. +- `ocr_result.words` – μια λίστα αντικειμένων λέξεων με συντεταγμένες bounding box, χρήσιμη για επισήμανση. + +## Βήμα 5: Εκτύπωση του Εξαγόμενου Κειμένου + +Τέλος, εμφανίζουμε το αποτέλεσμα. Σε μια πραγματική εφαρμογή μπορεί να γράψετε το κείμενο σε αρχείο, βάση δεδομένων ή να το τροφοδοτήσετε σε ευρετήριο αναζήτησης. Για αυτό το tutorial, ένα απλό `print` αρκεί. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Αναμενόμενη έξοδος** (παράδειγμα για απλό τιμολόγιο): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Αν η εμπιστοσύνη είναι χαμηλή (< 80), ίσως θελήσετε να επανεξετάσετε τις επιλογές προεπεξεργασίας ή να δοκιμάσετε διαφορετική μέθοδο binarization όπως `"Sauvola"`. + +## Bonus: Οπτικοποίηση της Διαδικασίας Προ‑επεξεργασίας (Προαιρετικό) + +Μερικές φορές βοηθά να δείτε τι έκανε η μηχανή στην εικόνα. Η Aspose σας επιτρέπει να εξάγετε το επεξεργασμένο bitmap: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Μπορείτε τότε να ενσωματώσετε την εικόνα στην τεκμηρίωση: + +διάγραμμα ροής εξαγωγής κειμένου ocr που δείχνει τα βήματα προεπεξεργασίας + +> **Γιατί θα το κάνατε:** Όταν το αποτέλεσμα OCR φαίνεται λανθασμένο, μια γρήγορη ματιά στο `processed_debug.png` συχνά αποκαλύπτει αν η εικόνα ήταν ακόμα πολύ σκοτεινή, ακόμα κεκλιμένη ή είχε υπόλοιπο θόρυβο. + +## Συχνές Ερωτήσεις & Παγίδες + +- **Τι γίνεται αν το έγγραφό μου είναι πολλαπλών σελίδων;** + Η Aspose OCR λειτουργεί σελίδα‑με‑σελίδα. Επαναλάβετε για κάθε εικόνα σελίδας και συνενώστε το `ocr_result.text`. + +- **Μπορώ να αναγνωρίσω γλώσσες εκτός της Αγγλικής;** + Ναι—ορίστε `ocr_engine.config.language = "fra"` (ή οποιονδήποτε κωδικό ISO‑639‑2) πριν καλέσετε `recognize`. + +- **Υπάρχει όριο στο μέγεθος της εικόνας;** + Η μηχανή περιορίζει σε 10 MP εξ ορισμού. Αυξήστε το `ocr_engine.config.max_image_size` αν χρειάζεστε μεγαλύτερες σάρωσες, αλλά παρακολουθείτε τη χρήση μνήμης. + +- **Χρειάζομαι ξεχωριστή μηχανή OCR για PDFs;** + Για PDFs μπορείτε είτε να εξάγετε κάθε σελίδα ως εικόνα πρώτα (χρησιμοποιώντας Aspose.PDF) είτε να χρησιμοποιήσετε την ενσωματωμένη λειτουργία PDF OCR. Τα βήματα που εμφανίζονται εδώ παραμένουν τα ίδια αφού έχετε μια εικόνα. + +## Ανακεφαλαίωση + +Συζητήσαμε πώς να **extract text ocr** χρησιμοποιώντας Aspose OCR για Python, από την αδειοδότηση της μηχανής μέχρι τη ρύθμιση παραμέτρων που **improve ocr accuracy**, τη φόρτωση του αρχείου πηγής, και τελικά **run OCR scan** για να εξάγετε καθαρό κείμενο. Το πλήρες script είναι έτοιμο για αντιγραφή‑επικόλληση, και τώρα καταλαβαίνετε γιατί κάθε σημαία διαμόρφωσης είναι σημαντική. + +## Τι Ακολουθεί; + +- **Δοκιμάστε διαφορετικές μεθόδους binarization** (`"Sauvola"`, `"Bradley"`). Ορισμένες γραμματοσειρές ανταποκρίνονται καλύτερα σε προσαρμοστικά όρια. +- **Ενσωματώστε με μηχανή αναζήτησης** (π.χ., Elasticsearch) χρησιμοποιώντας το σκορ εμπιστοσύνης για κατάταξη των αποτελεσμάτων. +- **Συνδυάστε με βιβλιοθήκες post‑processing OCR** όπως `pyspellchecker` για να καθαρίσετε κοινές λανθασμένες αναγνώσεις. +- **Εξερευνήστε επεξεργασία παρτίδας** για εκατοντάδες σάρωσες—συμπτύξτε τα βήματα σε μια συνάρτηση και δώστε του έναν φάκελο εικόνων. + +Μη διστάσετε να τροποποιήσετε τον κώδικα, να προσθέσετε το δικό σας logging, ή να τον ενσωματώσετε σε μια μεγαλύτερη αλυσίδα διαχείρισης εγγράφων. Αν αντιμετωπίσετε προβλήματα, αφήστε ένα σχόλιο παρακάτω—καλή προγραμματιστική! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/greek/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..bb3dec4f3 --- /dev/null +++ b/ocr/greek/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Πώς να κάνετε OCR σε PDF χρησιμοποιώντας το Aspose OCR Java. Μάθετε πώς + να εκτελείτε OCR σε PDF, να αναγνωρίζετε κείμενο σε PDF, να μετατρέπετε PDF σε JSON + και να φορτώνετε PDF για OCR με λίγες μόνο γραμμές κώδικα. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: el +og_description: Πώς να κάνετε OCR σε PDF χρησιμοποιώντας το Aspose OCR Java. Αυτός + ο οδηγός δείχνει πώς να εκτελέσετε OCR σε PDF, να αναγνωρίσετε κείμενο PDF, να μετατρέψετε + PDF σε JSON και να φορτώσετε PDF για OCR γρήγορα. +og_title: Πώς να κάνετε OCR PDF με το Aspose OCR – Πλήρης προγραμματιστικός οδηγός +tags: +- Aspose OCR +- Java +- PDF processing +title: Πώς να κάνετε OCR σε PDF με το Aspose OCR – Πλήρης Οδηγός Βήμα‑βήμα +url: /el/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να κάνετε OCR PDF με Aspose OCR – Πλήρης Οδηγός Βήμα‑βήμα + +Έχετε αναρωτηθεί ποτέ **πώς να κάνετε OCR PDF** χωρίς να παλεύετε με εργαλεία γραμμής εντολών ή να πληρώνετε για ακριβές SaaS; Δεν είστε οι μόνοι. Σε πολλά έργα—αυτοματοποίηση τιμολογίων, αρχειοθέτηση σαρωμένων συμβάσεων ή δημιουργία αναζητήσιμης βάσης γνώσεων—θα συναντήσετε την ανάγκη εξαγωγής κειμένου από PDF γρήγορα και αξιόπιστα. + +Τα καλά νέα; Με το Aspose OCR για Java μπορείτε **να εκτελέσετε OCR σε PDF**, να αναγνωρίσετε κείμενο σε σελίδες PDF, **να μετατρέψετε PDF σε JSON**, και ακόμη **να φορτώσετε PDF για OCR** με λίγες γραμμές κώδικα. Σε αυτό το tutorial θα περάσουμε από όλη τη ροή εργασίας, θα εξηγήσουμε γιατί κάθε βήμα είναι σημαντικό, και θα σας δώσουμε ένα έτοιμο δείγμα κώδικα που μπορείτε να ενσωματώσετε στο δικό σας έργο. + +## Τι Θα Μάθετε + +- Πώς να ρυθμίσετε τη μηχανή Aspose OCR και να εφαρμόσετε την άδειά σας. +- Τον ακριβή τρόπο **φόρτωσης PDF για OCR** και τροφοδοσίας του αναγνωριστή. +- Πώς να **αναγνωρίσετε κείμενο PDF** σε όλες τις σελίδες με μία κλήση. +- Εξαγωγή του πλήρους αποτελέσματος OCR σε αρχείο **JSON** (τέλειο για downstream APIs) και μιας μόνο σελίδας σε **XML**. +- Συμβουλές, παγίδες και παραλλαγές που μπορεί να χρειαστείτε όταν δουλεύετε με PDF πολλαπλών σελίδων ή προσαρμοσμένα πακέτα γλώσσας. + +> **Prerequisites** – Χρειάζεστε Java 8 ή νεότερη, ένα έγκυρο αρχείο άδειας Aspose OCR for Java (`Aspose.OCR.Java.lic`), και το JAR του Aspose OCR στο classpath σας. Δεν απαιτούνται άλλες εξωτερικές βιβλιοθήκες. + +--- + +## Πώς να κάνετε OCR PDF – Αρχικοποίηση Μηχανής Aspose OCR + +Το πρώτο που πρέπει να κάνετε είναι να δημιουργήσετε μια παρουσία του `OcrEngine` και να προσθέσετε την άδειά σας. Αυτό το βήμα ξεκλειδώνει το πλήρες σύνολο λειτουργιών και αφαιρεί το υδατογράφημα αξιολόγησης. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Γιατί είναι σημαντικό:** +Χωρίς άδεια, το Aspose OCR λειτουργεί σε περιορισμένη “δοκιμαστική” λειτουργία που περιορίζει τον αριθμό σελίδων και προσθέτει υδατογράφημα στο αποτέλεσμα. Η εφαρμογή της άδειας εκ των προτέρων εξασφαλίζει ότι το υπόλοιπο pipeline λειτουργεί χωρίς απρόσμερους περιορισμούς. + +--- + +## Εκτέλεση OCR σε PDF – Φόρτωση Εγγράφου και Αναγνώριση Κειμένου + +Τώρα **φορτώνουμε PDF για OCR**. Το Aspose OCR αντιμετωπίζει τα PDF ως ειδικό τύπο `PdfDocument`, ο οποίος εσωτερικά εξάγει κάθε σελίδα ως εικόνα πριν την τροφοδοτήσει στον αναγνωριστή. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Τι συμβαίνει στο παρασκήνιο;** +`recognizeDocument` επαναλαμβάνει κάθε σελίδα, την rasterizes στο βέλτιστο DPI, και στη συνέχεια εκτελεί τη μηχανή OCR. Το αποτέλεσμα είναι ένας πίνακας `OcrPage` όπου κάθε στοιχείο περιέχει το ανιχνευμένο κείμενο, τις βαθμολογίες εμπιστοσύνης και τις πληροφορίες διάταξης. Αυτή η προσέγγιση είναι πολύ πιο αξιόπιστη από το να τροφοδοτείτε ακατέργαστα bytes PDF σε μια γενική βιβλιοθήκη OCR. + +--- + +## Μετατροπή Αποτελέσματος OCR σε JSON – Εξαγωγή Πλήρης Αναφοράς + +Τα περισσότερα downstream συστήματα προτιμούν JSON επειδή είναι εύκολο να αποσαρφηνιστεί σε Java, JavaScript, Python ή ακόμη και PowerShell. Το Aspose OCR παρέχει έναν βοηθό `JsonExport` που σειριοποιεί ολόκληρο τον πίνακα `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Πότε θα το χρησιμοποιούσατε;** +Αν χρειάζεται να τροφοδοτήσετε το αποτέλεσμα OCR σε έναν δείκτη αναζήτησης (Elasticsearch, Solr) ή σε ένα data‑pipeline, η μορφή JSON σας δίνει μια δομημένη αναπαράσταση κάθε σελίδας, γραμμής και λέξης, πλήρης με τιμές εμπιστοσύνης. + +--- + +## Εξαγωγή Πρώτης Σελίδας σε XML – Αποθήκευση Ατομικής Σελίδας + +Μερικές φορές σας ενδιαφέρει μόνο μια σελίδα—ίσως η πρώτη σελίδα περιέχει έναν τίτλο ή έναν αριθμό τιμολογίου. Η κλάση `XmlExport` σας επιτρέπει να αποθηκεύσετε μια μοναδική `OcrPage` σε ένα τακτοποιημένο αρχείο XML. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Γιατί XML;** +Παραδοσιακά συστήματα ή ορισμένες επιχειρησιακές ροές εξακολουθούν να βασίζονται σε σχήματα XML για εισαγωγή. Το παραγόμενο αρχείο ακολουθεί το δικό του σχήμα του Aspose, καθιστώντας την επικύρωση απλή. + +--- + +## Επαλήθευση του Αποτελέσματος – Έλεγχος Αρχείων JSON και XML + +Μετά το τέλος του προγράμματος, θα πρέπει να δείτε δύο αρχεία στο `YOUR_DIRECTORY`: + +- `report_ocr.json` – Περιέχει έναν πίνακα αντικειμένων σελίδας. Ένα γρήγορο απόσπασμα μπορεί να μοιάζει με: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Περιέχει τις ίδιες πληροφορίες για τη σελίδα 1, τυλιγμένες σε ετικέτες ``. + +Ανοίξτε τα σε οποιονδήποτε επεξεργαστή· θα δείτε τις ακατέργαστες αλφαριθμητικές αλυσίδες OCR, τις βαθμολογίες εμπιστοσύνης και τις συντεταγμένες των bounding‑box. Αν το JSON φαίνεται κενό, ελέγξτε ξανά ότι το εισερχόμενο PDF περιέχει πραγματικό rasterized περιεχόμενο (σκαναρισμένες εικόνες) και όχι επιλέξιμο κείμενο—το Aspose OCR λειτουργεί μόνο σε εικόνες. + +--- + +## Συνηθισμένα Προβλήματα & Επαγγελματικές Συμβουλές + +| Πρόβλημα | Γιατί συμβαίνει | Διόρθωση | +|----------|----------------|----------| +| **Κενό JSON** | Το PDF περιέχει εγγενές κείμενο, όχι εικόνες. | Χρησιμοποιήστε `PdfDocument.fromFile(..., true)` για να εξαναγκάσετε rasterization, ή προ‑μετατρέψτε τις σελίδες σε εικόνες. | +| **Χαμηλή εμπιστοσύνη** | Το πηγαίο PDF είναι χαμηλής ανάλυσης ή πολύ συμπιεσμένο. | Αυξήστε το DPI καλώντας `ocrEngine.getImageProcessingOptions().setDpi(300)` πριν το `recognizeDocument`. | +| **Άδεια δεν βρέθηκε** | Λάθος διαδρομή ή λείπει το αρχείο. | Χρησιμοποιήστε απόλυτη διαδρομή ή τοποθετήστε το αρχείο `.lic` στο classpath και καλέστε `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Έλλειψη μνήμης σε τεράστια PDF** | Όλες οι σελίδες φορτώνονται στη μνήμη ταυτόχρονα. | Επεξεργαστείτε τις σελίδες σε παρτίδες: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Επέκταση του Παραδείγματος + +- **Εκτέλεση OCR σε PDF με συγκεκριμένη γλώσσα** – ορίστε `ocrEngine.getLanguage().setLanguage(Language.English)` ή φορτώστε προσαρμοσμένο πακέτο γλώσσας. +- **Εξαγωγή κάθε σελίδας σε ξεχωριστά αρχεία JSON** – επαναλάβετε πάνω στο `ocrPages` και καλέστε `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Ενσωμάτωση με μηχανή αναζήτησης** – τροφοδοτήστε το JSON στον επεξεργαστή `attachment` του Elasticsearch για πλήρη αναζήτηση κειμένου. + +--- + +## Συμπέρασμα + +Τώρα έχετε μια πλήρη, έτοιμη για παραγωγή λύση για **πώς να κάνετε OCR PDF** χρησιμοποιώντας το Aspose OCR για Java. Αρχικοποιώντας τη μηχανή, φορτώνοντας το PDF, εκτελώντας OCR και εξάγοντας τόσο **JSON** όσο και **XML**, μπορείτε να ενσωματώσετε OCR σε οποιαδήποτε ροή backend—είτε χρειάζεστε **να εκτελέσετε OCR σε PDF**, **να αναγνωρίσετε κείμενο PDF**, **να μετατρέψετε PDF σε JSON**, ή απλώς **να φορτώσετε PDF για OCR**. + +Δοκιμάστε το, προσαρμόστε το DPI ή τις ρυθμίσεις γλώσσας, και παρακολουθήστε τα προηγουμένως αδιαφανή PDF σας να γίνονται αναζητήσιμα περιουσιακά στοιχεία. Χρειάζεστε κάτι παραπάνω; Δοκιμάστε την ευρετηρίαση του JSON σε Elasticsearch, ή επεξεργαστείτε το XML με XSLT για να δημιουργήσετε προσαρμοσμένες αναφορές. + +Καλή προγραμματιστική, και εύχομαι τα 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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/greek/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..58418d371 --- /dev/null +++ b/ocr/greek/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'πώς να εκτελέσετε OCR γρήγορα: μάθετε να εξάγετε κείμενο από εικόνα + και να αναγνωρίζετε κείμενο από φόρμα χρησιμοποιώντας Aspose OCR Java. Απλά βήματα + για την ανάγνωση εικόνας για OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: el +og_description: 'πώς να εκτελέσετε OCR γρήγορα: μάθετε να εξάγετε κείμενο από εικόνα + και να αναγνωρίζετε κείμενο από φόρμα χρησιμοποιώντας Aspose OCR Java. Απλά βήματα + για την ανάγνωση εικόνας για OCR.' +og_title: πώς να εκτελέσετε OCR σε μια φόρμα – εξαγωγή κειμένου από εικόνα +tags: +- ocr +- java +- image-processing +title: πώς να εκτελέσετε OCR σε μια φόρμα – εξαγωγή κειμένου από εικόνα +url: /el/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# πώς να εκτελέσετε ocr σε μια φόρμα – εξαγωγή κειμένου από εικόνα + +Έχετε αναρωτηθεί ποτέ **πώς να εκτελέσετε ocr** σε ένα σαρωμένο έγγραφο χωρίς να ξοδεύετε ώρες παίζοντας με άγνωστες βιβλιοθήκες; Δεν είστε μόνοι. Σε πολλά έργα—είτε πρόκειται για ψηφιοποίηση τιμολογίων, αρχειοθέτηση συμβάσεων, ή εξαγωγή δεδομένων από χειρόγραφα έντυπα—η δυνατότητα **εξαγωγής κειμένου από εικόνα** αρχείων είναι ένα καθημερινό πρόβλημα. + +Το θέμα είναι το εξής: το Aspose OCR for Java κάνει ολόκληρη τη διαδικασία σχεδόν άνετη. Σε αυτόν τον οδηγό θα περάσουμε από κάθε γραμμή κώδικα που χρειάζεστε για να **αναγνωρίσετε κείμενο από φόρμα** αρχεία, θα εξηγήσουμε γιατί κάθε βήμα είναι σημαντικό, και θα σας δείξουμε πώς να **διαβάσετε την εικόνα για ocr** αποτελέσματα με βαθμολογίες εμπιστοσύνης. Στο τέλος θα έχετε μια έτοιμη‑για‑εκτέλεση κλάση Java που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο Maven ή Gradle. + +## Τι Θα Μάθετε + +- Ρυθμίστε τη μηχανή Aspose OCR και εφαρμόστε την άδειά σας. +- Φορτώστε ένα JPEG, PNG ή TIFF στη μνήμη. +- Εκτελέστε OCR και επαναλάβετε πάνω σε κάθε γραμμή αναγνωρισμένου κειμένου. +- Εντοπίστε γραμμές χαμηλής εμπιστοσύνης για χειροκίνητη ανασκόπηση. +- Επεκτείνετε το παράδειγμα σε πολυσελίδες PDF ή διαφορετικές μορφές εικόνας. + +Δεν απαιτείται προηγούμενη εμπειρία με το Aspose, απλώς ένα βασικό περιβάλλον ανάπτυξης Java (JDK 11+ και οποιοδήποτε IDE προτιμάτε). Ας ξεκινήσουμε. + +![how to run ocr example](/images/ocr-demo.png){alt="πώς να εκτελέσετε ocr σε ένα σαρωμένο έντυπο παράδειγμα"} + +## Βήμα 1: Αρχικοποίηση της Μηχανής OCR – **πώς να εκτελέσετε ocr** + +Το πρώτο πράγμα που πρέπει να κάνετε πριν από οποιαδήποτε λειτουργία OCR είναι να δημιουργήσετε μια παρουσία `OcrEngine` και να συνδέσετε μια έγκυρη άδεια. Χωρίς άδεια η βιβλιοθήκη λειτουργεί σε λειτουργία demo, η οποία περιορίζει τον αριθμό των σελίδων που μπορείτε να επεξεργαστείτε. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Γιατί είναι σημαντικό:** +Η `OcrEngine` κρατά όλες τις ρυθμίσεις—γλώσσα, λειτουργία ανίχνευσης και βελτιώσεις απόδοσης. Ορίζοντας την άδεια εκ των προτέρων αποφεύγετε την σιωπηρή μετάβαση σε λειτουργία δοκιμής που διαφορετικά θα περικόπτει το αποτέλεσμα σας. + +## Βήμα 2: Φόρτωση της Εικόνας – **εξαγωγή κειμένου από εικόνα** + +Στη συνέχεια χρειαζόμαστε ένα αντικείμενο `Image` που να δείχνει στο αρχείο που θέλετε να σαρώσετε. Το Aspose υποστηρίζει μια ευρεία γκάμα μορφών, ώστε να μπορείτε να τροφοδοτήσετε μια σαρωμένη σελίδα PDF που έχετε ήδη μετατρέψει σε PNG, ένα ακατέργαστο JPEG ή ακόμη και ένα πολυ‑σελίδων TIFF. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Γιατί είναι σημαντικό:** +Η φόρτωση της εικόνας ως αντικείμενο `Image` δίνει στη μηχανή πρόσβαση σε δεδομένα pixel, πληροφορίες DPI και βάθος χρώματος—όλα αυτά επηρεάζουν την ακρίβεια του OCR. Αν παραλείψετε αυτό το βήμα και περάσετε έναν ακατέργαστο πίνακα byte, θα χάσετε αυτές τις χρήσιμες ενδείξεις. + +## Βήμα 3: Εκτέλεση OCR – **αναγνώριση κειμένου από φόρμα** + +Τώρα το διασκεδαστικό μέρος: η πραγματική αναγνώριση των χαρακτήρων. Η μέθοδος `recognize` επιστρέφει ένα `RecognitionResult` που περιέχει μια συλλογή αντικειμένων `Line`, το καθένα με το δικό του σκορ εμπιστοσύνης. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Γιατί είναι σημαντικό:** +Καλώντας το `recognize` ενεργοποιείται μια αλυσίδα εσωτερικών διαδικασιών—προεπεξεργασία (ευθυγράμμιση, αφαίρεση θορύβου), τμηματοποίηση, ταξινόμηση χαρακτήρων και μεταεπεξεργασία (ορθογραφικός έλεγχος, μοντέλο γλώσσας). Το αντικείμενο αποτελέσματος αφαιρεί όλη αυτή την πολυπλοκότητα. + +## Βήμα 4: Επεξεργασία των Αποτελεσμάτων – **διάβασμα εικόνας για ocr** έξοδο + +Μόλις έχετε το `RecognitionResult`, μπορείτε να επαναλάβετε κάθε γραμμή, να αποφασίσετε τι θα διατηρήσετε αυτόματα και να σημαδέψετε ό,τι φαίνεται αβέβαιο. Ένα όριο εμπιστοσύνης 85 % είναι ένα καλό σημείο εκκίνησης για τις περισσότερες τυπωμένες φόρμες. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Αναμενόμενο αποτέλεσμα (παράδειγμα):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +Στο παραπάνω παράδειγμα η μηχανή δεν ήταν σίγουρη για το τελευταίο ψηφίο του συνολικού ποσού, έτσι εκτυπώσαμε μια προειδοποίηση. Μπορείτε να μεταβιβάσετε αυτές τις γραμμές σε ένα UI για χειροκίνητη διόρθωση ή να τις καταγράψετε για μελλοντική ανασκόπηση. + +### Περιπτώσεις Άκρων & Συμβουλές + +- **Πολλές σελίδες:** Αν έχετε ένα πολυ‑σελίδων PDF, κάντε βρόχο πάνω σε κάθε δείκτη σελίδας και καλέστε `Image.fromPdf(pdfPath, pageIndex)`. +- **Διαφορετικές γλώσσες:** Ορίστε `engine.getLanguage().setLanguage(Language.Spanish);` πριν καλέσετε `recognize`. +- **Ποιότητα εικόνας:** Σαρώσεις χαμηλής ανάλυσης (< 150 DPI) συχνά παράγουν εμπιστοσύνη κάτω από 80 %. Η αύξηση μεγέθους με `image.resize(300, 300)` μπορεί να βοηθήσει, αλλά η καλύτερη λύση είναι μια καλύτερη σάρωση. +- **Απόδοση:** Η επαναχρησιμοποίηση της ίδιας παρουσία `OcrEngine` για πολλές εικόνες μειώνει το κόστος σε σύγκριση με τη δημιουργία νέας κάθε φορά. + +## Συχνές Ερωτήσεις + +**Μπορώ να το εκτελέσω σε headless server;** +Απολύτως. Η βιβλιοθήκη δεν έχει εξαρτήσεις GUI, έτσι λειτουργεί καλά μέσα σε Docker containers ή CI pipelines. + +**Τι γίνεται αν δεν έχω ακόμα άδεια;** +Μπορείτε ακόμα να καλέσετε `engine.recognize`, αλλά η λειτουργία demo θα σταματήσει μετά τις πρώτες 2 σελίδες και θα προσθέσει υδατογράφημα στο αποτέλεσμα. Είναι ιδανική για γρήγορες δοκιμές. + +**Υπάρχει τρόπος να εξάγετε δομημένα δεδομένα (π.χ., πίνακες);** +Το Aspose OCR παρέχει μια κλάση `TableRecognizer`, αλλά αυτό είναι εκτός του πεδίου αυτού του οδηγού για αρχάριους. Μόλις κατακτήσετε τα βασικά, ελέγξτε την επίσημη τεκμηρίωση για το `TableRecognizer`. + +## Συνοψίζοντας – **πώς να εκτελέσετε ocr** συνοπτικά + +Έχουμε καλύψει όλα όσα χρειάζεστε για να **πώς να εκτελέσετε ocr** σε μια σαρωμένη φόρμα: αρχικοποίηση της μηχανής, φόρτωση της εικόνας, εκτέλεση της αναγνώρισης και έξυπνη διαχείριση των αποτελεσμάτων. Με λίγες μόνο γραμμές Java, μπορείτε να **εξάγετε κείμενο από εικόνα** αρχεία, **αναγνωρίσετε κείμενο από φόρμα** έγγραφα, και **διαβάσετε εικόνα για ocr** έξοδο με βαθμολογίες εμπιστοσύνης που σας επιτρέπουν να αποφασίσετε πότε απαιτείται ανθρώπινη ανασκόπηση. + +Επόμενα βήματα; Δοκιμάστε να αντικαταστήσετε το JPEG με ένα πολυ‑σελίδων 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/greek/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..8745d49e1 --- /dev/null +++ b/ocr/greek/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-05-03 +description: Πώς να χρησιμοποιήσετε OCR για την εξαγωγή κειμένου από αρχεία PDF σε + Java. Μάθετε να αναγνωρίζετε κείμενο από PDF, να μετατρέπετε PDF σε κείμενο και + να διαχειρίζεστε αποτελεσματικά PDF πολλαπλών σελίδων με OCR. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: el +og_description: Πώς να χρησιμοποιήσετε OCR για την εξαγωγή κειμένου από αρχεία PDF + σε Java. Αυτός ο οδηγός δείχνει πώς να αναγνωρίζετε κείμενο από PDF, να μετατρέπετε + PDF σε κείμενο και να επεξεργάζεστε OCR πολλαπλών σελίδων PDF. +og_title: Πώς να χρησιμοποιήσετε OCR στη Java – Εξαγωγή κειμένου από PDF πολλαπλών + σελίδων +tags: +- ocr +- java +- pdf +- aspose +title: Πώς να χρησιμοποιήσετε OCR στη Java – Εξαγωγή κειμένου από PDF πολλαπλών σελίδων +url: /el/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Χρησιμοποιήσετε OCR σε Java – Εξαγωγή Κειμένου από Πολυ‑σελίδες PDF + +**Πώς να χρησιμοποιήσετε OCR** σε ένα έργο Java; Αν ποτέ χρειάστηκε να εξάγετε κείμενο από αρχεία PDF χωρίς να βασίζεστε στο εσωτερικό επίπεδο κειμένου του PDF, βρίσκεστε στο σωστό μέρος. Αυτό το tutorial σας οδηγεί βήμα‑βήμα μέσα από μια πλήρη, εκτελέσιμη λύση που **αναγνωρίζει κείμενο από PDF**, μετατρέπει το PDF σε κείμενο, και ακόμη χειρίζεται ένα **OCR πολυ‑σελίδων PDF** με μία κλήση. + +Φανταστείτε ότι λαμβάνετε ένα σαρωμένο συμβόλαιο — ένα 12‑σελίδες TIFF μέσα σε PDF. Θέλετε το κείμενο αναζητήσιμο για ευρετηρίαση, αλλά το αρχείο δεν έχει ενσωματωμένους χαρακτήρες. Κανένα πρόβλημα· θα σας δείξουμε ακριβώς πώς να το κάνετε, βήμα προς βήμα. + +> **Τι θα λάβετε:** ένα έτοιμο‑για‑εκτέλεση απόσπασμα Java που χρησιμοποιεί Aspose.OCR, εξηγήσεις για το γιατί κάθε γραμμή είναι σημαντική, συμβουλές για κοινά προβλήματα, και δείγμα εξόδου που μπορείτε να επαληθεύσετε άμεσα. + +--- + +## Τι Θα Χρειαστείτε + +* **Java 17** (ή οποιοδήποτε πρόσφατο JDK) – ο κώδικας λειτουργεί και με παλαιότερες εκδόσεις, αλλά το 17 είναι η ιδανική επιλογή. +* **Aspose OCR for Java** library – μπορείτε να κατεβάσετε το JAR από τον ιστότοπο Aspose ή να το προσθέσετε μέσω Maven/Gradle. +* Ένα **πολυ‑σελίδες PDF** (ή TIFF) που θέλετε να επεξεργαστείτε. Στα παραδείγματα μας θα χρησιμοποιήσουμε `contract_multipage.pdf` τοποθετημένο σε φάκελο που ονομάζεται `YOUR_DIRECTORY`. +* Ένα έγκυρο **αρχείο άδειας Aspose OCR** (`Aspose.OCR.Java.lic`). Χωρίς αυτό η βιβλιοθήκη λειτουργεί σε λειτουργία αξιολόγησης, κάτι που είναι εντάξει για γρήγορο τεστ αλλά θα προσθέσει υδατογράφημα. + +Αυτό είναι όλο—χωρίς επιπλέον μηχανές OCR, χωρίς εγγενή δυαδικά αρχεία, μόνο ένα μοναδικό JAR και μια άδεια. + +![πώς να χρησιμοποιήσετε OCR παράδειγμα](https://example.com/ocr-demo.png "Πώς να χρησιμοποιήσετε OCR σε Java – οπτική επισκόπηση της διαδικασίας") + +*Κείμενο εναλλακτικής εικόνας: πώς να χρησιμοποιήσετε OCR σε Java – οπτική επισκόπηση της φόρτωσης, αναγνώρισης και εξαγωγής κειμένου.* + +## Βήμα 1: Ρύθμιση της Μηχανής OCR – **Πώς να Χρησιμοποιήσετε OCR** Σωστά + +Το πρώτο πράγμα που πρέπει να κάνετε είναι να δημιουργήσετε μια παρουσία της μηχανής OCR και να εφαρμόσετε την άδειά σας. Χωρίς την άδεια η μηχανή θα λειτουργήσει, αλλά θα δείτε ένα υδατογράφημα δοκιμής στην έξοδο. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Γιατί είναι σημαντικό:** +Το `OcrEngine` είναι το βασικό αντικείμενο που συντονίζει την ανάλυση εικόνας, την ανίχνευση γλώσσας και την εξαγωγή κειμένου. Η προημεροληπτική ρύθμιση της άδειας αποτρέπει τη μηχανή από το να επιστρέψει σε λειτουργία δοκιμής αργότερα, κάτι που θα μπορούσε να επηρεάσει την ακρίβεια. + +## Βήμα 2: Φόρτωση του Εγγράφου – **Εξαγωγή Κειμένου από PDF** Αποτελεσματικά + +Το Aspose OCR μπορεί να διαβάσει άμεσα τόσο containers PDF όσο και TIFF. Εδώ φορτώνουμε ένα πολυ‑σελίδων PDF που περιέχει σαρωμένες εικόνες. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Γιατί είναι σημαντικό:** +Το `PdfDocument.fromFile` αναλύει το container και σας δίνει πρόσβαση σε κάθε σελίδα ως εικόνα. Αυτή η αφαίρεση επιτρέπει στη μηχανή OCR να αντιμετωπίζει κάθε σελίδα ομοιόμορφα, ανεξάρτητα από την αρχική μορφή. + +**Συμβουλή:** Αν το αρχείο προέλευσης είναι TIFF, η ίδια κλήση λειτουργεί—το Aspose ανιχνεύει αυτόματα τη μορφή. Δεν απαιτείται επιπλέον κώδικας. + +## Βήμα 3: Αναγνώριση Όλων των Σελίδων Μιας Στιγμής – **Αναγνώριση Κειμένου από PDF** Απρόσκοπτα + +Αντί να κάνετε βρόχο πάνω στις σελίδες, μπορείτε να ζητήσετε από τη μηχανή να επεξεργαστεί ολόκληρο το έγγραφο με μία κλήση. Αυτός είναι ο πιο αποδοτικός τρόπος για **μετατροπή PDF σε κείμενο** όταν εργάζεστε με ένα **OCR πολυ‑σελίδων PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Γιατί είναι σημαντικό:** +Η κλήση του `recognizeDocument` μία φορά μειώνει το κόστος που προκαλείται από την επανειλημμένη αρχικοποίηση της μηχανής. Επίσης εγγυάται συνεπείς ρυθμίσεις γλώσσας σε όλες τις σελίδες, κάτι που είναι κρίσιμο για νομικά έγγραφα που συχνά συνδυάζουν διαφορετικές γραμματοσειρές. + +## Βήμα 4: Έξοδος του Αναγνωρισμένου Κειμένου – **Μετατροπή PDF σε Κείμενο** για Ευρετηρίαση + +Τώρα που κάθε σελίδα έχει επεξεργαστεί, απλώς επαναλαμβάνουμε τα αποτελέσματα και εκτυπώνουμε τις εξαγόμενες συμβολοσειρές. Μπορείτε επίσης να τις γράψετε σε αρχείο, βάση δεδομένων ή να τις τροφοδοτήσετε σε έναν δείκτη αναζήτησης. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Αναμενόμενη έξοδος (κομμένη):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Αν το PDF περιέχει 12 σελίδες, θα δείτε δώδεκα τμήματα `--- Page X ---`, το καθένα ακολουθούμενο από το κείμενο που εξήχθη με OCR. + +## Προηγμένες Συμβουλές για ένα **OCR Πολυ‑Σελίδων PDF** + +### 1. Προσαρμογή Ρυθμίσεων Γλώσσας + +Από προεπιλογή το Aspose προσπαθεί να εντοπίσει αυτόματα τη γλώσσα, αλλά μπορείτε να επιταχύνετε τη διαδικασία καθορίζοντάς την: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Έλεγχος Προεπεξεργασίας Εικόνας + +Τα σαρωμένα συμβόλαια συχνά έχουν θόρυβο. Μπορείτε να ενεργοποιήσετε την ευθυγράμμιση (deskewing) και τη δυαδικοποίηση: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Διαχείριση Μεγάλων Αρχείων με Σοφία + +Αν επεξεργάζεστε PDF μεγαλύτερα από 100 MB, σκεφτείτε τη ροή σελίδων αντί για τη φόρτωση ολόκληρου του εγγράφου μονομιάς: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Αυτό το μοτίβο μειώνει την πίεση μνήμης και είναι χρήσιμο για εργασίες δέσμης. + +### 4. Εξαγωγή σε Δομημένες Μορφές + +Πέρα από απλό κείμενο, μπορείτε να εξάγετε σε JSON ή XML για επεξεργασία σε επόμενα στάδια: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## Συνηθισμένα Παράπλευρα Προβλήματα & Πώς να τα Αποφύγετε + +| Πρόβλημα | Γιατί Συμβαίνει | Διόρθωση | +|----------|-----------------|----------| +| **Κενή έξοδος** | Η άδεια δεν έχει εφαρμοστεί ή το μονοπάτι αρχείου είναι λανθασμένο. | Επαληθεύστε τη διαδρομή `setLicense` και βεβαιωθείτε ότι το αρχείο υπάρχει. | +| **Ακατάλληλοι χαρακτήρες** | Λάθος ρύθμιση γλώσσας ή πηγή χαμηλής ανάλυσης. | Ορίστε τη σωστή `Language` και βεβαιωθείτε ότι οι πηγές εικόνας είναι ≥300 dpi. | +| **Σφάλματα έλλειψης μνήμης** | Φόρτωση ενός τεράστιου PDF μονομιάς. | Χρησιμοποιήστε την προσέγγιση ροής που φαίνεται παραπάνω. | +| **Μερική αναγνώριση σελίδας** | Το PDF περιέχει μεικτά raster/vector στρώματα. | Εξομαλύνετε (flatten) το PDF πρώτα: `pdfDoc.flatten();` πριν το OCR. | + +## Ανακεφαλαίωση – Τι Καλύψαμε + +* **Πώς να χρησιμοποιήσετε OCR** με το Aspose σε Java. +* **Εξαγωγή κειμένου από PDF** (ή TIFF) με μία κλήση. +* **Αναγνώριση κειμένου από PDF** σε όλες τις σελίδες χωρίς χειροκίνητους βρόχους. +* **Μετατροπή PDF σε κείμενο** και καθαρή έξοδος. +* Συμβουλές για τη διαχείριση ενός **OCR πολυ‑σελίδων PDF**, συμπεριλαμβανομένων των ρυθμίσεων γλώσσας και της μνήμης‑φιλικής ροής. + +Τώρα έχετε ένα πλήρες, έτοιμο για παραγωγή απόσπασμα που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο Java. Μη διστάσετε να προσαρμόσετε τις επιλογές επεξεργασίας εικόνας, να αλλάξετε τον προορισμό εξόδου ή να ενσωματώσετε το αποτέλεσμα σε έναν δείκτη αναζήτησης. + +## Επόμενα Βήματα + +* **Εξερευνήστε τις προχωρημένες δυνατότητες του Aspose OCR** – όπως η αναγνώριση χειρόγραφου ή η συμμόρφωση PDF/A. +* **Συνδυάστε OCR με επεξεργασία PDF** (π.χ., προσθέστε ένα κρυφό στρώμα κειμένου πίσω στο PDF για αναζητήσιμα PDF). +* **Αυτοματοποιήστε την επεξεργασία δέσμης** διαβάζοντας έναν φάκελο PDF και γράφοντας κάθε αποτέλεσμα σε αντίστοιχο αρχείο `.txt`. + +Αν αντιμετωπίσετε προβλήματα, τα φόρουμ του Aspose είναι ένας εξαιρετικός τόπος για βοήθεια, και η τεκμηρίωση API παρέχει λεπτομερείς πληροφορίες για κάθε μέθοδο που χρησιμοποιείται εδώ. + +Καλό κώδικα, και απολαύστε τη μετατροπή αυτών των επίμονων σαρώσεων σε αναζητήσιμο κείμενο! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/greek/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..79587a2e0 --- /dev/null +++ b/ocr/greek/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Διαβάστε δυαδικό αρχείο Java για τη φόρτωση μιας άδειας Aspose OCR. Μάθετε + τη χρήση του FileInputStream, τη διαχείριση δυαδικών δεδομένων και πρακτικές συμβουλές + σε αυτόν τον οδηγό βήμα‑βήμα. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: el +og_description: Διαβάστε το δυαδικό αρχείο Java για να φορτώσετε μια άδεια Aspose + OCR. Ακολουθήστε αυτόν τον πλήρη οδηγό για να κυριαρχήσετε στο FileInputStream και + τη διαχείριση δυαδικών δεδομένων στη Java. +og_title: Ανάγνωση Δυαδικού Αρχείου Java – Φόρτωση Bytes Άδειας για Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Ανάγνωση δυαδικού αρχείου Java – Φόρτωση bytes άδειας για Aspose OCR +url: /el/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ανάγνωση Δυαδικού Αρχείου Java – Φόρτωση Bytes Άδειας για Aspose OCR + +Έχετε χρειαστεί ποτέ να **αναγνώσετε δυαδικό αρχείο Java** όταν δουλεύετε με μια άδεια για μια βιβλιοθήκη τρίτου μέρους; Δεν είστε μόνοι. Οι περισσότεροι προγραμματιστές Java συναντούν αυτό το πρόβλημα όταν προσπαθούν να τροφοδοτήσουν ένα αρχείο `.lic` σε μια μηχανή OCR, και τα συνηθισμένα κόλπα για αρχεία κειμένου δεν αρκούν. + +Σε αυτό το tutorial θα περάσουμε από ένα πλήρες, εκτελέσιμο παράδειγμα που δείχνει ακριβώς πώς να ανοίξετε ένα δυαδικό αρχείο άδειας, να φορτώσετε τα bytes του στη μνήμη και να τα παραδώσετε στο Aspose OCR for Java. Καθ' οδόν θα δείτε γιατί το `FileInputStream` είναι το κατάλληλο εργαλείο, πώς να διαχειριστείτε πιθανές `IOException`s, και μερικές επαγγελματικές συμβουλές που ίσως δεν βρείτε στα επίσημα docs. + +Στο τέλος του οδηγού θα μπορείτε να **αναγνώσετε δυαδικό αρχείο Java** με στυλ, να δημιουργήσετε ένα αντικείμενο `License` και να το αναθέσετε σε ένα `OcrEngine` χωρίς καμία δυσκολία. + +## Τι Καλύπτει Αυτός ο Οδηγός + +- Προαπαιτούμενα: Java 17+, Maven (ή Gradle) και η βιβλιοθήκη Aspose OCR for Java. +- Βήμα‑βήμα κώδικας που διαβάζει ένα δυαδικό αρχείο `.lic` χρησιμοποιώντας `FileInputStream`. +- Εξήγηση κάθε γραμμής ώστε να κατανοήσετε το *γιατί* πίσω από το *πώς*. +- Διαχείριση ακραίων περιπτώσεων (απουσία αρχείου, κατεστραμμένα bytes) και πρακτικές συμβουλές debugging. +- Ένα τελικό, αυτόνομο snippet που μπορείτε να αντιγράψετε‑επικολλήσετε στο IDE σας και να τρέξετε αμέσως. + +Αν ποτέ αναρωτηθήκατε αν χρειάζεται κάποιο ειδικό API για την ανάγνωση αρχείων άδειας, η απάντηση είναι ένα καθαρό **όχι** — απλώς το καλό παλιό binary I/O. Ας βουτήξουμε. + +## Βήμα 1: Ανάγνωση Δυαδικού Αρχείου Java με FileInputStream + +Το πρώτο που χρειαζόμαστε είναι ένας αξιόπιστος τρόπος να πάρουμε ακατέργαστα bytes από το αρχείο άδειας στο δίσκο. Στην Java, το `FileInputStream` είναι το εργαλείο για ακριβώς αυτό. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Γιατί λειτουργεί:** Η `Files.readAllBytes` δημιουργεί εσωτερικά ένα `FileInputStream`, διαβάζει ολόκληρο το stream και το κλείνει για εσάς. Είναι ασφαλές, σύντομο και αποφεύγει το κλασικό πρόβλημα «να ξεχάσετε να κλείσετε το stream». Αν προτιμάτε το κλασικό pattern, μπορείτε να το αντικαταστήσετε με ένα try‑with‑resources block χρησιμοποιώντας απευθείας το `FileInputStream`. + +### Pro tip + +Αν το αρχείο άδειας είναι τεράστιο (σπάνιο, αλλά δυνατό), σκεφτείτε να το διαβάζετε σε τμήματα αντί να το φορτώνετε ολόκληρο. Για τις περισσότερες άδειες OCR — συνήθως κάτω από μερικά kilobytes — η προσέγγιση «μία ανάγνωση» είναι απολύτως επαρκής. + +## Βήμα 2: Δημιουργία Αντικειμένου License για Aspose OCR + +Τώρα που έχουμε τα raw bytes, πρέπει να τα μετατρέψουμε σε ένα συμβατό με Aspose αντικείμενο `License`. Η βιβλιοθήκη παρέχει μια κλάση `License` που δέχεται έναν πίνακα byte. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Γιατί είναι σημαντικό:** Με τη μεταβίβαση των bytes απευθείας, αποφεύγετε τυχόν προβλήματα σχετιζόμενα με διαδρομές (π.χ. σύγχυση σχετικά με το relative‑to‑working‑directory) και κρατάτε την ανάπτυξή σας φορητή — απλώς συμπεριλάβετε το αρχείο `.lic` όπου τρέχει η εφαρμογή σας. + +## Βήμα 3: Ανάθεση Άδειας στο OCR Engine + +Με το αντικείμενο `License` έτοιμο, το τελευταίο βήμα είναι να το συνδέσετε σε ένα `OcrEngine`. Αυτό εξασφαλίζει ότι το OCR τρέχει σε licensed mode αντί για το evaluation sandbox. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Σημείωση:** Κάποιες παλαιότερες εκδόσεις του Aspose εκθέτουν ένα δημόσιο πεδίο `license` αντί για setter. Προσαρμόστε τον κώδικα αναλόγως (`ocrEngine.license = license;`) αν αντιμετωπίσετε σφάλμα μεταγλώττισης. + +## Βήμα 4: Επαλήθευση Επιτυχούς Φόρτωσης Άδειας (Προαιρετικό αλλά Χρήσιμο) + +Μια γρήγορη επιβεβαίωση μπορεί να σας εξοικονομήσει ώρες debugging αργότερα. Η κλάση `License` δεν ρίχνει εξαίρεση σε περίπτωση επιτυχίας, αλλά μπορείτε να δοκιμάσετε μια ακίνδυνη λειτουργία OCR για να βεβαιωθείτε. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Αν δείτε το μήνυμα “License applied successfully”, όλα είναι εντάξει. Αν όχι, ελέγξτε ξανά τη διαδρομή του αρχείου, την ακεραιότητα των bytes και ότι χρησιμοποιείτε τη σωστή έκδοση του Aspose. + +## Πλήρες Παράδειγμα Λειτουργίας + +Συνδυάζοντας όλα τα κομμάτια παίρνουμε ένα συμπαγές, έτοιμο‑για‑αντιγραφή‑επικόλληση πρόγραμμα. Απλώς τοποθετήστε το σε ένα αρχείο `Main.java` και τρέξτε το. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Αναμενόμενο αποτέλεσμα (υπόθεση ότι υπάρχει η ψεύτικη εικόνα):** + +``` +License applied successfully – OCR engine is ready. +``` + +Αν το αρχείο άδειας λείπει ή είναι κατεστραμμένο, θα δείτε ένα σαφές μήνυμα σφάλματος όπως: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Συνηθισμένα Πιθανά Σφάλματα & Πώς να τα Αποφύγετε + +- **Σύγχυση διαδρομών:** Οι σχετικές διαδρομές λύνουνται σε σχέση με το working directory της JVM, όχι με τη θέση του πηγαίου αρχείου. Χρησιμοποιήστε απόλυτη διαδρομή ή τοποθετήστε το αρχείο `.lic` δίπλα στο JAR και αναφερθείτε σε αυτό με `getResourceAsStream`. +- **Λάθος σειρά bytes:** Ποτέ μην προσπαθήσετε να διαβάσετε ένα δυαδικό αρχείο με `Reader` (χαρακτηριστικό‑προσανατολισμένο). Θα καταστρέψει τα δεδομένα. Μείνετε σε APIs βασισμένα σε `FileInputStream`. +- **Ασυμφωνία εκδόσεων:** Κάποιες παλαιότερες εκδόσεις του Aspose απαιτούν `license.setLicense("path/to/file")` αντί για `setLicenseBytes`. Ελέγξτε τις σημειώσεις έκδοσης αν αντιμετωπίσετε `NoSuchMethodError`. +- **Ξεχάσατε να κλείσετε streams:** Αν επιστρέψετε στην κλασική προσέγγιση με `FileInputStream`, τυλίξτε το σε try‑with‑resources block για να εγγυηθείτε το κλείσιμο. + +## Συμπέρασμα + +Τώρα ξέρετε πώς να **αναγνώσετε δυαδικό αρχείο Java** για να φορτώσετε μια άδεια Aspose OCR, να δημιουργήσετε ένα αντικείμενο `License` και να το συνδέσετε σε ένα `OcrEngine`. Η διαδικασία βασίζεται στη σωστή διαχείριση δυαδικών δεδομένων με `FileInputStream` (ή το πιο σύγχρονο `Files.readAllBytes`) και μερικές απλές κλήσεις API. + +Από εδώ μπορείτε να προχωρήσετε σε πραγματικές εργασίες OCR — εξαγωγή κειμένου από PDFs, εικόνες ή ακόμη και σαρωμένα έγγραφα — με την πεποίθηση ότι το επίπεδο αδειοδότησης δεν θα σας εμποδίσει. Αν σας ενδιαφέρουν συναφή θέματα, δείτε tutorials για **Java FileInputStream**, **binary data handling Java**, και **read license file Java** για άλλες βιβλιοθήκες. + +Καλή προγραμματιστική δουλειά, και εύχομαι τα OCR αποτελέσματά σας να είναι kristalline! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/greek/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..e77be3558 --- /dev/null +++ b/ocr/greek/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-05-03 +description: Μάθετε πώς να αναγνωρίζετε κείμενο από εικόνα και να μετατρέπετε την + εικόνα σε κείμενο χρησιμοποιώντας το Aspose OCR για Java. Περιλαμβάνει συμβουλές + για τη βελτίωση της ακρίβειας του OCR και την εκτέλεση OCR σε αρχεία PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: el +og_description: Οδηγός βήμα‑προς‑βήμα για την αναγνώριση κειμένου από εικόνα χρησιμοποιώντας + το Aspose OCR για Java. Μάθετε πώς να μετατρέπετε εικόνα σε κείμενο, να βελτιώνετε + την ακρίβεια του OCR και να εκτελείτε OCR σε PNG. +og_title: Αναγνώριση κειμένου από εικόνα με Aspose OCR – Java Tutorial +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Αναγνώριση κειμένου από εικόνα με το Aspose OCR – Πλήρης Οδηγός Java +url: /el/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# αναγνώριση κειμένου από εικόνα με Aspose OCR – Πλήρης Οδηγός Java + +Έχετε ποτέ χρειαστεί να **αναγνωρίσετε κείμενο από εικόνα** αλλά δεν ήσασταν σίγουροι ποια βιβλιοθήκη θα σας δώσει αξιόπιστα αποτελέσματα; Δεν είστε μόνοι—πολλοί προγραμματιστές αντιμετωπίζουν αυτό το πρόβλημα όταν προσπαθούν για πρώτη φορά να εξάγουν δεδομένα από σαρωμένα PDF, αποδείξεις ή εργαστηριακές αναφορές. Τα καλά νέα είναι ότι το Aspose OCR for Java κάνει όλη τη διαδικασία παιχνιδάκι, και μπορείτε ακόμη και να **μετατρέψετε εικόνα σε κείμενο** με μερικές μόνο γραμμές. + +Σε αυτό το tutorial θα περάσουμε από όλα όσα χρειάζεται να γνωρίζετε: από τη φόρτωση μιας εικόνας για OCR, τη ρύθμιση παραμέτρων για **βελτιώστε την ακρίβεια του OCR**, μέχρι τελικά **run OCR on PNG** αρχεία και την εκτύπωση του εξαγόμενου κειμένου. Χωρίς περιττές πληροφορίες, μόνο ένα πρακτικό, εκτελέσιμο παράδειγμα που μπορείτε να ενσωματώσετε στο πρότζεκτ σας σήμερα. + +--- + +## Τι Θα Χρειαστείτε + +| Απαίτηση | Αιτία | +|--------------|--------| +| Java 17 (ή νεότερη) | Το Aspose OCR στοχεύει σε Java 8+, αλλά η πιο πρόσφατη JDK προσφέρει καλύτερη απόδοση. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | Ο βασικός μηχανισμός που κάνει τη βαριά δουλειά. | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | Ενεργοποιεί το πλήρες σύνολο λειτουργιών· διαφορετικά θα δείτε υδατογράφημα δοκιμής. | +| An image file (PNG, JPEG, TIFF, κ.λπ.) containing clear text | Θα χρησιμοποιήσουμε το `lab_report.png` ως συγκεκριμένο παράδειγμα. | +| A custom dictionary (optional) | Βελτιώνει την αναγνώριση για όρους ειδικού τομέα όπως το “hemoglobin”. | + +Αν κάποιο από αυτά σας φαίνεται άγνωστο, μην πανικοβληθείτε—η εγκατάσταση ενός JAR και η δημιουργία ενός απλού αρχείου κειμένου είναι τετριμμένες εργασίες που θα καλύψουμε σε λίγο. + +## Βήμα 1 – Ρύθμιση του Έργου και Εισαγωγή Εξαρτήσεων + +Πρώτα, δημιουργήστε ένα νέο Maven (ή Gradle) project και προσθέστε την εξάρτηση Aspose OCR. Οι χρήστες Maven μπορούν να επικολλήσουν αυτό το απόσπασμα στο `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Αν προτιμάτε Gradle, το ισοδύναμο είναι: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Συμβουλή:** Παρακολουθείτε τον αριθμό έκδοσης· οι πιο πρόσφατες εκδόσεις συχνά περιέχουν διορθώσεις σφαλμάτων που επηρεάζουν άμεσα **βελτιώστε την ακρίβεια του OCR**. + +Τώρα, δημιουργήστε μια κλάση Java με όνομα `OcrDemo.java`. Στην κορυφή του αρχείου, εισάγετε τις απαιτούμενες κλάσεις: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## Βήμα 2 – Αρχικοποίηση της Μηχανής OCR και Εφαρμογή της Άδειας + +Δεν μπορείτε να **run OCR on PNG** αρχεία χωρίς πρώτα να ενημερώσετε τη μηχανή ότι είναι αδειοδοτημένη. Να πώς γίνεται: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Γιατί το επιπλέον αντικείμενο `License`; Το Aspose διαχωρίζει τη διαχείριση της άδειας από τη μηχανή ώστε να μπορείτε να αλλάζετε άδειες εν κινήσει, κάτι που μπορεί να φανεί χρήσιμο σε σενάρια multi‑tenant SaaS. + +## Βήμα 3 – Φόρτωση Προσαρμοσμένου Λεξικού (Προαιρετικό αλλά Ισχυρό) + +Αν εργάζεστε με ιατρική ορολογία, χημικούς τύπους ή ονόματα εμπορικών σημάτων, ένα προσαρμοσμένο λεξικό μπορεί να **βελτιώστε την ακρίβεια του OCR** δραματικά. Το λεξικό είναι ένα απλό αρχείο κειμένου με μία λέξη ανά γραμμή: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Γιατί λειτουργεί:** Η μηχανή OCR χρησιμοποιεί το λεξικό για να κατευθύνει το γλωσσικό της μοντέλο προς τις λέξεις που σας ενδιαφέρουν, μειώνοντας λανθασμένες αναγνώσεις όπως “hemo­globin” → “hemoglobin”. + +Αν δεν έχετε λεξικό, απλώς παραλείψτε αυτή τη γραμμή—το Aspose λειτουργεί καλά και με τα ενσωματωμένα πακέτα γλώσσας. + +## Βήμα 4 – Φόρτωση της Εικόνας που Θέλετε να Επεξεργαστείτε + +Τώρα πραγματικά **load image for OCR**. Το Aspose υποστηρίζει πολλές μορφές, αλλά το PNG είναι ιδιαίτερα lossless, καθιστώντας το ασφαλή επιλογή για σαρωμένα έγγραφα. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** Αν η εικόνα σας είναι τεράστια (πάνω από 5 MB), σκεφτείτε να τη μειώσετε πρώτα για να επιταχύνετε την επεξεργασία. Η κλάση `Image` παρέχει μέθοδο `resize` που μπορείτε να καλέσετε πριν από την αναγνώριση. + +## Βήμα 5 – Εκτέλεση της Διαδικασίας OCR και Ανάκτηση του Κειμένου + +Με όλα έτοιμα, ενεργοποιήστε τη μηχανή OCR. Η μέθοδος `recognize` επιστρέφει ένα αντικείμενο `OcrResult` που περιέχει το εξαγόμενο κείμενο, βαθμούς εμπιστοσύνης και ακόμη και bounding boxes αν χρειάζεστε πληροφορίες διάταξης. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Όταν τρέξετε το πρόγραμμα, θα πρέπει να δείτε κάτι σαν: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Αυτό είναι—έχετε επιτυχώς **recognize text from image** και **convert image to text** χρησιμοποιώντας το Aspose OCR. + +## Βήμα 6 – Συνηθισμένα Προβλήματα και Πώς να τα Διορθώσετε + +| Σύμπτωμα | Πιθανή Αιτία | Διόρθωση | +|---------|--------------|-----| +| Κενό αποτέλεσμα | Η άδεια δεν έχει εφαρμοστεί ή έχει λήξει | Επαληθεύστε τη διαδρομή προς το `Aspose.OCR.Java.lic` και βεβαιωθείτε ότι ταιριάζει με την έκδοση. | +| Παραμορφωμένοι χαρακτήρες | Η εικόνα είναι χαμηλής ανάλυσης ή πολύ συμπιεσμένη | Χρησιμοποιήστε πηγή υψηλότερης ανάλυσης ή προεπεξεργαστείτε την εικόνα (δυαδικοποίηση, διόρθωση κλίσης). | +| Απουσία ειδικών όρων | Δεν υπάρχει προσαρμοσμένο λεξικό | Προσθέστε ένα αρχείο λεξικού με τους χαμένα όρους, έναν ανά γραμμή. | +| Αργή επεξεργασία σε μεγάλες παρτίδες | Δεν υπάρχει πολυνηματική επεξεργασία | Δημιουργήστε μια δεξαμενή από αντικείμενα `OcrEngine` (είναι ασφαλή για νήματα) και επεξεργαστείτε τις εικόνες παράλληλα. | + +## Βήμα 7 – Επέκταση του Παραδείγματος: Αποθήκευση Αποτελεσμάτων σε Αρχείο + +Αν χρειάζεται να διατηρήσετε το εξαγόμενο κείμενο για μετέπειτα ανάλυση, απλώς γράψτε το σε αρχείο: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Τώρα έχετε μια επαναχρησιμοποιήσιμη pipeline που **load image for OCR**, εξάγει το περιεχόμενο και το αποθηκεύει όπου θέλετε. + +## Bonus: Εκτέλεση OCR σε Πολλαπλά Αρχεία PNG σε Φάκελο + +Τα πραγματικά έργα συχνά χρειάζονται επεξεργασία δεκάδων σαρώσεων. Εδώ είναι ένας γρήγορος βρόχος που διαβάζει κάθε `.png` σε έναν φάκελο: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Θυμηθείτε να επαναχρησιμοποιείτε το ίδιο αντικείμενο `ocrEngine`—η δημιουργία νέου για κάθε αρχείο προσθέτει περιττό φόρτο. + +## Συμπέρασμα + +Τώρα έχετε μια πλήρη, end‑to‑end λύση που **recognize text from image** χρησιμοποιώντας το Aspose OCR for Java. Από τη φόρτωση της εικόνας, προαιρετικά τον εμπλουτισμό της μηχανής με προσαρμοσμένο λεξικό για **βελτιώστε την ακρίβεια του OCR**, μέχρι το **run OCR on PNG** αρχεία και την αποθήκευση του αποτελέσματος, ο κώδικας είναι έτοιμος να ενσωματωθεί σε οποιοδήποτε Java project. + +Τι ακολουθεί; Δοκιμάστε να τροφοδοτήσετε το εξαγόμενο κείμενο σε μια pipeline επεξεργασίας φυσικής γλώσσας, ή πειραματιστείτε με OCR σε χειρόγραφες σημειώσεις (το Aspose προσφέρει επίσης λειτουργία χειρογράφου). Οι δυνατότητες είναι ατελείωτες, και μόλις ξεκλειδώσατε το πρώτο βήμα. + +Καλό κώδικα! Αν αντιμετωπίσατε δυσκολίες, αφήστε ένα σχόλιο παρακάτω—ας τα λύσουμε μαζί. + +![Στιγμιότυπο οθόνης του αποτελέσματος OCR στην κονσόλα – αναγνώριση κειμένου από εικόνα](/images/ocr_console_result.png "παράδειγμα αναγνώρισης κειμένου από εικόνα") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hindi/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/hindi/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..e08b16e56 --- /dev/null +++ b/ocr/hindi/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java का उपयोग करके छवि से तालिकाएँ निकालें। OCR के लिए छवि + लोड करना सीखें, PNG से तालिका निकालें, छवि तालिका पाठ को परिवर्तित करें, और रसीद + की छवि को जल्दी पहचानें। +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: hi +og_description: Aspose OCR Java के साथ छवि से तालिकाएँ निकालें। यह गाइड दिखाता है + कि OCR के लिए छवि कैसे लोड करें, PNG से तालिका निकालें, छवि तालिका पाठ को परिवर्तित + करें, और रसीद की छवि को पहचानें। +og_title: छवि से तालिकाएँ निकालें – Aspose OCR जावा ट्यूटोरियल +tags: +- Aspose OCR +- Java +- Image Processing +title: छवि से तालिकाएँ निकालें – पूर्ण Aspose OCR जावा गाइड +url: /hi/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# इमेज से टेबल निकालें – Complete Aspose OCR Java Guide + +क्या आपको कभी **extract tables from image** फ़ाइलों को निकालने की ज़रूरत पड़ी है लेकिन आप रुकावट पर अटके रहे? शायद आपके पास एक स्कैन किया हुआ रसीद या फ़ोटोग्राफ़ किया हुआ इनवॉइस है और टेबल डेटा PNG में छिपा हुआ है। इस ट्यूटोरियल में आप देखेंगे कि कैसे *load image for OCR* किया जाता है, उस तस्वीर को संरचित पंक्तियों में बदला जाता है, और **convert image table text** को ऐसा रूप दिया जाता है जिसे आप Java में उपयोग कर सकें। + +हम हर कदम को विस्तार से देखेंगे, Aspose OCR इंजन को लाइसेंस करने से लेकर पहचाने गए टेबल के प्रत्येक सेल को प्रिंट करने तक। अंत तक आप **recognize receipt image** फ़ाइलों को बिना किसी समस्या के पहचान सकेंगे और उनकी टेबल्स को निकाल सकेंगे। + +## What You’ll Learn + +- Aspose OCR इंजन को इनिशियलाइज़ करने और लाइसेंस लागू करने का तरीका। +- टेबल डिटेक्शन को एनेबल करना क्यों **extract tables from image** के लिए महत्वपूर्ण है। +- **load image for OCR** करने और PNG पर रिकग्निशन चलाने के लिए आवश्यक सटीक कोड। +- कई टेबल्स, लो‑रेज़ोल्यूशन स्कैन, और सामान्य pitfalls को हैंडल करने के तरीके। +- **convert image table text** को प्रिंटेबल (या डेटाबेस‑रेडी) फ़ॉर्मेट में बदलने का तरीका। + +कोई बाहरी दस्तावेज़ आवश्यक नहीं—सभी जानकारी यहाँ उपलब्ध है। + +## Prerequisites + +- Java 17 या उससे नया (कोड आधुनिक मॉड्यूल सिस्टम का उपयोग करता है)। +- Aspose OCR for Java लाइसेंस फ़ाइल (`Aspose.OCR.Java.lic`)। यदि आप सिर्फ़ प्रयोग कर रहे हैं, तो एक टेम्पररी इवैल्यूएशन की भी काम करेगी। +- एक PNG इमेज जिसमें स्पष्ट टेबल हो (उदा., `receipt_with_table.png`)। +- Maven या Gradle ताकि Aspose OCR डिपेंडेंसी को पुल किया जा सके: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** लाइसेंस फ़ाइल को अपने `src/main/resources` फ़ोल्डर के बगल में रखें ताकि पाथ विभिन्न एनवायरनमेंट्स में स्थिर रहे। + +--- + +## Step 1 – Initialize the OCR engine to **extract tables from image** + +इंजन कुछ भी करने से पहले यह जानना चाहिए कि आप वैध यूज़र हैं। + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Why this matters:* वैध लाइसेंस के बिना OCR इंजन ट्रायल मोड में चलता है, जिससे परिणाम कट सकते हैं या अनचाहे वाटरमार्क जुड़ सकते हैं—जिससे टेबल एक्सट्रैक्शन भरोसेमंद नहीं रहता। + +--- + +## Step 2 – Enable table detection (**extract table from png**) + +टेबल डिटेक्शन डिफ़ॉल्ट रूप से ऑफ़ होता है; आपको इसे ऑन करना होगा। + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +यह फ़्लैग Aspose OCR को समूहित टेक्स्ट को रो और कॉलम के रूप में ट्रीट करने के लिए बताता है, जो बिल्कुल वही है जिसकी आपको **extract tables from image** फ़ाइलों (PNG) के लिए ज़रूरत है। + +--- + +## Step 3 – **Load image for OCR** and **recognize receipt image** + +अब हम वास्तव में इमेज को इंजन में फीड करते हैं। + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +यदि आप **recognize receipt image** परिदृश्य से निपट रहे हैं, तो आप इमेज को प्री‑प्रोसेस (डेस्क्यू, कॉन्ट्रास्ट बढ़ाना) करना चाहेंगे। यह इस त्वरित गाइड के दायरे से बाहर है लेकिन शोरयुक्त स्कैन के लिए उपयोगी है। + +--- + +## Step 4 – Process OCR result and **convert image table text** + +`OcrResult` ऑब्जेक्ट में एक या अधिक टेबल्स हो सकते हैं। चलिए उनपर इटरेट करते हैं और प्रत्येक सेल को प्रिंट करते हैं। + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**What this does:** + +- जांचता है कि कोई टेबल मिली या नहीं; यदि नहीं, तो क्वालिटी ट्यूनिंग का सुझाव देता है। +- प्रत्येक टेबल के लिए, रो को टैब‑सेपरेटेड सेल्स के साथ प्रिंट करता है, जो CSV इम्पोर्ट के लिए सुविधाजनक फ़ॉर्मेट है। +- `Cell::getText` कॉल **convert image table text** का हृदय है – यह प्रत्येक सेल से रॉ OCR स्ट्रिंग निकालता है। + +### Expected Output + +मान लीजिए `receipt_with_table.png` में एक साधारण 3 × 2 टेबल है, तो आउटपुट कुछ इस प्रकार दिखेगा: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +यदि इमेज में कई टेबल्स हैं, तो प्रत्येक को एक खाली लाइन से अलग किया जाएगा। + +--- + +## Step 5 – Verify the extracted tables and handle edge cases + +### Common pitfalls + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **No tables detected** | Image too blurry or low contrast | Apply binarization (`ImageProcessing.applyThreshold`) before OCR | +| **Merged cells** | Table lines are faint, OCR treats them as one block | Increase `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Incorrect column order** | Skewed image causing mis‑alignment | Use `ImageProcessing.deskew` or rotate the image by 90° | + +### What to do next + +- **Export to CSV** – `System.out.println(line);` को `FileWriter` से बदलें ताकि डेटा स्थायी रूप से सेव हो सके। +- **Feed into a database** – प्रत्येक रो को POJO में मैप करें और JPA के ज़रिए पर्सिस्ट करें। +- **Combine with other APIs** – रसीद प्रोसेसिंग के लिए आप OCR टेक्स्ट पर रेगुलर एक्सप्रेशन से टोटल्स भी निकाल सकते हैं। + +--- + +## Full Working Example (Copy‑Paste Ready) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +इस प्रोग्राम को चलाएँ, एक स्पष्ट टेबल वाली PNG फ़ाइल को पॉइंट करें, और कंसोल में व्यवस्थित रोज़ भरते देखें। + +--- + +## Conclusion + +अब आपके पास Aspose OCR for Java का उपयोग करके **extract tables from image** फ़ाइलों के लिए एक ठोस, एंड‑टू‑एंड समाधान है। लाइसेंसिंग से लेकर **load image for OCR**, **extract table from png** को एनेबल करने, और अंत में **convert image table text** तक, हर कदम को समझाया गया है और व्यावहारिक टिप्स दी गई हैं। + +अगला कदम: आउटपुट को CSV फ़ाइल में लिखें, रोज़ को रिलेशनल डेटाबेस में पुश करें, या OCR स्टेप को रसीद‑टोटल‑एक्सट्रैक्शन रूटीन के साथ जोड़ें। यही पैटर्न इनवॉइसेस, प्राइस लिस्ट, और किसी भी स्कैन्ड डॉक्यूमेंट पर लागू होता है जहाँ डेटा ग्रिड के पीछे छिपा होता है। + +लो‑रेज़ोल्यूशन रसीदों को हैंडल करने या बैच प्रोसेसिंग के लिए स्केल करने के बारे में सवाल हैं? नीचे कमेंट करें, और हैप्पी कोडिंग! + +![Extract tables from image example](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/hindi/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..5723ac0ff --- /dev/null +++ b/ocr/hindi/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR का उपयोग करके Python में छवि से टेक्स्ट निकालें। मिश्रित लैटिन‑सिरिलिक + समर्थन के साथ चरण‑दर‑चरण Python OCR ट्यूटोरियल सीखें। +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: hi +og_description: इमेज से टेक्स्ट को पायथन में जल्दी निकालें। यह गाइड दिखाता है कि मिश्रित + लैटिन‑सिरिलिक इमेजों के लिए पायथन में Aspose OCR का उपयोग कैसे करें। +og_title: इमेज से टेक्स्ट निकालें पायथन – पूर्ण Aspose OCR वॉकथ्रू +tags: +- OCR +- Python +- Aspose +title: इमेज से टेक्स्ट निकालें Python – पूर्ण Aspose OCR गाइड +url: /hi/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# इमेज से टेक्स्ट निकालें Python – पूर्ण Aspose OCR गाइड + +क्या आपको कभी **extract text from image python** करने की ज़रूरत पड़ी लेकिन यह नहीं पता था कि कौन सी लाइब्रेरी लैटिन और सिरिलिक अक्षरों के मिश्रण को संभाल सकती है? आप अकेले नहीं हैं—डेवलपर्स लगातार मल्टीलिंगुअल स्क्रीनशॉट्स को OCR करने में इस समस्या का सामना करते हैं। + +अच्छी खबर यह है कि Aspose OCR for Python पूरी प्रक्रिया को लगभग आसान बना देता है। इस ट्यूटोरियल में हम पैकेज को इंस्टॉल करने, लाइसेंस लागू करने, मिश्रित‑भाषा इमेज लोड करने, और अंत में कुछ लाइनों के कोड में पहचाने गए टेक्स्ट को निकालने की प्रक्रिया को दिखाएंगे। अंत तक आपके पास एक तैयार‑चलाने‑योग्य स्क्रिप्ट होगी जिसे आप किसी भी प्रोजेक्ट में डाल सकते हैं। + +## आप क्या सीखेंगे + +- वर्चुअल एनवायरनमेंट में **Aspose OCR Python** सेट अप करने का तरीका। +- भाषा संकेत (जैसे लैटिन और सिरिलिक) देने से डिटेक्शन तेज़ क्यों होता है। +- एक ही फ़ंक्शन कॉल के साथ **extract text from image python** करने के लिए आवश्यक सटीक कोड। +- मिश्रित‑भाषा OCR से निपटते समय आम समस्याएँ और उन्हें कैसे टालें। + +### आवश्यकताएँ + +- आपके मशीन पर Python 3.8 या नया इंस्टॉल हो। +- एक Aspose OCR लाइसेंस फ़ाइल (`Aspose.OCR.Java.lic`)। फ्री ट्रायल टेस्टिंग के लिए काम करता है, लेकिन लाइसेंस वाली फ़ाइल वाटरमार्क हटाती है। +- एक PNG/JPEG इमेज जिसमें लैटिन और सिरिलिक दोनों अक्षर हों (हम इसे `mixed_latin_cyrillic.png` कहेंगे)। + +यदि आपने ये बिंदु पूरे कर लिए हैं, तो आप आगे बढ़ सकते हैं—कोई अतिरिक्त फ्रेमवर्क या भारी डिपेंडेंसीज़ की ज़रूरत नहीं है। + +--- + +## चरण 1 – इमेज से टेक्स्ट निकालें Python: Aspose OCR इंस्टॉल करें + +सबसे पहले: लाइब्रेरी को PyPI से प्राप्त करें और सुनिश्चित करें कि आपका एनवायरनमेंट लाइसेंस फ़ाइल को ढूँढ़ सके। + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** यदि आपको परमिशन एरर मिलता है, तो `pip install` कमांड में `--user` जोड़ें या टर्मिनल को एडमिनिस्ट्रेटर के रूप में चलाएँ। + +अब पैकेज आपके सिस्टम पर है, हम इसे इम्पोर्ट करेंगे और इंजन को हमारे लाइसेंस की ओर इंगित करेंगे। + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +इस चरण पर हमें लाइसेंस की क्यों ज़रूरत है? बिना लाइसेंस के इंजन **evaluation mode** में चलता है, जो पेजों की संख्या को सीमित करता है और आउटपुट में वाटरमार्क जोड़ता है। लाइसेंस पहले से प्रदान करने से बाद के `recognize` कॉल में साफ़ टेक्स्ट मिलता है। + +--- + +## चरण 2 – मिश्रित लैटिन‑सिरिलिक कंटेंट वाली इमेज लोड करें + +अब हम चित्र को मेमोरी में लाते हैं। Aspose OCR अपने स्वयं के `Image` क्लास के साथ काम करता है, जो अंतर्निहित फ़ाइल फ़ॉर्मेट को एब्स्ट्रैक्ट करता है। + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +यदि आप सोच रहे हैं कि अन्य फ़ॉर्मेट काम करेंगे—हां, JPEG, BMP, TIFF, और यहां तक कि PDF भी सपोर्टेड हैं। बस फ़ाइल एक्सटेंशन बदलें और `from_file` मेथड बाकी संभाल लेगा। + +--- + +## चरण 3 – तेज़ डिटेक्शन के लिए भाषा संकेत दें (वैकल्पिक लेकिन उपयोगी) + +जब आप जानते हैं कि इमेज में कौन सी भाषाएँ मौजूद हैं, तो आप इंजन को संकेत दे सकते हैं। यह अनिवार्य नहीं है, लेकिन यह **प्रोसेसिंग समय को काफी कम** करता है और मिश्रित‑भाषा OCR की सटीकता बढ़ाता है। + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +हिंट लिस्ट Aspose OCR द्वारा सपोर्टेड किसी भी भाषा को स्वीकार करती है (उदाहरण के लिए, `"Arabic"`, `"Japanese"`). यदि आप इस चरण को छोड़ देते हैं, तो इंजन सभी बिल्ट‑इन भाषाओं को ट्राय करेगा, जो बड़े बैच में धीमा हो सकता है। + +--- + +## चरण 4 – OCR इंजन चलाएँ और टेक्स्ट निकालें + +अब सच्चाई का क्षण: वास्तव में अक्षरों को पहचानें। `recognize` मेथड एक `OcrResult` ऑब्जेक्ट लौटाता है जिसमें प्लेन टेक्स्ट, कॉन्फिडेंस स्कोर, और यदि बाद में जरूरत पड़े तो बाउंडिंग बॉक्स भी होते हैं। + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Why this works:** अंदर से Aspose OCR एक न्यूरल‑नेटवर्क टेक्स्ट डिटेक्टर को भाषा‑विशिष्ट क्लासिफ़ायर के साथ मिलाता है। इसे `Image` ऑब्जेक्ट देकर, आप बाइनराइज़ेशन जैसी मैनुअल प्री‑प्रोसेसिंग की ज़रूरत से बचते हैं। + +--- + +## चरण 5 – निकाले गए टेक्स्ट को देखें + +अंत में, चलिए परिणाम को कंसोल पर प्रिंट करते हैं। वास्तविक एप्लिकेशन में आप इसे फ़ाइल में लिख सकते हैं, डेटाबेस में पुश कर सकते हैं, या ट्रांसलेशन API में फीड कर सकते हैं। + +```python +print("Recognised text:") +print(extracted_text) +``` + +जब आप स्क्रिप्ट चलाएँगे, तो आपको कुछ इस तरह दिखना चाहिए: + +``` +Recognised text: +Hello мир! This is a test. +``` + +यह आउटपुट पुष्टि करता है कि हमने सफलतापूर्वक **extract text from image python** किया, एक ही पास में लैटिन और सिरिलिक दोनों अक्षरों को संभालते हुए। + +--- + +## पूर्ण कार्यशील उदाहरण + +नीचे पूरा स्क्रिप्ट है जिसे आप `extract_ocr.py` नाम की फ़ाइल में कॉपी‑पेस्ट कर सकते हैं। बस प्लेसहोल्डर पाथ को अपने वास्तविक डायरेक्टरीज़ से बदलें। + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +फ़ाइल को सेव करें, अपना वर्चुअल एनवायरनमेंट एक्टिवेट करें, और चलाएँ: + +```bash +python extract_ocr.py +``` + +आपको पहचाना गया टेक्स्ट प्रिंट होता दिखेगा, जो पुष्टि करता है कि स्क्रिप्ट एंड‑टू‑एंड काम करती है। + +--- + +## अक्सर पूछे जाने वाले प्रश्न और किनारे के केस + +**यदि इमेज धुंधली हो तो?** +Aspose OCR में बिल्ट‑इन डी‑स्क्यूइंग और नॉइज़ रिडक्शन शामिल है, लेकिन बहुत अधिक खराब फोटो के लिए आप OpenCV के साथ प्री‑प्रोसेस करना चाहेंगे (जैसे, गॉसियन ब्लर और थ्रेशोल्ड लागू करना)। `Image` क्लास NumPy एरे को भी स्वीकार कर सकता है, इसलिए आप `recognize` कॉल करने से पहले कस्टम फ़िल्टर चेन कर सकते हैं। + +**क्या मैं इमेज की पूरी फ़ोल्डर प्रोसेस कर सकता हूँ?** +बिल्कुल। लॉजिक को `for` लूप में रैप करें, `from_file` को प्रत्येक फ़ाइलनाम पढ़ने के लिए बदलें, और परिणामों को एक डिक्शनरी में स्टोर करें। यदि आप क्लाउड वर्ज़न उपयोग कर रहे हैं तो API रेट लिमिट्स का ध्यान रखें। + +**क्या प्रत्येक भाषा के लिए अलग लाइसेंस चाहिए?** +नहीं, एक ही Aspose OCR लाइसेंस सभी सपोर्टेड भाषाओं को कवर करता है। `language_hints` लिस्ट केवल प्रदर्शन हेतु संकेत है। + +**PDF इनपुट के बारे में क्या?** +`Image.from_file` को `ocr.Image.from_file("document.pdf")` से बदलें। OCR इंजन स्वचालित रूप से प्रत्येक पेज को रास्टराइज़ करेगा और संयोजित टेक्स्ट लौटाएगा। + +--- + +## निष्कर्ष + +हमने अभी-अभी Aspose OCR का उपयोग करके **extract text from image python** करने का संक्षिप्त, प्रोडक्शन‑रेडी तरीका दिखाया है। चरण—इंस्टॉल, लाइसेंस, लोड, भाषा संकेत, पहचान, और डिस्प्ले—सब कुछ कवर करते हैं जो आपको मिश्रित लैटिन‑सिरिलिक कंटेंट के लिए विश्वसनीय परिणाम पाने के लिए चाहिए। + +अब आप उन्नत विषयों का अन्वेषण कर सकते हैं जैसे **image to text conversion** बैच प्रोसेसिंग के लिए, आउटपुट को **Python OCR tutorial** के साथ नेचुरल‑लैंग्वेज प्रोसेसिंग में इंटीग्रेट करना, या मल्टीलिंगुअल डॉक्युमेंट्स के लिए अन्य भाषा संकेतों के साथ प्रयोग करना। संभावनाएँ असीमित हैं, और कोड पहले से ही आपके हाथ में है। + +क्या आपका कोई अलग उपयोग केस है या आपको कोई समस्या आई? कमेंट छोड़ें, अपना अनुभव साझा करें, और चलिए बातचीत जारी रखते हैं। हैप्पी कोडिंग! + +![इमेज से टेक्स्ट निकालें python उदाहरण](/images/extract-text-from-image-python.png "OCR आउटपुट दिखाता स्क्रीनशॉट – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/hindi/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..102a3565b --- /dev/null +++ b/ocr/hindi/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR का उपयोग करके छवि से तुरंत टेक्स्ट निकालें। रुचि के क्षेत्र + को परिभाषित करना, OCR के लिए छवि लोड करना, और केवल कुछ ही मिनटों में इनवॉइस से टेक्स्ट + निकालना सीखें। +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: hi +og_description: Aspose OCR का उपयोग करके छवि से टेक्स्ट निकालें। यह गाइड दिखाता है + कि रुचि के क्षेत्र को कैसे परिभाषित करें, OCR के लिए छवि लोड करें, और चालान से प्रभावी + ढंग से टेक्स्ट निकालें। +og_title: Aspose OCR के साथ इमेज से टेक्स्ट निकालें – पूर्ण ट्यूटोरियल +tags: +- ocr +- python +- image-processing +title: Aspose OCR के साथ छवि से टेक्स्ट निकालें – चरण‑दर‑चरण गाइड +url: /hi/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from Image with Aspose OCR – Step‑by‑Step Guide + +क्या आपको **छवि से टेक्स्ट निकालना** जल्दी है? आप अकेले नहीं हैं—डेवलपर्स लगातार शोरयुक्त स्कैन, रसीदें और इनवॉइस से जूझते रहते हैं। इस ट्यूटोरियल में हम एक पूर्ण समाधान के माध्यम से चलेंगे जो न केवल *छवि से टेक्स्ट निकालना* दिखाता है बल्कि **परिभाषित क्षेत्र (ROI)**, **OCR के लिए छवि लोड करना**, और इनवॉइस से आवश्यक लाइन को निकालने का प्रदर्शन भी करता है। + +हम Aspose OCR लाइब्रेरी को इंस्टॉल करने से लेकर घुमा हुए पृष्ठों जैसे किनारे के मामलों को संभालने तक सब कुछ कवर करेंगे। अंत तक, आपके पास एक रन करने योग्य स्क्रिप्ट होगी जो एक ही कॉल में वांछित टेक्स्ट निकालती है—कोई मैन्युअल क्रॉपिंग नहीं। + +## What You’ll Learn + +- Aspose की Python API का उपयोग करके **OCR के लिए छवि लोड करना** कैसे करें। +- **परिभाषित क्षेत्र (ROI)** को सबसे अच्छा तरीके से सेट करना ताकि आप केवल चित्र के आवश्यक भाग को प्रोसेस करें। +- इनवॉइस फ़ील्ड्स से **टेक्स्ट निकालना** बिना पूरे पृष्ठ को पढ़े। +- **OCR के साथ छवि प्रोसेस** करने के लिए टिप्स और सामान्य समस्याओं से बचना। + +**Prerequisites** – एक नवीनतम Python 3.9+ वातावरण, एक वैध Aspose OCR लाइसेंस फ़ाइल, और एक छवि (जैसे, इनवॉइस PNG)। अन्य कोई बाहरी टूल आवश्यक नहीं है। + +--- + +## Step 1 – Initialize the OCR Engine (Primary Setup) + +**OCR के साथ छवि प्रोसेस** करने से पहले, आपको एक इंजन इंस्टेंस चाहिए जो आपका लाइसेंस रखता हो। यह चरण महत्वपूर्ण है क्योंकि अनलाइसेंस्ड इंजन केवल सीमित परिणाम सेट लौटाएगा। + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Why this matters*: `OcrEngine` ऑब्जेक्ट लाइब्रेरी का हृदय है; यह भाषा मॉडल, छवि प्री‑प्रोसेसिंग, और लाइसेंसिंग को मैनेज करता है। लाइसेंस को पहले सेट करने से आपको पूरी सटीकता और कोई वॉटरमार्क नहीं मिलेगा। + +--- + +## Step 2 – Load Image for OCR + +अब जब इंजन तैयार है, हमें **OCR के लिए छवि लोड** करनी है। Aspose कई फॉर्मैट (PNG, JPEG, TIFF) सपोर्ट करता है, लेकिन `Image.from_file` का उपयोग करने से छवि सही ढंग से डिकोड होती है। + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: तेज़ प्रोसेसिंग के लिए अपनी छवि फ़ाइलें 5 MB से कम रखें। बड़े फ़ाइलों को `image.resize(width, height)` से डाउनस्केल किया जा सकता है OCR से पहले। + +--- + +## Step 3 – Define Region of Interest (ROI) + +अधिकांश इनवॉइस में बहुत सारा अप्रासंगिक टेक्स्ट होता है—पता ब्लॉक, फुटर आदि। **परिभाषित क्षेत्र (ROI) सेट** करके हम इंजन को केवल उस हिस्से में देखने के लिए निर्देशित करते हैं जहाँ राशि या तिथि होती है, जिससे गति और सटीकता दोनों बढ़ती हैं। + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*How it works*: `Rectangle` क्लास वर्चुअली छवि को क्रॉप करती है; OCR इंजन कभी भी आयत के बाहर के पिक्सेल नहीं देखता, इसलिए ROI के बाहर का शोर अनदेखा रहता है। + +--- + +## Step 4 – Recognize Text Inside the ROI + +इंजन, छवि, और ROI तैयार होने के बाद, हम अंततः **छवि से टेक्स्ट निकालते** हैं। `recognize` मेथड एक `OcrResult` ऑब्जेक्ट लौटाता है जिसमें डिटेक्टेड स्ट्रिंग और कॉन्फिडेंस स्कोर होते हैं। + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Expected output** (एक सामान्य इनवॉइस टोटल लाइन का उदाहरण): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +यदि ROI सही ढंग से स्थित है, तो आपको केवल वही लाइन दिखेगी जिसकी आपको आवश्यकता है—और कुछ नहीं। + +--- + +## Step 5 – Full Working Example (Copy‑Paste Ready) + +नीचे पूरा स्क्रिप्ट है जो सभी पिछले चरणों को जोड़ता है। इसे `extract_invoice_roi.py` के रूप में सेव करें और `python extract_invoice_roi.py` चलाएँ। + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +स्क्रिप्ट चलाएँ और आपको लक्षित लाइन कंसोल में प्रिंट होती दिखेगी। यदि आपको खाली स्ट्रिंग मिलती है, तो ROI कोऑर्डिनेट्स दोबारा जांचें—कभी‑कभी कुछ पिक्सेल की गलती पूरी टेक्स्ट को बाहर कर देती है। + +--- + +## Step 6 – Common Variations & Edge Cases + +### a) Different invoice layouts +विभिन्न विक्रेताओं के इनवॉइस अक्सर टोटल राशि बॉक्स को अलग जगह रखते हैं। कई लेआउट्स में **OCR के साथ छवि प्रोसेस** करने के लिए विचार करें: + +- **Multiple ROIs**: कई आयतों के साथ इंजन को क्रमशः चलाएँ और सबसे उच्च कॉन्फिडेंस वाले परिणाम को चुनें। +- **Dynamic ROI detection**: हल्के इमेज‑प्रोसेसिंग लाइब्रेरी (जैसे OpenCV) का उपयोग करके पहले “Total” लेबल खोजें, फिर उसके सापेक्ष ROI गणना करें। + +### b) Rotated or skewed images +यदि स्कैन टिल्टेड है, तो पहचान से पहले `image.rotate(angle)` कॉल करें: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR ऑटो‑डेस्क्यू भी प्रदान करता है, लेकिन मैन्युअल रोटेशन से आपको अधिक कंट्रोल मिलता है। + +### c) Non‑Latin characters +डिफ़ॉल्ट भाषा मॉडल अंग्रेज़ी है। किसी अन्य भाषा में लिखे **इनवॉइस से टेक्स्ट निकालने** के लिए, पहचान से पहले भाषा सेट करें: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Large PDFs +जब मल्टी‑पेज PDFs से निपट रहे हों, तो पहले प्रत्येक पेज को छवि में एक्सट्रैक्ट करें (Aspose PDF → Image) और फिर प्रत्येक पेज पर वही ROI लॉजिक लागू करें। + +--- + +## Step 7 – Performance Tips & Pro Tips + +- **Cache the engine**: लूप में बार‑बार `OcrEngine` बनाना धीमा करता है। इसे एक बार इंस्टैंशिएट करें और पुनः उपयोग करें। +- **Batch processing**: यदि आपके पास दर्जनों इनवॉइस हैं, तो OCR कॉल को `ThreadPoolExecutor` में रैप करके I/O‑बाउंड वर्क को पैरललाइज़ करें। +- **Confidence check**: `ocr_result.confidence` 0 से 1 के बीच एक फ्लोट देता है। 0.85 से नीचे के परिणामों को रिजेक्ट करें और बड़े ROI या मैन्युअल रिव्यू पर फॉल्बैक करें। + +> **Watch out**: ROI बहुत छोटा सेट करने से अक्षर कट सकते हैं, जिससे गड़बड़ आउटपुट मिलेगा। स्केलिंग से पहले कुछ नमूना इनवॉइस के साथ हमेशा टेस्ट करें। + +--- + +## Conclusion + +अब आपके पास Aspose OCR का उपयोग करके **छवि से टेक्स्ट निकालने** के लिए एक ठोस, प्रोडक्शन‑रेडी मेथड है, जिसमें **परिभाषित क्षेत्र (ROI)** सेट करना, **OCR के लिए छवि लोड करना**, और इनवॉइस फ़ील्ड्स से विश्वसनीय रूप से **टेक्स्ट निकालना** शामिल है। OCR को एक टाइट ROI तक सीमित करने से आप गति और सटीकता दोनों बढ़ाते हैं—हजारों रसीदों के बैच प्रोसेसिंग के लिए परफेक्ट। + +अगला कदम तैयार है? इस स्क्रिप्ट को एक Flask API में इंटीग्रेट करें ताकि आपका वेब ऐप इनवॉइस अपलोड कर सके और तुरंत टोटल राशि रिटर्न कर सके। या कई ROIs के साथ प्रयोग करके एक ही बार में तिथि, इनवॉइस नंबर, और विक्रेता नाम निकालें। संभावनाएँ अनंत हैं, और यहाँ कवर किए गए मूलभूत सिद्धांतों के साथ, आप किसी भी OCR चुनौती को संभालने के लिए पूरी तरह तैयार हैं। + +Happy coding, and may your extracted text always be clean! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/hindi/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..9e08732ae --- /dev/null +++ b/ocr/hindi/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Python के async OCR का उपयोग करके छवि से टेक्स्ट निकालें। सीखें कि tif + को टेक्स्ट में कैसे बदलें, OCR के लिए छवि लोड करें, और छवि से टेक्स्ट को कुशलतापूर्वक + पहचानें। +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: hi +og_description: Python async OCR का उपयोग करके छवि से टेक्स्ट निकालें। यह गाइड दिखाता + है कि tif को टेक्स्ट में कैसे बदलें, OCR के लिए छवि लोड करें, और छवि से टेक्स्ट + पहचानें। +og_title: Python Async OCR के साथ छवि से टेक्स्ट निकालें – पूर्ण गाइड +tags: +- OCR +- Python +- AsyncIO +title: Python Async OCR के साथ छवि से टेक्स्ट निकालें – पूर्ण गाइड +url: /hi/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# इमेज से टेक्स्ट निकालें Python Async OCR के साथ – पूर्ण गाइड + +क्या आपको **इमेज से टेक्स्ट निकालना** जल्दी है? Python के async OCR के साथ आप इसे कुछ ही लाइनों के कोड में कर सकते हैं। चाहे आप बड़े .tif स्कैन से निपट रहे हों या कुछ JPEG फ़ाइलों से, यह ट्यूटोरियल आपको दिखाता है कि tif को टेक्स्ट में कैसे बदलें, OCR के लिए इमेज कैसे लोड करें, और अंत में इमेज से टेक्स्ट को बिना इवेंट लूप को ब्लॉक किए कैसे पहचानें। + +अधिकांश डेवलपर्स सिंक्रोनस लाइब्रेरी की ओर रुख करते हैं, फिर इंजन पिक्सेल प्रोसेस करते समय फ्रीज़्ड UI देखते हैं। इस गाइड में हम Aspose OCR Cloud की असिंक्रोनस API का उपयोग करके इस स्क्रिप्ट को उलट देंगे, ताकि आपका एप्लिकेशन रिस्पॉन्सिव रहे। अंत तक आपके पास एक रन करने योग्य स्क्रिप्ट होगी जो किसी भी सपोर्टेड इमेज फ़ॉर्मेट से टेक्स्ट निकालती है, और आप प्रत्येक स्टेप के पीछे का कारण समझ पाएँगे। + +## आप क्या सीखेंगे + +- Aspose OCR Cloud SDK को Python के लिए कैसे सेट‑अप करें। +- **OCR के लिए इमेज लोड** करने और async रिकग्निशन टास्क शुरू करने के लिए आवश्यक सटीक कोड। +- बड़े .tif फ़ाइलों और लाइसेंसिंग क्विर्क्स को हैंडल करने के टिप्स। +- सेवा त्रुटियों के समय भी **इमेज टेक्स्ट निकालना** सुरक्षित तरीके से। +- एक पूर्ण, कॉपी‑पेस्ट‑रेडी उदाहरण जिसे आप अपने प्रोजेक्ट में डाल सकते हैं। + +> **Prerequisite**: Python 3.8+ और एक Aspose OCR Cloud लाइसेंस फ़ाइल (`Aspose.OCR.Java.lic`)। अन्य कोई थर्ड‑पार्टी पैकेज आवश्यक नहीं है। + +--- + +![extract text from image workflow](workflow.png){: .align-center alt="इमेज से टेक्स्ट निकालने की वर्कफ़्लो"} + +## इमेज से टेक्स्ट निकालें – Async OCR Overview + +कोड में डुबने से पहले, चलिए फ्लो को समझते हैं। जब आप `recognize_async` कॉल करते हैं, तो SDK इमेज को Aspose के क्लाउड पर भेजता है, बैकग्राउंड जॉब शुरू करता है, और आपको एक `Task` ऑब्जेक्ट देता है। उस टास्क को await करने पर आपको एक `OcrResult` मिलता है जिसमें तस्वीर का प्लेन‑टेक्स्ट प्रतिनिधित्व होता है। क्योंकि कॉल असिंक्रोनस है, आप एक साथ कई जॉब्स फायर कर सकते हैं—बड़े स्कैन किए हुए दस्तावेज़ों के आर्काइव को बैच प्रोसेस करने के लिए परफेक्ट। + +### Async क्यों उपयोग करें? + +- **Non‑blocking I/O** – आपका इवेंट लूप अन्य काम (जैसे HTTP रिक्वेस्ट सर्व करना) संभालने के लिए फ्री रहता है। +- **Scalability** – एक साथ दर्जनों रिकग्निशन स्पिन अप करें; क्लाउड भारी काम संभालता है। +- **Responsiveness** – UI एप्लिकेशन OCR इंजन का इंतज़ार करते हुए फ्रीज़ नहीं होते। + +अब “क्यों” स्पष्ट है, चलिए **कैसे** देखते हैं। + +## Aspose OCR का उपयोग करके TIF को टेक्स्ट में बदलें + +एक आम समस्या यह मान लेना है कि हर OCR लाइब्रेरी ने .tif को नेटिवली सपोर्ट किया है। Aspose करता है, लेकिन आपको अभी भी उसे एक `Image` ऑब्जेक्ट देना पड़ता है। SDK फ़ॉर्मेट को एब्स्ट्रैक्ट करता है, इसलिए आप बस फ़ाइल पाथ पर पॉइंट कर सकते हैं। + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**मुख्य लाइनों की व्याख्या** + +- `ocr_engine.license = ...` – वैध लाइसेंस के बिना क्लाउड 403 एरर रिटर्न करता है। सुनिश्चित करें कि `.lic` फ़ाइल आपके स्क्रिप्ट की वर्किंग डायरेक्टरी से एक्सेसिबल हो। +- `ocr.Image.from_file(image_path)` – यह स्टेप **OCR के लिए इमेज लोड** करता है; SDK फ़ॉर्मेट को ऑटो‑डिटेक्ट करता है, इसलिए आपको पहले .tif को कन्वर्ट करने की ज़रूरत नहीं। +- `recognize_async` – एक coroutine‑compatible टास्क रिटर्न करता है। यदि आपके पास बैच है तो आप इन्हें `gather` कॉल में लॉन्च कर सकते हैं। + +> **Pro tip**: यदि आप गीगाबाइट‑साइज़ TIFF प्रोसेस कर रहे हैं, तो पहले उन्हें पेज‑वाइज़ स्प्लिट करने पर विचार करें। Aspose का `Image.from_file` पेज इंडेक्स स्वीकार कर सकता है, जिससे मेमोरी प्रेशर कम होता है। + +## इमेज से टेक्स्ट को असिंक्रोनसली रिकग्नाइज़ करें + +आइए देखें कि आप एक सामान्य स्क्रिप्ट से फ़ंक्शन को कैसे कॉल करेंगे। `asyncio.run` एंट्री पॉइंट सबसे आसान तरीका है coroutine को फायर करने का जब आप पहले से इवेंट लूप में नहीं हैं (जैसे एक साधारण CLI टूल)। + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**क्या उम्मीद करें** + +स्पष्ट, हाई‑रेज़ॉल्यूशन स्कैन के खिलाफ स्क्रिप्ट चलाने पर आमतौर पर मल्टी‑लाइन स्ट्रिंग मिलती है जो प्रिंटेड पेज से मेल खाती है। यदि इमेज नॉइज़ी है, तो Aspose फिर भी उसे क्लीन करने की कोशिश करता है, लेकिन आप गड़बड़ अक्षर देख सकते हैं। ऐसे में OCR इंजन को फ़ीड करने से पहले OpenCV (जैसे थ्रेशहोल्डिंग) से प्री‑प्रोसेसिंग करने पर विचार करें। + +### एरर्स को ग्रेसफ़ुली हैंडल करना + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +`OcrException` को कैच करने से आपका प्रोग्राम तब भी क्रैश नहीं करेगा जब क्लाउड एरर रिटर्न करता है—एक आम समस्या जो नए लोगों को नेटवर्क हिचकियों के कारण होती है। + +## OCR के लिए इमेज लोड – प्रैक्टिकल टिप्स + +1. **फ़ाइल पाथ बनाम बाइट्स** – SDK फ़ाइल पाथ स्वीकार करता है, लेकिन आप `bytes` ऑब्जेक्ट से भी लोड कर सकते हैं यदि इमेज मेमोरी में है (`ocr.Image.from_bytes`)। यह तब उपयोगी है जब आपने फ़ाइल पहले ही S3 या डेटाबेस से फ़ेच कर ली हो। +2. **सपोर्टेड फ़ॉर्मेट्स** – .tif के अलावा, Aspose PDF, BMP, GIF, और मल्टी‑पेज TIFF को भी हैंडल करता है। `Image.from_file("doc.pdf")` का उपयोग करके सीधे PDF को OCR कर सकते हैं। +3. **परफ़ॉर्मेंस** – बैच जॉब्स के लिए वही `OcrEngine` इंस्टेंस री‑यूज़ करें; प्रत्येक फ़ाइल के लिए नया इंजन बनाना अनावश्यक ओवरहेड जोड़ता है। + +## फुल वर्किंग एग्ज़ाम्पल (सभी स्टेप्स एक स्क्रिप्ट में) + +नीचे पूर्ण, रन‑टू‑डैड स्क्रिप्ट है जिसमें लाइसेंसिंग, एरर हैंडलिंग, और एक साधारण कमांड‑लाइन आर्ग्यूमेंट पार्सर शामिल है। कॉपी‑पेस्ट करें, लाइसेंस पाथ एडजस्ट करें, और आप तैयार हैं। + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**अपेक्षित आउटपुट** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +यदि इमेज में एक साधा पैराग्राफ है, तो कंसोल वही लाइन्स दिखाएगा, लाइन ब्रेक्स को संरक्षित रखते हुए। मल्टी‑पेज TIFF के लिए, SDK पेजेज को क्रम में कॉन्कैटेनेट करता है। + +## अक्सर पूछे जाने वाले प्रश्न (FAQ) + +**प्रश्न: क्या यह FastAPI जैसे अन्य async फ्रेमवर्क के साथ काम करता है?** +**उत्तर:** बिल्कुल। `asyncio.run` कॉल को `await async_ocr(path)` से बदल दें अपने एंडपॉइंट के अंदर, और FastAPI आपके लिए इवेंट लूप संभालेगा। + +**प्रश्न: अगर मुझे एक साथ सैकड़ों फ़ाइलें प्रोसेस करनी हों तो क्या करें?** +**उत्तर:** `asyncio.gather` का उपयोग करें: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**प्रश्न: क्या मैं पासवर्ड‑प्रोटेक्टेड PDF से टेक्स्ट निकाल सकता हूँ?** +**उत्तर:** सीधे नहीं। पहले PDF को अनलॉक करना पड़ेगा (जैसे `pikepdf` से) और फिर डिक्रिप्टेड बाइट्स को `ocr.Image.from_bytes` में फ़ीड करें। + +**प्रश्न: अंग्रेज़ी के अलावा अन्य भाषाओं को कैसे हैंडल करें?** +**उत्तर:** रिकग्निशन से पहले भाषा सेट करें: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose 60 से अधिक भाषाओं को सपोर्ट करता है; सटीक आइडेंटिफ़ायर्स के लिए डॉक्यूमेंट देखें। + +## निष्कर्ष + +अब आपके पास एक ठोस **इमेज से टेक्स्ट निकालने** का समाधान है जो Python के `asyncio` और Aspose OCR Cloud की असिंक्रोनस API को लेवरज करता है। ऊपर दिए गए स्टेप्स को फॉलो करके आप **tif को टेक्स्ट में बदल सकते हैं**, **OCR के लिए इमेज लोड कर सकते हैं**, और **इमेज से टेक्स्ट को नॉन‑ब्लॉकिंग तरीके से रिकग्नाइज़** कर सकते हैं—कमांड‑लाइन यूटिलिटीज़ और हाई‑ट्रैफ़िक वेब सर्विसेज दोनों के लिए परफेक्ट। + +अब आगे क्या? स्कैन की फ़ोल्डर को बैच में प्रोसेस करने की कोशिश करें, भाषा सेटिंग्स के साथ प्रयोग करें, या OCR आउटपुट को डाउनस्ट्रीम NLP पाइपलाइन में पाइप करें। आसमान ही सीमा है + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/hindi/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..b4b1395b2 --- /dev/null +++ b/ocr/hindi/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR का उपयोग करके तेज़ी से टेक्स्ट OCR निकालें। OCR की सटीकता + सुधारना, इमेज OCR लोड करना, इमेज OCR को प्री‑प्रोसेस करना, और Python में OCR स्कैन + चलाना सीखें। +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: hi +og_description: Aspose OCR का उपयोग करके तेज़ी से टेक्स्ट OCR निकालें। OCR की सटीकता + बढ़ाने, इमेज OCR लोड करने, इमेज OCR को प्री‑प्रोसेस करने और Python में OCR स्कैन + चलाने के तरीके में महारत हासिल करें। +og_title: टेक्स्ट निकालें OCR – Aspose OCR के साथ पूर्ण गाइड +tags: +- OCR +- Python +- Aspose +title: टेक्स्ट निकालें OCR – Aspose OCR के साथ पूर्ण गाइड +url: /hi/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Aspose OCR के साथ पूर्ण गाइड + +क्या आपको कभी **extract text ocr** को एक धुंधली स्कैन से निकालना पड़ा है लेकिन परिणाम गड़बड़ क्यों दिख रहे थे, समझ नहीं आया? आप अकेले नहीं हैं—कई डेवलपर्स को यह समस्या तब आती है जब इमेज टिल्टेड, नॉइज़ी, या बस कम कॉन्ट्रास्ट वाली हो। अच्छी खबर यह है कि कुछ कॉन्फ़िगरेशन ट्यूनिंग से गंदे चित्र को साफ़, सर्चेबल टेक्स्ट में बदला जा सकता है। इस ट्यूटोरियल में हम एक पूर्ण, एंड‑टू‑एंड उदाहरण के माध्यम से दिखाएंगे कि कैसे **ocr accuracy** को सुधारा जाए, **load image ocr** किया जाए, **preprocess image ocr** किया जाए, और अंत में Aspose OCR for Python के साथ OCR स्कैन चलाया जाए। + +इस गाइड के अंत तक आपके पास एक रन करने योग्य स्क्रिप्ट होगी जो स्कैन की गई JPEG को पढ़ेगी, उसे स्वचालित रूप से साफ़ करेगी, और निकाला गया टेक्स्ट कंसोल में प्रिंट करेगी। कोई रहस्यमय “see the docs” लिंक नहीं—आपको जो चाहिए वह सब यहाँ है। + +## आपको क्या चाहिए + +- **Python 3.8+** (सबसे नया स्थिर रिलीज़ सबसे अच्छा काम करता है) +- **Aspose.OCR for Python via .NET** – `pip install aspose-ocr` कमांड से इंस्टॉल करें +- एक **license file** (`Aspose.OCR.Java.lic`) यदि आपने खरीदी है (टेस्टिंग के लिए फ्री ट्रायल काम करता है) +- वह इमेज जिसे आप प्रोसेस करना चाहते हैं (उदा., `skewed_scanned_doc.jpg`) + +बस इतना ही। यदि आपके पास ये सब है, तो हम सीधे कोड में कूद सकते हैं। + +## चरण 1: Aspose OCR इंजन के साथ Extract Text OCR + +पहला काम है OCR इंजन को स्पिन अप करना और अपनी लाइसेंस लागू करना। इंजन को वह दिमाग समझें जो इमेज को पढ़ेगा; बिना लाइसेंस के यह छोटे डेमो लिमिट से आगे काम करने से इनकार कर देगा। + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **क्यों यह महत्वपूर्ण है:** लाइसेंस को पहले लागू करने से बाद में साइलेंट फेल्योर से बचा जा सकता है। यदि आप इस स्टेप को स्किप करते हैं, तो इंजन प्रतिबंधित मोड में फॉल बैक हो जाएगा और आपको केवल कुछ ही कैरेक्टर मिलेंगे—जो कि **extract text ocr** करने की आपकी उम्मीद के बिल्कुल विपरीत है। + +## चरण 2: Pre‑processing के साथ OCR सटीकता में सुधार + +क्रॉकेड या ग्रेनी स्कैन किसी भी OCR प्रोजेक्ट की बुराई होते हैं। Aspose आपको कुछ उपयोगी सेटिंग्स टॉगल करने की सुविधा देता है जो स्वचालित रूप से डेस्क्यू, डीनॉइज़, और कॉन्ट्रास्ट बढ़ाते हैं। यही **improve ocr accuracy** का मुख्य हिस्सा है। + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – इमेज को फिर से क्षैतिज (हॉरिज़ॉन्टल) घुमाता है, जो तब महत्वपूर्ण होता है जब मूल दस्तावेज़ पूरी तरह सपाट नहीं था। +- **remove_noise** – उन रैंडम स्पीकल्स को हटाता है जो अक्सर लो‑रिज़ॉल्यूशन JPEG में दिखाई देते हैं। +- **enhance_contrast** – डार्क टेक्स्ट को और डार्क, और लाइट बैकग्राउंड को और लाइट बनाता है, जिससे इंजन कैरेक्टर्स को बेहतर पहचान सके। +- **binarization = "Otsu"** – एक क्लासिक एल्गोरिद्म जो ब्लैक‑एंड‑व्हाइट कन्वर्ज़न के लिए सबसे अच्छा थ्रेशहोल्ड तय करता है। + +> **प्रो टिप:** यदि आप जानते हैं कि आपके स्रोत इमेज पहले से ही साफ़ हैं, तो इन विकल्पों को बंद करके प्रोसेसिंग स्पीड बढ़ा सकते हैं। लेकिन अधिकांश रियल‑वर्ल्ड स्कैन के लिए इन्हें ऑन रखना सबसे सुरक्षित विकल्प है। + +## चरण 3: स्कैनिंग के लिए Image OCR लोड करें + +अब जब इंजन तैयार है, हमें **load image ocr** करना होगा। Aspose का `Image.from_file` मेथड JPEG, PNG, TIFF, और कुछ और फॉर्मैट्स को सपोर्ट करता है। + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +`YOUR_DIRECTORY` को अपने मशीन पर वास्तविक पाथ से बदलें। यदि आप इन‑मेमोरी बाइट स्ट्रीम (जैसे वेब अपलोड) के साथ काम कर रहे हैं, तो आप `ocr.Image.from_bytes(byte_data)` भी उपयोग कर सकते हैं—इसी इंजन द्वारा इसे हैंडल किया जाएगा। + +> **एज केस:** बड़े TIFF फाइल्स मेमोरी‑हंग्री हो सकती हैं। यदि आपको `MemoryError` मिलता है, तो पहले इमेज को डाउन‑सैंपल करने या `ocr_engine.config.max_image_size` का उपयोग करके डाइमेंशन्स को सीमित करने पर विचार करें। + +## चरण 4: OCR स्कैन चलाएँ और परिणाम प्राप्त करें + +इमेज लोड हो गई और प्री‑प्रोसेसिंग सक्षम है, अब अंतिम कदम है **run OCR scan**। यह कॉल बैकग्राउंड में सभी भारी काम करता है। + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +`ocr_result` ऑब्जेक्ट में कई उपयोगी प्रॉपर्टीज़ होती हैं: + +- `ocr_result.text` – वह साधारण स्ट्रिंग जो आपको चाहिए। +- `ocr_result.confidence` – एक न्यूमेरिक स्कोर (0‑100) जो कुल विश्वसनीयता दर्शाता है। +- `ocr_result.words` – शब्द ऑब्जेक्ट्स की लिस्ट जिसमें बाउंडिंग बॉक्स कोऑर्डिनेट्स होते हैं, हाईलाइटिंग के लिए उपयोगी। + +## चरण 5: निकाले गए टेक्स्ट को प्रिंट करें + +अंत में, हम परिणाम आउटपुट करते हैं। वास्तविक एप्लिकेशन में आप टेक्स्ट को फ़ाइल, डेटाबेस, या सर्च इंडेक्स में लिख सकते हैं। इस ट्यूटोरियल के लिए, एक साधा `print` ही काम कर देगा। + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**अपेक्षित आउटपुट** (साधे इनवॉइस का उदाहरण): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +यदि कॉन्फिडेंस कम है (< 80), तो आप प्री‑प्रोसेसिंग विकल्पों को फिर से देख सकते हैं या `"Sauvola"` जैसी अलग बिनैराइज़ेशन मेथड आज़मा सकते हैं। + +## बोनस: Pre‑processing पाइपलाइन का विज़ुअलाइज़ेशन (वैकल्पिक) + +कभी‑कभी यह देखना मददगार होता है कि इंजन ने इमेज पर क्या किया। Aspose आपको प्रोसेस्ड बिटमैप एक्सपोर्ट करने की सुविधा देता है: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +आप फिर इस इमेज को डॉक्यूमेंटेशन में एम्बेड कर सकते हैं: + +extract text ocr workflow diagram showing preprocessing steps + +> **आप यह क्यों करेंगे:** जब OCR परिणाम गलत दिखे, तो `processed_debug.png` को एक त्वरित नज़र में देखना अक्सर बताता है कि इमेज अभी भी बहुत डार्क है, अभी भी स्क्यू है, या उसमें नॉइज़ बचा है। + +## सामान्य प्रश्न और समस्याएँ + +- **अगर मेरा दस्तावेज़ मल्टी‑पेज़ है तो?** + Aspose OCR पेज‑बाय‑पेज काम करता है। प्रत्येक पेज इमेज पर लूप करें और `ocr_result.text` को कॉन्कैटेनेट करें। + +- **क्या मैं अंग्रेज़ी के अलावा अन्य भाषाएँ पहचान सकता हूँ?** + हाँ—`ocr_engine.config.language = "fra"` (या कोई भी ISO‑639‑2 कोड) सेट करें `recognize` कॉल करने से पहले। + +- **इमेज साइज पर कोई लिमिट है क्या?** + डिफ़ॉल्ट रूप से इंजन 10 MP तक सीमित करता है। यदि आपको बड़े स्कैन चाहिए तो `ocr_engine.config.max_image_size` बढ़ाएँ, लेकिन मेमोरी उपयोग पर नजर रखें। + +- **क्या PDFs के लिए अलग OCR इंजन चाहिए?** + PDFs के लिए आप या तो प्रत्येक पेज को इमेज में एक्सट्रैक्ट कर सकते हैं (Aspose.PDF का उपयोग करके) या बिल्ट‑इन PDF OCR फीचर इस्तेमाल कर सकते हैं। यहाँ दिखाए गए स्टेप्स इमेज मिलने के बाद समान रहते हैं। + +## सारांश + +हमने बताया कि कैसे **extract text ocr** को Aspose OCR for Python से किया जाता है, लाइसेंसिंग से लेकर सेटिंग्स ट्यून करके **improve ocr accuracy** तक, स्रोत फ़ाइल लोड करने और अंत में **run OCR scan** करके साफ़ टेक्स्ट निकालने तक। पूरा स्क्रिप्ट कॉपी‑पेस्ट करने के लिए तैयार है, और अब आप समझते हैं कि प्रत्येक कॉन्फ़िगरेशन फ़्लैग क्यों महत्वपूर्ण है। + +## आगे क्या? + +- **विभिन्न बिनैराइज़ेशन मेथड्स** (`"Sauvola"`, `"Bradley"`) के साथ प्रयोग करें। कुछ फ़ॉन्ट्स एडेप्टिव थ्रेशहोल्ड पर बेहतर प्रतिक्रिया देते हैं। +- **सर्च इंजन** (जैसे Elasticsearch) के साथ इंटीग्रेट करें और कॉन्फिडेंस स्कोर को रैंकिंग के लिए उपयोग करें। +- **OCR पोस्ट‑प्रोसेसिंग** लाइब्रेरीज़ जैसे `pyspellchecker` के साथ मिलाकर सामान्य मिस‑रिकग्निशन को साफ़ करें। +- **बैच प्रोसेसिंग** का अन्वेषण करें—सैकड़ों स्कैन के लिए स्टेप्स को फ़ंक्शन में रैप करें और इमेज फ़ोल्डर को फीड करें। + +कोड को अपनी पसंद के अनुसार ट्यून करें, अपना लॉगिंग जोड़ें, या इसे बड़े डॉक्यूमेंट‑मैनेजमेंट पाइपलाइन में प्लग करें। यदि कोई समस्या आती है, तो नीचे कमेंट करें—हैप्पी कोडिंग! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/hindi/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..ed306dcc4 --- /dev/null +++ b/ocr/hindi/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java का उपयोग करके PDF को OCR करने का तरीका। जानिए कैसे PDF + पर OCR चलाएँ, PDF का टेक्स्ट पहचानें, PDF को JSON में बदलें और केवल कुछ ही कोड लाइनों + में OCR के लिए PDF लोड करें। +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: hi +og_description: Aspose OCR Java का उपयोग करके PDF को OCR कैसे करें। यह गाइड दिखाता + है कि PDF पर OCR कैसे चलाएँ, PDF का टेक्स्ट पहचानें, PDF को JSON में बदलें और PDF + को जल्दी से OCR के लिए लोड करें। +og_title: Aspose OCR के साथ PDF को OCR कैसे करें – पूर्ण प्रोग्रामिंग ट्यूटोरियल +tags: +- Aspose OCR +- Java +- PDF processing +title: Aspose OCR के साथ PDF को OCR कैसे करें – पूर्ण चरण‑दर‑चरण गाइड +url: /hi/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR के साथ PDF को OCR कैसे करें – पूर्ण चरण‑दर‑चरण गाइड + +क्या आपने कभी **PDF को OCR कैसे करें** इस बारे में सोचा है बिना कमांड‑लाइन टूल्स से जूझे या महंगे SaaS की कीमत चुकाए? आप अकेले नहीं हैं। कई प्रोजेक्ट्स में—इनवॉइस ऑटोमेशन, स्कैन किए गए कॉन्ट्रैक्ट्स का अभिलेखीयकरण, या सर्चेबल नॉलेज बेस बनाना—आपको तेज़ और भरोसेमंद तरीके से PDF से टेक्स्ट निकालने की जरूरत पड़ेगी। + +अच्छी खबर? Aspose OCR for Java के साथ आप **PDF पर OCR चलाना**, टेक्स्ट PDF पेजेज़ को पहचानना, **PDF को JSON में बदलना**, और यहाँ तक कि **PDF को OCR के लिए लोड करना** कुछ ही लाइनों में कर सकते हैं। इस ट्यूटोरियल में हम पूरे वर्कफ़्लो को समझेंगे, प्रत्येक चरण क्यों महत्वपूर्ण है यह बताएँगे, और आपको एक तैयार‑कोड सैंपल देंगे जिसे आप अपने प्रोजेक्ट में जोड़ सकते हैं। + +## आप क्या सीखेंगे + +- Aspose OCR इंजन को सेटअप करना और लाइसेंस लागू करना। +- **PDF को OCR के लिए लोड** करने और उसे रिकग्नाइज़र में फीड करने का सही तरीका। +- एक ही कॉल में सभी पेजेज़ पर **टेक्स्ट PDF को पहचानना**। +- पूरे OCR परिणाम को **JSON** फ़ाइल (डाउनस्ट्रीम API के लिए परफ़ेक्ट) और एक पेज को **XML** में एक्सपोर्ट करना। +- मल्टी‑पेज PDF या कस्टम लैंग्वेज पैक्स के साथ काम करते समय उपयोगी टिप्स, संभावित समस्याएँ और वैरिएशन्स। + +> **Prerequisites** – आपको Java 8 या उससे नया, एक वैध Aspose OCR for Java लाइसेंस फ़ाइल (`Aspose.OCR.Java.lic`), और क्लासपाथ में Aspose OCR JAR चाहिए। अन्य कोई बाहरी लाइब्रेरी आवश्यक नहीं है। + +--- + +## PDF को OCR – Aspose OCR इंजन को इनिशियलाइज़ करें + +सबसे पहले आपको `OcrEngine` का एक इंस्टेंस बनाना है और अपना लाइसेंस अटैच करना है। यह चरण पूरी फ़ीचर सेट को अनलॉक करता है और इवैल्युएशन वॉटरमार्क को हटाता है। + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**यह क्यों महत्वपूर्ण है:** +लाइसेंस के बिना, Aspose OCR सीमित “ट्रायल” मोड में चलता है जो पेज की संख्या को सीमित करता है और आउटपुट में वॉटरमार्क जोड़ता है। लाइसेंस को पहले से लागू करने से बाकी पाइपलाइन बिना किसी अनपेक्षित प्रतिबंध के काम करती है। + +--- + +## PDF पर OCR चलाएँ – डॉक्यूमेंट लोड करें और टेक्स्ट पहचानें + +अब हम **PDF को OCR के लिए लोड** करते हैं। Aspose OCR PDFs को एक विशेष `PdfDocument` टाइप के रूप में ट्रीट करता है, जो आंतरिक रूप से प्रत्येक पेज को इमेज के रूप में एक्सट्रैक्ट करता है और फिर उसे रिकग्नाइज़र को फीड करता है। + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**अंदर क्या हो रहा है?** +`recognizeDocument` हर पेज पर इटररेट करता है, उसे ऑप्टिमल DPI पर रास्टराइज़ करता है, और फिर OCR इंजन चलाता है। परिणाम एक `OcrPage` एरे होता है जहाँ प्रत्येक एलिमेंट में डिटेक्टेड टेक्स्ट, कॉन्फिडेंस स्कोर, और लेआउट जानकारी होती है। यह तरीका जेनरिक OCR लाइब्रेरी में रॉ PDF बाइट्स फीड करने से कहीं अधिक भरोसेमंद है। + +--- + +## OCR परिणाम को JSON में कन्वर्ट करें – फुल रिपोर्ट एक्सपोर्ट करें + +ज्यादातर डाउनस्ट्रीम सिस्टम JSON को पसंद करते हैं क्योंकि इसे Java, JavaScript, Python, या यहाँ तक कि PowerShell में आसानी से डीसिरियलाइज़ किया जा सकता है। Aspose OCR एक `JsonExport` हेल्पर के साथ आता है जो पूरे `OcrPage[]` एरे को **सीरियलाइज़** करता है। + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**आप इसे कब उपयोग करेंगे?** +यदि आपको OCR आउटपुट को सर्च इंडेक्स (Elasticsearch, Solr) या डेटा‑पाइपलाइन में फीड करना है, तो JSON फॉर्मेट प्रत्येक पेज, लाइन, और शब्द की स्ट्रक्चर्ड रिप्रेजेंटेशन देता है, जिसमें कॉन्फिडेंस वैल्यू भी शामिल होती है। + +--- + +## पहला पेज XML में एक्सपोर्ट करें – व्यक्तिगत पेज सेव करें + +कभी‑कभी आपको केवल एक ही पेज की ज़रूरत होती है—शायद पहला पेज टाइटल या इनवॉइस नंबर रखता हो। `XmlExport` क्लास आपको एक सिंगल `OcrPage` को साफ‑सुथरी XML फ़ाइल में डंप करने की सुविधा देता है। + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**XML क्यों?** +लेगेसी सिस्टम या कुछ एंटरप्राइज़ वर्कफ़्लो अभी भी इन्गेस्ट्शन के लिए XML स्कीमा पर निर्भर होते हैं। जेनरेटेड फ़ाइल Aspose की अपनी स्कीमा का पालन करती है, जिससे वैलिडेशन आसान हो जाता है। + +--- + +## आउटपुट वेरिफ़ाई करें – JSON और XML फ़ाइलें चेक करें + +प्रोग्राम समाप्त होने के बाद, आपको `YOUR_DIRECTORY` में दो फ़ाइलें मिलेंगी: + +- `report_ocr.json` – पेज ऑब्जेक्ट्स का एरे रखती है। एक त्वरित स्निपेट इस प्रकार दिख सकता है: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – पेज 1 की वही जानकारी `` टैग्स में रैप्ड रखती है। + +उन्हें किसी भी एडिटर में खोलें; आपको रॉ OCR स्ट्रिंग्स, कॉन्फिडेंस स्कोर, और बाउंडिंग‑बॉक्स कोऑर्डिनेट्स दिखेंगे। अगर JSON खाली दिखे, तो दोबारा चेक करें कि इनपुट PDF में वास्तव में रास्टराइज़्ड कंटेंट (स्कैन्ड इमेज) है या सेलेक्टेबल टेक्स्ट—Aspose OCR केवल इमेज पर काम करता है। + +--- + +## सामान्य समस्याएँ और प्रो टिप्स + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Empty JSON** | PDF में नेटिव टेक्स्ट है, इमेज नहीं। | `PdfDocument.fromFile(..., true)` का उपयोग करके रास्टराइज़ेशन फोर्स करें, या पहले पेजेज़ को इमेज में कन्वर्ट करें। | +| **Low confidence** | सोर्स PDF लो‑रेज़ोल्यूशन या बहुत कॉम्प्रेस्ड है। | `ocrEngine.getImageProcessingOptions().setDpi(300)` को `recognizeDocument` से पहले कॉल करके DPI बढ़ाएँ। | +| **License not found** | गलत पाथ या फ़ाइल नहीं मिली। | एब्सोल्यूट पाथ इस्तेमाल करें या `.lic` फ़ाइल को क्लासपाथ पर रखें और `lic.setLicense("Aspose.OCR.Java.lic")` कॉल करें। | +| **Out‑of‑memory on huge PDFs** | सभी पेज एक साथ मेमोरी में लोड हो रहे हैं। | पेजेज़ को बैच में प्रोसेस करें: `recognizeDocument(pdfDoc, startPage, endPage)`। | + +--- + +## उदाहरण को विस्तारित करना + +- **विशिष्ट भाषा के साथ PDF पर OCR चलाएँ** – `ocrEngine.getLanguage().setLanguage(Language.English)` सेट करें या कस्टम लैंग्वेज पैक लोड करें। +- **प्रत्येक पेज को अलग‑अलग JSON फ़ाइल में एक्सपोर्ट करें** – `ocrPages` पर इटररेट करें और `JsonExport.save(page, "page" + page.getPageNumber() + ".json")` कॉल करें। +- **सर्च इंजन के साथ इंटीग्रेट करें** – JSON को Elasticsearch के `attachment` प्रोसेसर में फीड करें ताकि फुल‑टेक्स्ट सर्च हो सके। + +--- + +## निष्कर्ष + +अब आपके पास Aspose OCR for Java का उपयोग करके **PDF को OCR कैसे करें** का एक पूर्ण, प्रोडक्शन‑रेडी समाधान है। इंजन को इनिशियलाइज़ करके, PDF लोड करके, OCR चलाकर, और दोनों **JSON** और **XML** एक्सपोर्ट करके आप OCR को किसी भी बैकएंड वर्कफ़्लो में इंटीग्रेट कर सकते हैं—चाहे आपको **PDF पर OCR चलाना** हो, **टेक्स्ट PDF को पहचानना** हो, **PDF को JSON में बदलना** हो, या बस **PDF को OCR के लिए लोड करना** हो। + +इसे आज़माएँ, DPI या लैंग्वेज सेटिंग्स को ट्यून करें, और देखें कि आपके पहले अंधेरे PDFs सर्चेबल एसेट्स में बदल रहे हैं। आगे बढ़ना है? JSON को Elasticsearch में इंडेक्स करें, या XML को XSLT से प्रोसेस करके कस्टम रिपोर्ट बनाएँ। + +हैप्पी कोडिंग, और आपके PDFs हमेशा रीडेबल रहें! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/hindi/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..630d23ec7 --- /dev/null +++ b/ocr/hindi/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,158 @@ +--- +category: general +date: 2026-05-03 +description: 'OCR को तेज़ी से चलाने के लिए: Aspose OCR Java का उपयोग करके छवि से टेक्स्ट + निकालना और फ़ॉर्म से टेक्स्ट पहचानना सीखें। OCR के लिए छवि पढ़ने के सरल चरण।' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: hi +og_description: 'OCR को जल्दी चलाने का तरीका: Aspose OCR Java का उपयोग करके छवि से + टेक्स्ट निकालना और फ़ॉर्म से टेक्स्ट पहचानना सीखें। OCR के लिए छवि पढ़ने के सरल + चरण।' +og_title: फ़ॉर्म पर OCR कैसे चलाएँ – छवि से टेक्स्ट निकालें +tags: +- ocr +- java +- image-processing +title: फ़ॉर्म पर OCR कैसे चलाएँ – छवि से पाठ निकालें +url: /hi/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# कैसे चलाएँ OCR को फ़ॉर्म पर – इमेज से टेक्स्ट निकालें + +क्या आपने कभी **OCR चलाने** के बारे में सोचा है बिना घंटों तक अजीब लाइब्रेरीज़ के साथ झंझट किए? आप अकेले नहीं हैं। कई प्रोजेक्ट्स में—चाहे वह इनवॉइस को डिजिटल बनाना हो, कॉन्ट्रैक्ट्स को आर्काइव करना हो, या हैंडराइटन फ़ॉर्म से डेटा निकालना हो—**इमेज से टेक्स्ट निकालना** एक रोज़मर्रा की समस्या है। + +बात यह है: Aspose OCR for Java पूरी प्रक्रिया को लगभग दर्द‑रहित बनाता है। इस ट्यूटोरियल में हम हर वह कोड लाइन देखेंगे जो आपको **फ़ॉर्म से टेक्स्ट पहचानने** के लिए चाहिए, समझाएंगे कि प्रत्येक कदम क्यों ज़रूरी है, और दिखाएंगे कि **OCR के लिए इमेज पढ़ना** कैसे किया जाए साथ ही कॉन्फिडेंस स्कोर के साथ। अंत तक आपके पास एक तैयार‑चलाने‑योग्य Java क्लास होगा जिसे आप किसी भी Maven या Gradle प्रोजेक्ट में डाल सकते हैं। + +## आप क्या सीखेंगे + +- Aspose OCR इंजन सेट‑अप करना और लाइसेंस लागू करना। +- JPEG, PNG, या TIFF को मेमोरी में लोड करना। +- OCR चलाना और पहचाने गए टेक्स्ट की प्रत्येक लाइन पर इटरेट करना। +- कम‑कॉन्फिडेंस वाली लाइनों को मैन्युअल रिव्यू के लिए चिन्हित करना। +- उदाहरण को मल्टी‑पेज PDF या विभिन्न इमेज फ़ॉर्मेट्स के लिए विस्तारित करना। + +Aspose का कोई पूर्व अनुभव आवश्यक नहीं है, बस एक बेसिक Java डेवलपमेंट एनवायरनमेंट (JDK 11+ और कोई भी IDE) चाहिए। चलिए शुरू करते हैं। + +![how to run ocr example](/images/ocr-demo.png){alt="स्कैन किए हुए फ़ॉर्म पर OCR चलाने का उदाहरण"} + +## चरण 1: OCR इंजन को इनिशियलाइज़ करें – **how to run ocr** + +OCR ऑपरेशन से पहले सबसे पहला काम `OcrEngine` इंस्टेंस बनाना और वैध लाइसेंस अटैच करना है। बिना लाइसेंस के लाइब्रेरी डेमो मोड में चलती है, जो प्रोसेस की जा सकने वाली पेजों की संख्या को सीमित कर देती है। + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**यह क्यों महत्वपूर्ण है:** +`OcrEngine` सभी कॉन्फ़िगरेशन—भाषा, डिटेक्शन मोड, और परफ़ॉर्मेंस ट्यूनिंग—को रखता है। लाइसेंस को पहले सेट करके आप ट्रायल मोड में साइलेंट फ़ॉलबैक से बचते हैं, जिससे आपका आउटपुट कट नहीं होगा। + +## चरण 2: इमेज लोड करें – **extract text from image** + +अब हमें एक `Image` ऑब्जेक्ट चाहिए जो उस फ़ाइल की ओर इशारा करे जिसे आप स्कैन करना चाहते हैं। Aspose कई फ़ॉर्मेट सपोर्ट करता है, इसलिए आप पहले से PNG में कन्वर्ट किया हुआ स्कैन किया हुआ PDF पेज, एक रॉ JPEG, या यहाँ तक कि मल्टी‑पेज TIFF भी दे सकते हैं। + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**यह क्यों महत्वपूर्ण है:** +इमेज को `Image` ऑब्जेक्ट के रूप में लोड करने से इंजन को पिक्सेल डेटा, DPI जानकारी, और कलर डेप्थ मिलती है—जो सभी OCR की सटीकता को प्रभावित करते हैं। यदि आप इस स्टेप को स्किप करके रॉ बाइट एरे पास करेंगे, तो ये मददगार संकेत खो जाएंगे। + +## चरण 3: OCR चलाएँ – **recognize text from form** + +अब मज़े का हिस्सा: असल में कैरेक्टर्स को पहचानना। `recognize` मेथड एक `RecognitionResult` रिटर्न करता है जिसमें `Line` ऑब्जेक्ट्स का कलेक्शन होता है, प्रत्येक के साथ उसका अपना कॉन्फिडेंस स्कोर होता है। + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**यह क्यों महत्वपूर्ण है:** +`recognize` कॉल करने से कई आंतरिक प्रोसेसेस ट्रिगर होते हैं—प्रि‑प्रोसेसिंग (डेस्क्यू, नॉइज़ रिमूवल), सेगमेंटेशन, कैरेक्टर क्लासिफिकेशन, और पोस्ट‑प्रोसेसिंग (स्पेल‑चेक, लैंग्वेज मॉडल)। रिज़ल्ट ऑब्जेक्ट इन सभी जटिलताओं को एब्स्ट्रैक्ट कर देता है। + +## चरण 4: रिज़ल्ट प्रोसेस करें – **read image for ocr** आउटपुट + +जब आपके पास `RecognitionResult` हो, तो आप प्रत्येक लाइन पर इटरेट कर सकते हैं, स्वचालित रूप से तय कर सकते हैं कि क्या रखना है, और उन लाइनों को फ़्लैग कर सकते हैं जो शंकास्पद लगें। अधिकांश प्रिंटेड फ़ॉर्म्स के लिए 85 % का कॉन्फिडेंस थ्रेशोल्ड एक अच्छा शुरुआती बिंदु है। + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**अपेक्षित आउटपुट (उदाहरण):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +उपरोक्त उदाहरण में इंजन को कुल राशि के अंतिम अंक पर संदेह था, इसलिए हमने एक वार्निंग प्रिंट की। आप इन लाइनों को मैन्युअल करेक्शन के लिए UI में पास कर सकते हैं या बाद में रिव्यू के लिए लॉग कर सकते हैं। + +### एज केस और टिप्स + +- **मल्टी‑पेज:** यदि आपके पास मल्टी‑पेज PDF है, तो प्रत्येक पेज इंडेक्स पर लूप करें और `Image.fromPdf(pdfPath, pageIndex)` कॉल करें। +- **विभिन्न भाषाएँ:** `engine.getLanguage().setLanguage(Language.Spanish);` को `recognize` कॉल करने से पहले सेट करें। +- **इमेज क्वालिटी:** लो‑रेज़ोल्यूशन स्कैन (< 150 DPI) अक्सर 80 % से कम कॉन्फिडेंस देते हैं। `image.resize(300, 300)` से अपस्केल करने से मदद मिल सकती है, लेकिन सबसे अच्छा समाधान बेहतर स्कैन है। +- **परफ़ॉर्मेंस:** कई इमेज प्रोसेस करने के लिए एक ही `OcrEngine` इंस्टेंस को री‑यूज़ करने से ओवरहेड कम होता है, बनिस्बत हर बार नया बनाना। + +## अक्सर पूछे जाने वाले प्रश्न + +**क्या मैं इसे हेडलेस सर्वर पर चला सकता हूँ?** +बिल्कुल। लाइब्रेरी में कोई GUI डिपेंडेंसी नहीं है, इसलिए यह Docker कंटेनर या CI पाइपलाइन में भी ठीक काम करती है। + +**अगर मेरे पास अभी लाइसेंस नहीं है तो?** +आप अभी भी `engine.recognize` कॉल कर सकते हैं, लेकिन डेमो मोड पहले 2 पेज़ के बाद रुक जाएगा और आउटपुट पर वॉटरमार्क लगेगा। यह त्वरित टेस्टिंग के लिए उपयुक्त है। + +**क्या संरचित डेटा (जैसे टेबल) निकालना संभव है?** +Aspose OCR एक `TableRecognizer` क्लास प्रदान करता है, लेकिन यह शुरुआती गाइड के दायरे से बाहर है। बेसिक को समझने के बाद आधिकारिक डॉक्यूमेंटेशन में `TableRecognizer` देखें। + +## सब कुछ एक साथ – **how to run ocr** का सारांश + +हमने वह सब कवर किया जो आपको स्कैन किए हुए फ़ॉर्म पर **OCR चलाने** के लिए चाहिए: इंजन इनिशियलाइज़ करना, इमेज लोड करना, पहचान चलाना, और परिणामों को समझदारी से हैंडल करना। कुछ ही Java लाइनों से आप **इमेज से टेक्स्ट निकाल सकते** हैं, **फ़ॉर्म से टेक्स्ट पहचान सकते** हैं, और **OCR के लिए इमेज पढ़ सकते** हैं, साथ ही कॉन्फिडेंस स्कोर के आधार पर यह तय कर सकते हैं कि कब मानव रिव्यू आवश्यक है। + +अगला कदम? JPEG को मल्टी‑पेज 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/hindi/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..f6a6e8649 --- /dev/null +++ b/ocr/hindi/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-05-03 +description: जावा में OCR का उपयोग करके PDF फ़ाइलों से टेक्स्ट निकालना। PDF से टेक्स्ट + पहचानना सीखें, PDF को टेक्स्ट में बदलें, और OCR मल्टी‑पेज PDF को कुशलतापूर्वक संभालें। +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: hi +og_description: जावा में PDF फ़ाइलों से टेक्स्ट निकालने के लिए OCR का उपयोग कैसे करें। + यह गाइड दिखाता है कि PDF से टेक्स्ट कैसे पहचाना जाए, PDF को टेक्स्ट में कैसे बदला + जाए, और OCR मल्टी‑पेज PDF को कैसे प्रोसेस किया जाए। +og_title: जावा में OCR का उपयोग कैसे करें – मल्टी‑पेज PDF से टेक्स्ट निकालें +tags: +- ocr +- java +- pdf +- aspose +title: जावा में OCR का उपयोग कैसे करें – मल्टी‑पेज PDF से टेक्स्ट निकालें +url: /hi/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# जावा में OCR का उपयोग कैसे करें – मल्टी‑पेज PDF से टेक्स्ट निकालें + +**जावा प्रोजेक्ट में OCR का उपयोग कैसे करें?** यदि आपको PDF फ़ाइलों से टेक्स्ट निकालने की ज़रूरत पड़ी है बिना PDF की आंतरिक टेक्स्ट लेयर पर निर्भर हुए, तो आप सही जगह पर हैं। यह ट्यूटोरियल आपको एक पूर्ण, चलाने योग्य समाधान के माध्यम से ले जाता है जो **PDF से टेक्स्ट पहचानता है**, PDF को टेक्स्ट में बदलता है, और यहाँ तक कि **OCR मल्टी‑पेज PDF** को एक ही कॉल में संभालता है। + +कल्पना कीजिए कि आपको एक स्कैन किया हुआ कॉन्ट्रैक्ट मिला — एक 12‑पेज TIFF PDF के अंदर। आप इंडेक्सिंग के लिए सर्चेबल टेक्स्ट चाहते हैं, लेकिन फ़ाइल में कोई एम्बेडेड कैरेक्टर नहीं हैं। कोई समस्या नहीं; हम आपको कदम‑दर‑कदम दिखाएंगे कि इसे कैसे करना है। + +> **आपको क्या मिलेगा:** Aspose.OCR का उपयोग करते हुए तैयार‑चलाने योग्य जावा स्निपेट, प्रत्येक लाइन का महत्व समझाने वाले स्पष्टीकरण, सामान्य समस्याओं के लिए टिप्स, और तुरंत सत्यापित करने योग्य सैंपल आउटपुट। + +--- + +## आपको क्या चाहिए + +शुरू करने से पहले सुनिश्चित करें कि आपके पास है: + +* **Java 17** (या कोई भी हालिया JDK) – कोड पुरानी संस्करणों के साथ भी काम करता है, लेकिन 17 सबसे उपयुक्त है। +* **Aspose OCR for Java** लाइब्रेरी – आप JAR Aspose साइट से डाउनलोड कर सकते हैं या Maven/Gradle के माध्यम से जोड़ सकते हैं। +* एक **मल्टी‑पेज PDF** (या TIFF) जिसे आप प्रोसेस करना चाहते हैं। हमारे उदाहरणों में हम `contract_multipage.pdf` का उपयोग करेंगे, जो `YOUR_DIRECTORY` नामक फ़ोल्डर में रखी होगी। +* एक वैध **Aspose OCR लाइसेंस फ़ाइल** (`Aspose.OCR.Java.lic`)। बिना लाइसेंस के लाइब्रेरी इवैल्युएशन मोड में चलती है, जो त्वरित परीक्षण के लिए ठीक है लेकिन आउटपुट में वॉटरमार्क जोड़ देती है। + +बस इतना ही—कोई अतिरिक्त OCR इंजन नहीं, कोई नेटिव बाइनरी नहीं, सिर्फ एक JAR और एक लाइसेंस। + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "जावा में OCR का उपयोग – प्रक्रिया का दृश्य अवलोकन") + +*Image alt text: जावा में OCR का उपयोग – लोडिंग, पहचान और टेक्स्ट आउटपुट का दृश्य अवलोकन.* + +--- + +## चरण 1: OCR इंजन सेट अप करें – **OCR का सही उपयोग** करें + +सबसे पहले आपको OCR इंजन का एक इंस्टेंस बनाना है और अपना लाइसेंस लागू करना है। लाइसेंस के बिना इंजन अभी भी काम करेगा, लेकिन आउटपुट में ट्रायल वॉटरमार्क दिखेगा। + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**यह क्यों महत्वपूर्ण है:** +`OcrEngine` वह कोर ऑब्जेक्ट है जो इमेज एनालिसिस, भाषा डिटेक्शन और टेक्स्ट एक्सट्रैक्शन को समन्वयित करता है। लाइसेंस को पहले सेट करने से इंजन बाद में ट्रायल मोड में फ़ॉल्ट नहीं होता, जिससे सटीकता पर असर नहीं पड़ता। + +--- + +## चरण 2: दस्तावेज़ लोड करें – **PDF से टेक्स्ट निकालें** कुशलता से + +Aspose OCR सीधे PDF और TIFF दोनों कंटेनर पढ़ सकता है। यहाँ हम एक मल्टी‑पेज PDF लोड करते हैं जिसमें स्कैन की गई इमेजेज़ हैं। + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**यह क्यों महत्वपूर्ण है:** +`PdfDocument.fromFile` कंटेनर को पार्स करता है और आपको प्रत्येक पेज को इमेज के रूप में एक्सेस देता है। यह एब्स्ट्रैक्शन OCR इंजन को हर पेज को समान रूप से ट्रीट करने की सुविधा देता है, चाहे मूल फ़ॉर्मेट कुछ भी हो। + +**टिप:** यदि आपका स्रोत फ़ाइल TIFF है, तो वही कॉल काम करता है—Aspose फ़ॉर्मेट को ऑटो‑डिटेक्ट करता है। अतिरिक्त कोड की ज़रूरत नहीं। + +--- + +## चरण 3: सभी पेजों को एक बार में पहचानें – **PDF से टेक्स्ट पहचानें** सहजता से + +अपने आप पेजों पर लूप करने के बजाय, आप इंजन को पूरे दस्तावेज़ को एक ही कॉल में प्रोसेस करने के लिए कह सकते हैं। यह **PDF को टेक्स्ट में बदलने** का सबसे प्रभावी तरीका है जब आप **OCR मल्टी‑पेज PDF** से निपट रहे हों। + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**यह क्यों महत्वपूर्ण है:** +`recognizeDocument` को एक बार कॉल करने से इंजन को बार‑बार इनिशियलाइज़ करने की ओवरहेड कम होती है। यह पेजों के बीच समान भाषा सेटिंग्स को भी सुनिश्चित करता है, जो अक्सर फ़ॉन्ट मिश्रित करने वाले कानूनी दस्तावेज़ों के लिए आवश्यक है। + +--- + +## चरण 4: पहचाने गए टेक्स्ट को आउटपुट करें – **इंडेक्सिंग के लिए PDF को टेक्स्ट में बदलें** + +अब जब हर पेज प्रोसेस हो चुका है, हम परिणामों पर इटरेट करके निकाले गए स्ट्रिंग्स को प्रिंट करते हैं। आप इन्हें फ़ाइल, डेटाबेस या सर्च इंडेक्स में भी लिख सकते हैं। + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**अपेक्षित आउटपुट (संक्षिप्त):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +यदि PDF में 12 पेज हैं, तो आपको बारह `--- Page X ---` सेक्शन दिखेंगे, प्रत्येक के बाद OCR‑एक्सट्रैक्टेड टेक्स्ट होगा। + +--- + +## **OCR मल्टी‑पेज PDF** के लिए उन्नत टिप्स + +### 1. भाषा सेटिंग्स समायोजित करें + +डिफ़ॉल्ट रूप से Aspose भाषा को ऑटो‑डिटेक्ट करने की कोशिश करता है, लेकिन आप इसे निर्दिष्ट करके गति बढ़ा सकते हैं: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. इमेज प्री‑प्रोसेसिंग को नियंत्रित करें + +स्कैन किए हुए कॉन्ट्रैक्ट में अक्सर शोर होता है। आप डेस्क्यूइंग और बाइनराइज़ेशन सक्षम कर सकते हैं: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. बड़े फ़ाइलों को सहजता से हैंडल करें + +यदि आप 100 MB से बड़ी PDF प्रोसेस कर रहे हैं, तो पूरे दस्तावेज़ को एक बार लोड करने के बजाय पेजों को स्ट्रीम करने पर विचार करें: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +यह पैटर्न मेमोरी प्रेशर को कम करता है और बैच जॉब्स के लिए उपयोगी है। + +### 4. स्ट्रक्चर्ड फ़ॉर्मैट में एक्सपोर्ट करें + +सादा टेक्स्ट के अलावा, आप डाउनस्ट्रीम प्रोसेसिंग के लिए JSON या XML में एक्सपोर्ट कर सकते हैं: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## सामान्य समस्याएँ और उनका समाधान + +| समस्या | क्यों होता है | समाधान | +|---------|----------------|-----| +| **खाली आउटपुट** | लाइसेंस नहीं लगाया गया या फ़ाइल पाथ गलत। | `setLicense` पाथ की जाँच करें और फ़ाइल मौजूद है यह सुनिश्चित करें। | +| **गड़बड़ कैरेक्टर** | गलत भाषा सेटिंग या कम‑रिज़ॉल्यूशन स्रोत। | सही `Language` सेट करें और स्रोत इमेज ≥300 dpi रखें। | +| **आउट‑ऑफ़‑मेमोरी त्रुटि** | एक साथ बहुत बड़ी PDF लोड करना। | ऊपर दिखाए गए स्ट्रीमिंग एप्रोच का उपयोग करें। | +| **आंशिक पेज पहचान** | PDF में रास्टर/वेक्टर लेयर्स मिश्रित हैं। | OCR से पहले `pdfDoc.flatten();` करके PDF को फ्लैटन करें। | + +--- + +## सारांश – हमने क्या कवर किया + +* Aspose के साथ **OCR का उपयोग** जावा में कैसे करें। +* एक ही कॉल में **PDF (या TIFF) से टेक्स्ट निकालें**। +* **PDF से टेक्स्ट पहचानें** सभी पेजों पर बिना मैन्युअल लूप के। +* **PDF को टेक्स्ट में बदलें** और साफ़ आउटपुट प्राप्त करें। +* **OCR मल्टी‑पेज PDF** को संभालने के टिप्स, जिसमें भाषा ट्यूनिंग और मेमोरी‑फ्रेंडली स्ट्रीमिंग शामिल हैं। + +अब आपके पास एक पूर्ण, प्रोडक्शन‑रेडी स्निपेट है जिसे आप किसी भी जावा प्रोजेक्ट में डाल सकते हैं। इमेज‑प्रोसेसिंग विकल्पों को बदलने, आउटपुट डेस्टिनेशन बदलने, या परिणाम को सर्च इंडेक्स में इंटीग्रेट करने में संकोच न करें। + +--- + +## अगले कदम + +* **Aspose OCR की उन्नत सुविधाओं** का अन्वेषण करें – जैसे हैंडराइटिंग रिकग्निशन या PDF/A कम्प्लायंस। +* **OCR को PDF मैनिपुलेशन** के साथ मिलाएँ (उदाहरण: सर्चेबल PDFs के लिए PDF में हिडन टेक्स्ट लेयर जोड़ें)। +* **बैच प्रोसेसिंग ऑटोमेट करें** फ़ोल्डर में मौजूद PDFs को पढ़कर प्रत्येक परिणाम को संबंधित `.txt` फ़ाइल में लिखें। + +यदि आपको कोई समस्या आती है, तो Aspose फ़ोरम मदद के लिए बेहतरीन जगह है, और API रेफ़रेंस यहाँ उपयोग किए गए हर मेथड का विस्तृत विवरण प्रदान करता है। + +हैप्पी कोडिंग, और उन जिद्दी स्कैन को सर्चेबल टेक्स्ट में बदलने का आनंद लें! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/hindi/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..fbf886927 --- /dev/null +++ b/ocr/hindi/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-05-03 +description: Java में बाइनरी फ़ाइल पढ़ें ताकि Aspose OCR लाइसेंस लोड किया जा सके। + इस चरण‑दर‑चरण गाइड में FileInputStream के उपयोग, बाइनरी डेटा हैंडलिंग और व्यावहारिक + टिप्स सीखें। +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: hi +og_description: Aspose OCR लाइसेंस लोड करने के लिए जावा में बाइनरी फ़ाइल पढ़ें। फ़ाइलइनपुटस्ट्रीम + और जावा में बाइनरी डेटा हैंडलिंग में निपुण बनने के लिए इस पूर्ण गाइड का पालन करें। +og_title: बाइनरी फ़ाइल पढ़ें जावा – Aspose OCR के लिए लाइसेंस बाइट्स लोड करें +tags: +- Java +- File I/O +- OCR +title: बाइनरी फ़ाइल पढ़ें जावा – Aspose OCR के लिए लाइसेंस बाइट्स लोड करें +url: /hi/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Read Binary File Java – Load License Bytes for Aspose OCR + +क्या आपको कभी **read binary file Java** की ज़रूरत पड़ी है जब आप किसी थर्ड‑पार्टी लाइब्रेरी के लाइसेंस के साथ काम कर रहे हों? आप अकेले नहीं हैं। अधिकांश जावा डेवलपर्स को यह समस्या आती है जब वे `.lic` फ़ाइल को OCR इंजन में फीड करने की कोशिश करते हैं, और सामान्य टेक्स्ट‑फ़ाइल ट्रिक्स काम नहीं करतीं। + +इस ट्यूटोरियल में हम एक पूर्ण, चलाने योग्य उदाहरण के माध्यम से दिखाएंगे कि कैसे बाइनरी लाइसेंस फ़ाइल को खोलें, उसके बाइट्स को मेमोरी में लोड करें, और उन बाइट्स को Aspose OCR for Java को दें। इस दौरान आप देखेंगे कि `FileInputStream` सही टूल क्यों है, `IOException` को कैसे हैंडल करें, और कुछ प्रो टिप्स जो आधिकारिक डॉक्यूमेंटेशन में नहीं मिलते। + +गाइड के अंत तक आप **read binary file Java** शैली में लाइसेंस पढ़ने, `License` ऑब्जेक्ट बनाने, और उसे `OcrEngine` को असाइन करने में सक्षम हो जाएंगे, बिना किसी परेशानी के। + +## What This Guide Covers + +- प्री‑रिक्विज़िट्स: Java 17+, Maven (या Gradle), और Aspose OCR for Java लाइब्रेरी। +- स्टेप‑बाय‑स्टेप कोड जो `FileInputStream` का उपयोग करके बाइनरी `.lic` फ़ाइल पढ़ता है। +- प्रत्येक लाइन की व्याख्या ताकि आप *कैसे* के पीछे *क्यों* समझ सकें। +- एज‑केस हैंडलिंग (फ़ाइल न मिलना, बाइट्स भ्रष्ट होना) और व्यावहारिक डिबगिंग टिप्स। +- एक अंतिम, स्व‑समाहित स्निपेट जिसे आप कॉपी‑पेस्ट करके अपने IDE में तुरंत चला सकते हैं। + +यदि आपने कभी सोचा है कि लाइसेंस फ़ाइल पढ़ने के लिए कोई विशेष API चाहिए, तो जवाब है स्पष्ट **नहीं**—सिर्फ पुराना बाइनरी I/O। चलिए शुरू करते हैं। + +## Step 1: Read Binary File Java with FileInputStream + +सबसे पहले हमें डिस्क पर मौजूद लाइसेंस फ़ाइल से रॉ बाइट्स निकालने का भरोसेमंद तरीका चाहिए। जावा में `FileInputStream` ठीक उसी काम के लिए बनाया गया है। + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**यह क्यों काम करता है:** `Files.readAllBytes` आंतरिक रूप से एक `FileInputStream` बनाता है, पूरी स्ट्रीम पढ़ता है, और आपके लिए उसे बंद कर देता है। यह सुरक्षित, संक्षिप्त, और “स्ट्रीम बंद करना भूल जाना” जैसी आम गलती से बचाता है। यदि आप क्लासिक पैटर्न पसंद करते हैं, तो इसे `FileInputStream` के साथ सीधे `try‑with‑resources` ब्लॉक में बदल सकते हैं। + +### Pro tip + +यदि लाइसेंस फ़ाइल बहुत बड़ी है (संभवना कम, लेकिन संभव), तो इसे एक बार में लोड करने के बजाय चंक्स में स्ट्रीम करने पर विचार करें। अधिकांश OCR लाइसेंस फ़ाइलें—आमतौर पर कुछ किलोबाइट्स से कम—के लिए एक‑बार में पढ़ना पूरी तरह ठीक है। + +## Step 2: Create License Object for Aspose OCR + +अब जब हमारे पास रॉ बाइट्स हैं, हमें उन्हें Aspose‑compatible `License` इंस्टेंस में बदलना है। लाइब्रेरी एक `License` क्लास प्रदान करती है जो बाइट एरे को स्वीकार करती है। + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**यह क्यों महत्वपूर्ण है:** बाइट्स को सीधे पास करके आप पाथ‑संबंधी समस्याओं (जैसे वर्किंग‑डायरेक्टरी के सापेक्ष पाथ) से बचते हैं और डिप्लॉयमेंट को पोर्टेबल बनाते हैं—बस `.lic` फ़ाइल को अपने एप्लिकेशन के साथ wherever रख दें। + +## Step 3: Assign License to OCR Engine + +`License` ऑब्जेक्ट तैयार होने के बाद, अंतिम कदम इसे `OcrEngine` से जोड़ना है। यह कदम OCR कंपोनेंट को लाइसेंस्ड मोड में चलाता है, न कि एवाल्यूएशन सैंडबॉक्स में। + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Note:** कुछ पुराने Aspose वर्ज़न में पब्लिक `license` फ़ील्ड होता है, सेट्टर नहीं। यदि कंपाइलेशन एरर मिलता है तो कोड को इस प्रकार बदलें (`ocrEngine.license = license;`)। + +## Step 4: Verify License Loaded Successfully (Optional but Helpful) + +एक त्वरित वैरिफिकेशन बाद में घंटों की डिबगिंग बचा सकता है। `License` क्लास सफल होने पर कोई एक्सेप्शन नहीं फेंकती, लेकिन आप एक बेकार OCR ऑपरेशन करके पुष्टि कर सकते हैं। + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +यदि आप “License applied successfully” संदेश देखते हैं, तो सब ठीक है। नहीं तो फ़ाइल पाथ, बाइट इंटेग्रिटी, और सही Aspose वर्ज़न की दोबारा जाँच करें। + +## Full Working Example + +सभी हिस्सों को मिलाकर एक कॉम्पैक्ट, कॉपी‑पेस्ट‑रेडी प्रोग्राम बनता है। इसे `Main.java` फ़ाइल में डालें और चलाएँ। + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**अपेक्षित आउटपुट (मान लेते हैं डमी इमेज मौजूद है):** + +``` +License applied successfully – OCR engine is ready. +``` + +यदि लाइसेंस फ़ाइल गायब या भ्रष्ट है, तो आपको इस तरह का स्पष्ट एरर मैसेज मिलेगा: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Common Pitfalls & How to Avoid Them + +- **पाथ में भ्रम:** रिलेटिव पाथ JVM की वर्किंग डायरेक्टरी के सापेक्ष रिजॉल्व होते हैं, सोर्स फ़ाइल लोकेशन नहीं। एक एब्सॉल्यूट पाथ उपयोग करें या `.lic` फ़ाइल को JAR के साथ रखें और `getResourceAsStream` से रेफ़र करें। +- **गलत बाइट ऑर्डर:** कभी भी बाइनरी फ़ाइल को `Reader` (कैरेक्टर‑ओरिएंटेड) से पढ़ने की कोशिश न करें। इससे डेटा भ्रष्ट हो जाएगा। हमेशा `FileInputStream`‑आधारित API इस्तेमाल करें। +- **वर्ज़न मिसमैच:** कुछ पुराने Aspose रिलीज़ में `license.setLicense("path/to/file")` की अपेक्षा होती है, `setLicenseBytes` नहीं। यदि `NoSuchMethodError` मिलता है तो रिलीज़ नोट्स देखें। +- **स्ट्रीम बंद करना भूल जाना:** यदि आप क्लासिक `FileInputStream` तरीका अपनाते हैं, तो इसे `try‑with‑resources` ब्लॉक में रैप करें ताकि क्लोज़िंग गारंटी हो। + +## Conclusion + +अब आप जानते हैं कि **read binary file Java** का उपयोग करके Aspose OCR लाइसेंस कैसे लोड करें, `License` ऑब्जेक्ट बनाएं, और उसे `OcrEngine` से जोड़ें। यह प्रक्रिया `FileInputStream` (या आधुनिक `Files.readAllBytes`) के साथ सही बाइनरी डेटा हैंडलिंग और कुछ सरल API कॉल्स पर आधारित है। + +अब आप वास्तविक OCR कार्यों की ओर बढ़ सकते हैं—PDF, इमेज, या स्कैन्ड डॉक्यूमेंट से टेक्स्ट निकालना—और लाइसेंसिंग लेयर की चिंता नहीं रहेगी। यदि आप संबंधित टॉपिक्स में रुचि रखते हैं, तो **Java FileInputStream**, **binary data handling Java**, और **read license file Java** ट्यूटोरियल देखें। + +हैप्पी कोडिंग, और आपके 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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/hindi/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..8a9a65588 --- /dev/null +++ b/ocr/hindi/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR for Java का उपयोग करके छवि से टेक्स्ट को पहचानना और छवि को + टेक्स्ट में बदलना सीखें। OCR की सटीकता सुधारने के टिप्स और PNG फ़ाइलों पर OCR चलाने + के बारे में जानकारी शामिल है। +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: hi +og_description: Aspose OCR for Java का उपयोग करके छवि से टेक्स्ट पहचानने के लिए चरण‑दर‑चरण + गाइड। छवि को टेक्स्ट में बदलना सीखें, OCR की सटीकता बढ़ाएँ और PNG पर OCR चलाएँ। +og_title: Aspose OCR के साथ छवि से टेक्स्ट पहचानें – जावा ट्यूटोरियल +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Aspose OCR के साथ छवि से पाठ पहचानें – पूर्ण जावा गाइड +url: /hi/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# इमेज से टेक्स्ट पहचानें Aspose OCR – पूर्ण Java गाइड + +क्या आपको कभी **इमेज से टेक्स्ट पहचानने** की ज़रूरत पड़ी है लेकिन यह नहीं पता था कि कौन सी लाइब्रेरी भरोसेमंद परिणाम देगी? आप अकेले नहीं हैं—कई डेवलपर्स को यह समस्या तब आती है जब वे पहली बार स्कैन किए गए PDFs, रसीदें, या लैब रिपोर्ट्स से डेटा निकालने की कोशिश करते हैं। अच्छी खबर यह है कि Aspose OCR for Java पूरी प्रक्रिया को आसान बना देता है, और आप केवल कुछ लाइनों में **इमेज को टेक्स्ट में बदल** भी सकते हैं। + +इस ट्यूटोरियल में हम सब कुछ कवर करेंगे: OCR के लिए इमेज लोड करना, सेटिंग्स को समायोजित करके **OCR सटीकता में सुधार** करना, और अंत में **PNG फ़ाइलों पर OCR चलाना** और निकाले गए टेक्स्ट को प्रिंट करना। कोई फालतू बातें नहीं, सिर्फ एक व्यावहारिक, चलाने योग्य उदाहरण जिसे आप आज ही अपने प्रोजेक्ट में डाल सकते हैं। + +--- + +## आपको क्या चाहिए + +इससे पहले कि हम आगे बढ़ें, सुनिश्चित करें कि आपके मशीन पर निम्नलिखित मौजूद हैं: + +| आवश्यकता | कारण | +|--------------|--------| +| Java 17 (या नया) | Aspose OCR Java 8+ को लक्षित करता है, लेकिन नवीनतम JDK बेहतर प्रदर्शन देता है। | +| Aspose OCR for Java लाइब्रेरी (`aspose-ocr.jar`) | मुख्य इंजन जो भारी काम करता है। | +| एक वैध Aspose OCR लाइसेंस फ़ाइल (`Aspose.OCR.Java.lic`) | पूरा फीचर सेट सक्षम करता है; अन्यथा आपको ट्रायल वॉटरमार्क मिलेगा। | +| एक इमेज फ़ाइल (PNG, JPEG, TIFF, आदि) जिसमें स्पष्ट टेक्स्ट हो | हम `lab_report.png` को एक ठोस उदाहरण के रूप में उपयोग करेंगे। | +| एक कस्टम डिक्शनरी (वैकल्पिक) | डोमेन‑विशिष्ट शब्दों जैसे “hemoglobin” की पहचान में सुधार करता है। | + +यदि इनमें से कोई भी चीज़ अपरिचित लग रही है, तो घबराएँ नहीं—JAR इंस्टॉल करना और एक साधारण टेक्स्ट फ़ाइल बनाना आसान कार्य हैं जिन्हें हम थोड़ी देर में कवर करेंगे। + +--- + +## चरण 1 – प्रोजेक्ट सेट अप करें और डिपेंडेंसी इम्पोर्ट करें + +सबसे पहले, एक नया Maven (या Gradle) प्रोजेक्ट बनाएं और Aspose OCR डिपेंडेंसी जोड़ें। Maven उपयोगकर्ता अपने `pom.xml` में यह स्निपेट पेस्ट कर सकते हैं: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +यदि आप Gradle पसंद करते हैं, तो समकक्ष यह है: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** संस्करण संख्या पर नज़र रखें; नए रिलीज़ अक्सर बग फिक्सेस शामिल करते हैं जो सीधे **OCR सटीकता में सुधार** को प्रभावित करते हैं। + +अब, `OcrDemo.java` नाम की एक Java क्लास बनाएं। फ़ाइल के शीर्ष पर आवश्यक क्लासेज़ इम्पोर्ट करें: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## चरण 2 – OCR इंजन को इनिशियलाइज़ करें और अपना लाइसेंस लागू करें + +आप **PNG फ़ाइलों पर OCR नहीं चला** सकते जब तक आप इंजन को लाइसेंस्ड न बता दें। इसे करने का तरीका यह है: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +अतिरिक्त `License` ऑब्जेक्ट क्यों? Aspose लाइसेंस हैंडलिंग को इंजन से अलग करता है ताकि आप रन‑टाइम पर लाइसेंस बदल सकें, जो मल्टी‑टेनेंट SaaS परिदृश्यों में उपयोगी हो सकता है। + +--- + +## चरण 3 – कस्टम डिक्शनरी लोड करें (वैकल्पिक लेकिन शक्तिशाली) + +यदि आप मेडिकल टर्मिनोलॉजी, रासायनिक सूत्र, या ब्रांड नामों से निपट रहे हैं, तो एक कस्टम डिक्शनरी **OCR सटीकता में सुधार** को नाटकीय रूप से बढ़ा सकती है। डिक्शनरी एक साधारण टेक्स्ट फ़ाइल है जिसमें प्रत्येक पंक्ति पर एक शब्द होता है: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Why it works:** OCR इंजन डिक्शनरी का उपयोग अपने भाषा मॉडल को उन शब्दों की ओर झुकाने के लिए करता है जिनकी आपको ज़रूरत है, जिससे “hemo­globin” → “hemoglobin” जैसी गलत पहचान कम होती है। + +यदि आपके पास डिक्शनरी नहीं है, तो इस लाइन को छोड़ दें—Aspose अपने बिल्ट‑इन भाषा पैक्स के साथ भी अच्छा प्रदर्शन करता है। + +--- + +## चरण 4 – वह इमेज लोड करें जिसे आप प्रोसेस करना चाहते हैं + +अब हम वास्तव में **OCR के लिए इमेज लोड** करते हैं। Aspose कई फ़ॉर्मैट सपोर्ट करता है, लेकिन PNG विशेष रूप से लॉसलेस है, जिससे स्कैन किए गए दस्तावेज़ों के लिए यह सुरक्षित विकल्प बनता है। + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** यदि आपकी इमेज बहुत बड़ी है (5 MB से अधिक), तो प्रोसेसिंग गति बढ़ाने के लिए पहले उसे डाउन‑स्केल करने पर विचार करें। `Image` क्लास एक `resize` मेथड प्रदान करता है जिसे आप पहचान से पहले कॉल कर सकते हैं। + +--- + +## चरण 5 – OCR प्रोसेस चलाएँ और टेक्स्ट प्राप्त करें + +सब कुछ सेट होने पर, OCR इंजन को चलाएँ। `recognize` मेथड एक `OcrResult` ऑब्जेक्ट लौटाता है जिसमें निकाला गया स्ट्रिंग, कॉन्फिडेंस स्कोर, और यदि आपको लेआउट जानकारी चाहिए तो बाउंडिंग बॉक्स भी होते हैं। + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +जब आप प्रोग्राम चलाएँगे, तो आपको कुछ इस तरह दिखना चाहिए: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +बस—आपने सफलतापूर्वक **इमेज से टेक्स्ट पहचान** लिया और Aspose OCR का उपयोग करके **इमेज को टेक्स्ट में बदला**। + +--- + +## चरण 6 – सामान्य समस्याएँ और उनके समाधान + +एक मजबूत लाइब्रेरी के साथ भी कुछ छोटी‑छोटी अड़चनें आपको रोक सकती हैं: + +| लक्षण | संभावित कारण | समाधान | +|---------|--------------|-----| +| खाली आउटपुट | लाइसेंस लागू नहीं हुआ या समाप्त हो गया | `Aspose.OCR.Java.lic` का पाथ जाँचें और सुनिश्चित करें कि यह संस्करण से मेल खाता है। | +| गड़बड़ अक्षर | इमेज कम‑रिज़ॉल्यूशन या अत्यधिक संकुचित है | उच्च‑रिज़ॉल्यूशन स्रोत उपयोग करें या इमेज को प्री‑प्रोसेस करें (बाइनराइज़ेशन, डेस्क्यू)। | +| डोमेन‑विशिष्ट शब्द नहीं मिल रहे | डिक्शनरी नहीं है | एक डिक्शनरी फ़ाइल जोड़ें जिसमें गायब शब्द हों, प्रत्येक पंक्ति पर एक शब्द। | +| बड़े बैच में धीमी प्रोसेसिंग | मल्टी‑थ्रेडिंग नहीं है | `OcrEngine` इंस्टेंसेज़ का पूल बनाएं (वे थ्रेड‑सेफ़ हैं) और इमेजेज़ को समानांतर में प्रोसेस करें। | + +--- + +## चरण 7 – उदाहरण का विस्तार: परिणाम को फ़ाइल में सहेजें + +यदि आपको निकाले गए टेक्स्ट को बाद में विश्लेषण के लिए रखना है, तो इसे सरलता से फ़ाइल में लिखें: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +अब आपके पास एक पुन: उपयोग योग्य पाइपलाइन है जो **OCR के लिए इमेज लोड** करती है, सामग्री निकालती है, और जहाँ चाहें वहाँ सहेजती है। + +--- + +## बोनस: फ़ोल्डर में कई PNG फ़ाइलों पर OCR चलाना + +वास्तविक‑दुनिया के प्रोजेक्ट्स अक्सर दर्जनों स्कैन प्रोसेस करने की आवश्यकता रखते हैं। यहाँ एक तेज़ लूप है जो किसी डायरेक्टरी में सभी `.png` फ़ाइलों को उठाता है: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +समान `ocrEngine` इंस्टेंस को पुनः उपयोग करना याद रखें—प्रत्येक फ़ाइल के लिए नया बनाना अनावश्यक ओवरहेड जोड़ता है। + +--- + +## निष्कर्ष + +अब आपके पास एक पूर्ण‑फ़ीचर, एंड‑टू‑एंड समाधान है जो Aspose OCR for Java का उपयोग करके **इमेज से टेक्स्ट पहचान** करता है। इमेज लोड करने से लेकर, वैकल्पिक रूप से कस्टम डिक्शनरी के साथ इंजन को समृद्ध करने, **OCR सटीकता में सुधार**, **PNG फ़ाइलों पर OCR चलाने**, और आउटपुट सहेजने तक, कोड किसी भी Java प्रोजेक्ट में डालने के लिए तैयार है। + +अब आगे क्या? निकाले गए टेक्स्ट को एक नेचुरल‑लैंग्वेज‑प्रोसेसिंग पाइपलाइन में फीड करें, या हैंडराइटन नोट्स पर OCR आज़माएँ (Aspose एक हैंडराइटिंग मोड भी प्रदान करता है)। संभावनाएँ अनंत हैं, और आपने अभी पहला कदम उठाया है। + +हैप्पी कोडिंग! यदि आपको कोई समस्या आती है, तो नीचे टिप्पणी छोड़ने में संकोच न करें—आइए मिलकर ट्रबलशूट करें। + +![कंसोल में OCR परिणाम का स्क्रीनशॉट – इमेज से टेक्स्ट पहचानें](/images/ocr_console_result.png "इमेज से टेक्स्ट पहचानने का उदाहरण") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hongkong/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/hongkong/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..dfeedab2d --- /dev/null +++ b/ocr/hongkong/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR Java 從圖像中提取表格。學習如何載入圖像進行 OCR,從 PNG 提取表格,轉換圖像表格文字,並快速識別收據圖像。 +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: zh-hant +og_description: 使用 Aspose OCR Java 從圖像中提取表格。本指南展示如何載入圖像進行 OCR、從 PNG 中提取表格、轉換圖像表格文字,以及辨識收據圖像。 +og_title: 從圖像中提取表格 – Aspose OCR Java 教程 +tags: +- Aspose OCR +- Java +- Image Processing +title: 從圖像提取表格 – 完整 Aspose OCR Java 指南 +url: /zh-hant/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從圖像提取表格 – 完整 Aspose OCR Java 指南 + +是否曾需要 **extract tables from image** 檔案卻屢屢受阻?也許你有一張掃描的收據或拍攝的發票,而表格資料隱藏在 PNG 中。在本教學中,你將會看到如何 *load image for OCR*,將圖片轉換為結構化的列,並 **convert image table text** 成為可在 Java 中使用的資料。 + +我們將逐步說明,從授權 Aspose OCR 引擎到列印偵測到的表格的每個儲存格。完成後,你將能夠 **recognize receipt image** 檔案,輕鬆提取其表格。 + +## 你將學會 + +- 如何初始化 Aspose OCR 引擎並套用授權。 +- 為何啟用表格偵測是 **extract tables from image** 的關鍵。 +- 執行 **load image for OCR** 並在 PNG 上進行辨識所需的完整程式碼。 +- 處理多個表格、低解析度掃描以及常見陷阱的方法。 +- 如何將 **convert image table text** 轉換為可列印(或可匯入資料庫)的格式。 + +不需要外部文件——所有你需要的資訊都在此。 + +## 前置條件 + +- Java 17 或更新版本(程式碼使用現代模組系統)。 +- Aspose OCR for Java 授權檔 (`Aspose.OCR.Java.lic`)。若僅作測試,臨時評估金鑰亦可使用。 +- 包含清晰表格的 PNG 圖片(例如 `receipt_with_table.png`)。 +- 使用 Maven 或 Gradle 取得 Aspose OCR 相依套件: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **小技巧:** 將授權檔放在 `src/main/resources` 資料夾旁邊,以確保路徑在不同環境下保持穩定。 + +--- + +## 步驟 1 – 初始化 OCR 引擎以 **extract tables from image** + +在引擎執行任何操作之前,需要先確認你是合法使用者。 + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*為何重要:* 若未使用有效授權,OCR 引擎將以試用模式運作,可能截斷結果或加入不必要的浮水印——導致表格提取不可靠。 + +--- + +## 步驟 2 – 啟用表格偵測(**extract table from png**) + +表格偵測預設未啟用,需要手動開啟。 + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +啟用此旗標會告訴 Aspose OCR 將對齊的文字群組視為列與欄,這正是當你想要 **extract tables from image** PNG 檔案時所需要的。 + +--- + +## 步驟 3 – **Load image for OCR** 與 **recognize receipt image** + +現在我們真正將圖片送入引擎。 + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +若你處理的是 **recognize receipt image** 情境,可能需要先前處理圖片(去斜、提升對比度)。這超出本快速指南的範圍,但對噪點較多的掃描值得研究。 + +--- + +## 步驟 4 – 處理 OCR 結果並 **convert image table text** + +`OcrResult` 物件可能包含一個或多個表格。讓我們遍歷它們並列印每個儲存格。 + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**此程式的作用:** + +- 檢查是否找到任何表格;若未找到,建議調整影像品質。 +- 對每個表格,列印以 Tab 分隔的儲存格列,方便匯入 CSV。 +- `Cell::getText` 呼叫是 **convert image table text** 的核心——它從每個儲存格取得原始 OCR 文字。 + +### 預期輸出 + +假設 `receipt_with_table.png` 包含一個簡單的 3 × 2 表格,輸出會類似以下: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +若圖片有多個表格,則每個表格之間會以空白行分隔。 + +--- + +## 步驟 5 – 驗證提取的表格並處理邊緣情況 + +### 常見陷阱 + +| 問題 | 發生原因 | 快速解決方案 | +|------|----------|--------------| +| **未偵測到表格** | 圖片過於模糊或對比度低 | 在 OCR 前使用二值化 (`ImageProcessing.applyThreshold`) | +| **合併儲存格** | 表格線條太淡,OCR 將其視為單一區塊 | 在 `ocrEngine.getConfig()` 中提升 `TableDetectionSensitivity` | +| **欄位順序錯誤** | 圖片傾斜導致對齊錯誤 | 使用 `ImageProcessing.deskew` 或將圖片旋轉 90° | + +### 接下來該怎麼做 + +- **匯出為 CSV** – 將 `System.out.println(line);` 替換為 `FileWriter` 以持久化資料。 +- **寫入資料庫** – 將每列映射為 POJO,並使用 JPA 進行持久化。 +- **結合其他 API** – 於收據處理時,你也可以使用正規表達式從 OCR 文字中提取總金額。 + +--- + +## 完整範例(可直接複製貼上) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +執行此程式,指向包含清晰表格的 PNG,即可在主控台看到整齊排版的列。 + +--- + +## 結論 + +現在你已擁有一套完整、端到端的解決方案,使用 Aspose OCR for Java 來 **extract tables from image** 檔案。從授權、**load image for OCR**、啟用 **extract table from png**,最後到 **convert image table text**,每一步皆有說明與實用技巧。 + +接下來,試著將輸出串接成 CSV 檔、將列寫入關聯式資料庫,或將 OCR 步驟與收據總額提取流程結合。相同的模式同樣適用於發票、價目表以及任何以格線隱藏資料的掃描文件。 + +對於處理低解析度收據或批次處理有任何疑問嗎?在下方留言,我們祝你開發順利! + +![Extract tables from image example](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/hongkong/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..2262a990f --- /dev/null +++ b/ocr/hongkong/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,207 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR 於 Python 從圖像提取文字。學習一步一步的 Python OCR 教學,支援混合拉丁文與西里爾文。 +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: zh-hant +og_description: 快速使用 Python 從圖像中提取文字。本指南說明如何在 Python 中使用 Aspose OCR 處理混合拉丁文‑西里爾文圖像。 +og_title: 使用 Python 從圖像提取文字 – 完整 Aspose OCR 教學 +tags: +- OCR +- Python +- Aspose +title: 使用 Python 從圖像提取文字 – 完整的 Aspose OCR 指南 +url: /zh-hant/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從圖像提取文字 Python – 完整 Aspose OCR 指南 + +是否曾需要 **extract text from image python** 但不確定哪個函式庫能處理拉丁文與西里爾文混合的字符?你並非唯一遇到此問題的人——開發者在對多語言截圖進行 OCR 時常會卡住這個難題。 + +好消息是 Aspose OCR for Python 讓整個流程幾乎毫不費力。在本教學中,我們將逐步說明如何安裝套件、套用授權、載入混合語言的圖像,最後只需幾行程式碼即可取得辨識出的文字。完成後,你將擁有一個可直接執行的腳本,隨時可嵌入任何專案。 + +## 你將學會 + +- 如何在虛擬環境中設定 **Aspose OCR Python**。 +- 為何提示語言(如拉丁文與西里爾文)能加快偵測速度。 +- 使用單一函式呼叫即可完成 **extract text from image python** 的完整程式碼。 +- 處理混合語言 OCR 時常見的陷阱以及避免方法。 + +### 前置條件 + +- 已在機器上安裝 Python 3.8 或更新版本。 +- Aspose OCR 授權檔 (`Aspose.OCR.Java.lic`)。免費試用可用於測試,但正式授權可移除浮水印。 +- 包含拉丁文與西里爾文字符的 PNG/JPEG 圖像(此處稱為 `mixed_latin_cyrillic.png`)。 + +只要上述條件皆符合,即可開始——不需要額外框架或龐大相依套件。 + +--- + +## 第一步 – Extract Text from Image Python:安裝 Aspose OCR + +首先,從 PyPI 取得函式庫,並確保環境能找到授權檔。 + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **專業提示:** 若遇到權限錯誤,請在 `pip install` 指令後加上 `--user`,或以系統管理員身分執行終端機。 + +套件安裝完成後,我們將匯入它並將引擎指向授權檔。 + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +為什麼此時需要授權?若未提供授權,引擎會以 **evaluation mode** 運作,會限制頁數並在輸出加入浮水印。提前提供授權可確保之後的 `recognize` 呼叫返回純淨文字。 + +## 第二步 – 載入含混合拉丁‑西里爾文字的圖像 + +接著,我們將圖像載入記憶體。Aspose OCR 使用自有的 `Image` 類別,抽象化底層檔案格式。 + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +如果你在想其他格式是否支援——答案是肯定的,JPEG、BMP、TIFF,甚至 PDF 都受支援。只要更換檔案副檔名,`from_file` 方法即可自動處理。 + +## 第三步 – 提示語言以加速偵測(可選但有幫助) + +當你知道圖像中包含哪些語言時,可提前告訴引擎。此步驟非必須,但能 **顯著縮短處理時間** 並提升混合語言 OCR 的準確度。 + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +提示清單接受 Aspose OCR 支援的任何語言(例如 `"Arabic"`、`"Japanese"`)。若省略此步驟,引擎會嘗試所有內建語言,對大量批次而言會較慢。 + +## 第四步 – 執行 OCR 引擎並提取文字 + +現在是關鍵時刻:實際辨識字符。`recognize` 方法會回傳一個 `OcrResult` 物件,內含純文字、信心分數,若需要亦可取得文字框的座標。 + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **為什麼這樣可行:** Aspose OCR 內部結合了神經網路文字偵測器與語言特定的分類器。將 `Image` 物件直接餵入,即可省去手動前處理(如二值化)的需求。 + +## 第五步 – 查看提取的文字 + +最後,將結果印到主控台。實際應用中,你可能會將其寫入檔案、寫入資料庫,或傳給翻譯 API。 + +```python +print("Recognised text:") +print(extracted_text) +``` + +執行腳本後,應會看到類似以下的輸出: + +``` +Recognised text: +Hello мир! This is a test. +``` + +此輸出證明我們成功 **extract text from image python**,在一次處理中同時辨識拉丁文與西里爾文字符。 + +## 完整範例程式 + +以下是完整腳本,可直接複製貼上至名為 `extract_ocr.py` 的檔案。僅需將佔位路徑替換為實際目錄即可。 + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +儲存檔案,啟動虛擬環境,然後執行: + +```bash +python extract_ocr.py +``` + +你應會看到辨識出的文字被印出,證明腳本全程運作正常。 + +## 常見問題與特殊情況 + +**如果圖像模糊怎麼辦?** +Aspose OCR 內建去斜與降噪功能,但對於嚴重退化的照片,建議先使用 OpenCV 前處理(例如套用高斯模糊與閾值化)。`Image` 類別亦可接受 NumPy 陣列,讓你在呼叫 `recognize` 前串接自訂濾鏡。 + +**我可以一次處理整個資料夾的圖像嗎?** +當然可以。將邏輯包在 `for` 迴圈中,將 `from_file` 改為讀取每個檔名,並將結果存入字典。若使用雲端版,請留意 API 的速率限制。 + +**每種語言需要單獨的授權嗎?** +不需要,單一 Aspose OCR 授權即可涵蓋所有支援語言。`language_hints` 清單僅為效能提示。 + +**PDF 輸入怎麼處理?** +將 `Image.from_file` 改為 `ocr.Image.from_file("document.pdf")`。OCR 引擎會自動將每頁光柵化,並回傳合併後的文字。 + +## 結論 + +我們剛示範了一個簡潔、可投入生產的方式,使用 Aspose OCR **extract text from image python**。安裝、授權、載入、提示語言、辨識與顯示這幾個步驟,已涵蓋取得混合拉丁‑西里爾文字可靠結果所需的一切。 + +接下來,你可以探索進階主題,例如批次處理的 **image to text conversion**、將輸出結合 **Python OCR tutorial** 用於自然語言處理,或嘗試其他語言提示以處理多語言文件。只要發揮創意,程式碼已在手中,無所不能。 + +有其他使用情境或遇到問題嗎?留下評論、分享你的經驗,讓我們持續交流。祝開發順利! + +![Extract text from image python 範例](/images/extract-text-from-image-python.png "顯示 OCR 輸出的螢幕截圖 – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/hongkong/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..c1daf11ac --- /dev/null +++ b/ocr/hongkong/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR 即時從圖像提取文字。學習如何定義感興趣區域、載入圖像進行 OCR,並在短短幾分鐘內從發票中提取文字。 +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: zh-hant +og_description: 使用 Aspose OCR 從圖像提取文字。本指南說明如何定義感興趣區域、載入圖像進行 OCR,並高效地從發票中提取文字。 +og_title: 使用 Aspose OCR 從圖片擷取文字 – 完整教學 +tags: +- ocr +- python +- image-processing +title: 使用 Aspose OCR 從圖像提取文字 – 逐步指南 +url: /zh-hant/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose OCR 從圖像提取文字 – 步驟指南 + +需要 **extract text from image** 快速完成嗎?你並不孤單——開發人員不斷與雜訊掃描、收據與發票搏鬥。在本教學中,我們將逐步說明完整解決方案,不僅展示如何 *extract text from image*,還示範如何 **define region of interest**、**load image for OCR**,以及從發票中提取所需的精確行。 + +我們將涵蓋從安裝 Aspose OCR 函式庫到處理旋轉頁面等邊緣情況的所有內容。完成後,你將擁有一個可直接執行的腳本,能在一次呼叫中提取所需文字——無需手動裁剪。 + +## 你將學會 + +- 如何使用 Aspose 的 Python API **load image for OCR**。 +- 定義 **define region of interest**(ROI)的最佳方式,僅處理圖像中重要的部分。 +- 如何 **extract text from invoice** 欄位而不必讀取整頁。 +- 提升 **process image with OCR** 效率的技巧,避免常見陷阱。 + +**Prerequisites** – 最近的 Python 3.9+ 環境、有效的 Aspose OCR 授權檔案,以及一張圖像(例如發票 PNG)。不需要其他外部工具。 + +--- + +## 第一步 – 初始化 OCR 引擎(主要設定) + +在你能 **process image with OCR** 之前,需要一個持有授權的引擎實例。此步驟至關重要,未授權的引擎只會回傳有限的結果集。 + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*此步驟的重要性*:`OcrEngine` 物件是函式庫的核心;它管理語言模型、圖像前處理與授權設定。提前設定授權可確保完整的準確度且不會出現浮水印。 + +--- + +## 第二步 – 載入圖像以進行 OCR + +現在引擎已就緒,我們需要 **load image for OCR**。Aspose 支援多種格式(PNG、JPEG、TIFF),但使用 `Image.from_file` 可保證圖像正確解碼。 + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**:將圖像檔案大小控制在 5 MB 以下,可獲得最快的處理速度。較大的檔案可在 OCR 前使用 `image.resize(width, height)` 進行縮小。 + +--- + +## 第三步 – 定義感興趣區域(ROI) + +大多數發票都包含大量無關文字——地址區塊、頁腳等。透過 **define region of interest**,我們告訴引擎只在金額或日期所在的區域搜尋,從而提升速度與準確度。 + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*運作原理*:`Rectangle` 類別在虛擬上裁切圖像;OCR 引擎永遠不會看到矩形外的像素,因而忽略 ROI 之外的噪聲。 + +--- + +## 第四步 – 識別 ROI 內的文字 + +在引擎、圖像與 ROI 都準備好之後,我們終於可以 **extract text from image**。`recognize` 方法會回傳一個 `OcrResult` 物件,內含偵測到的字串與信心分數。 + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**預期輸出**(典型發票總金額行的範例): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +如果 ROI 定位正確,你只會看到所需的那一行——不會出現其他文字。 + +--- + +## 第五步 – 完整可執行範例(直接複製貼上) + +以下是將前述所有步驟串接起來的完整腳本。將其儲存為 `extract_invoice_roi.py`,然後執行 `python extract_invoice_roi.py`。 + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +執行腳本後,目標行應會印在主控台上。若得到空字串,請再次檢查 ROI 座標——有時僅差幾個像素就會完全排除文字。 + +--- + +## 第六步 – 常見變化與邊緣情況 + +### a) 不同的發票版面 +不同供應商的發票常會把總金額框移動位置。若要在多種版面上 **process image with OCR**,可考慮: + +- **Multiple ROIs**:依序使用多個矩形執行引擎,挑選信心分數最高的結果。 +- **Dynamic ROI detection**:使用輕量級影像處理函式庫(例如 OpenCV)先定位 “Total” 標籤,然後以此為基準計算 ROI。 + +### b) 旋轉或傾斜的圖像 +若掃描圖像有傾斜,可在辨識前呼叫 `image.rotate(angle)`: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR 也提供自動去斜功能,但手動旋轉可讓你掌握更精確的控制。 + +### c) 非拉丁字元 +預設語言模型為英文。若要 **extract text from invoice** 的文字為其他語言,請在辨識前設定語言: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) 大型 PDF +處理多頁 PDF 時,先將每頁轉為圖像(Aspose PDF → Image),再對每頁套用相同的 ROI 邏輯。 + +--- + +## 第七步 – 效能提示與專業技巧 + +- **Cache the engine**:在迴圈中重複建立 `OcrEngine` 會降低效能。請只實例化一次並重複使用。 +- **Batch processing**:若需處理數十張發票,可將 OCR 呼叫包在 `ThreadPoolExecutor` 中,以平行化 I/O‑bound 工作。 +- **Confidence check**:`ocr_result.confidence` 會回傳 0 到 1 之間的浮點數。將低於 0.85 的結果視為失敗,改用較大的 ROI 或人工審核。 + +> **注意**:將 ROI 設得過小可能會截斷字元,導致輸出雜亂。請先以少量樣本發票測試,再決定是否擴大規模。 + +--- + +## 結論 + +現在你已掌握使用 Aspose OCR **extract text from image** 的完整、可投入生產的方式,並能 **define region of interest**、**load image for OCR**,可靠地 **extract text from invoice** 欄位。透過將 OCR 限制在緊湊的 ROI 內,你同時提升了速度與準確度——非常適合批次處理成千上萬張收據。 + +準備好進一步了嗎?試著將此腳本整合到 Flask API,讓你的 Web 應用能上傳發票並即時回傳總金額。或是實驗多個 ROI,同時抽取日期、發票號碼與供應商名稱。可能性無窮,而本教學已為你奠定基礎,足以應對任何 OCR 挑戰。 + +祝程式開發順利,願你抽取的文字永遠乾淨! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="使用 Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/hongkong/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..59c328baa --- /dev/null +++ b/ocr/hongkong/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Python 的非同步 OCR 從圖像提取文字。了解如何將 tif 轉換為文字、載入圖像進行 OCR,以及高效辨識圖像中的文字。 +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: zh-hant +og_description: 使用 Python 非同步 OCR 從圖像提取文字。本指南展示如何將 tif 轉換為文字、載入圖像進行 OCR,以及辨識圖像中的文字。 +og_title: 使用 Python 非同步 OCR 從圖像提取文字 – 完整指南 +tags: +- OCR +- Python +- AsyncIO +title: 使用 Python 非同步 OCR 從圖像提取文字 – 完整指南 +url: /zh-hant/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Python Async OCR 從圖像提取文字 – 完整指南 + +需要 **快速從圖像提取文字** 嗎?使用 Python 的 async OCR,只需幾行程式碼即可完成。無論你面對的是巨大的 .tif 掃描檔,還是少量的 JPEG,本教學都會示範如何將 tif 轉換成文字、載入圖像進行 OCR,最後在不阻塞事件迴圈的情況下辨識圖像文字。 + +事實上,大多數開發者會先選擇同步函式庫,結果 UI 卡住,等引擎處理完像素才恢復。在本指南中,我們將改用 Aspose OCR Cloud 的非同步 API,讓你的應用保持回應。完成後,你將擁有一個可直接執行的腳本,能從任何支援的圖像格式中抽取文字,並了解每一步背後的原理。 + +## 你將學到 + +- 如何為 Python 設定 Aspose OCR Cloud SDK。 +- **載入圖像進行 OCR** 並啟動非同步辨識任務的完整程式碼。 +- 處理大型 .tif 檔案與授權細節的技巧。 +- 即使服務回傳錯誤,也能安全 **抽取圖像文字** 的方法。 +- 一個完整、可直接複製貼上的範例,讓你立即在專案中使用。 + +> **先決條件**:Python 3.8+ 與 Aspose OCR Cloud 授權檔 (`Aspose.OCR.Java.lic`)。不需要其他第三方套件。 + +--- + +![extract text from image workflow](workflow.png){: .align-center alt="從圖像提取文字工作流程"} + +## 從圖像提取文字 – Async OCR 概觀 + +在深入程式碼之前,先說明整體流程。當你呼叫 `recognize_async` 時,SDK 會將圖像上傳至 Aspose 雲端,啟動背景工作,並回傳一個 `Task` 物件。等待該任務完成後會得到一個 `OcrResult`,其中包含圖像的純文字表示。由於呼叫是非同步的,你可以同時發起多個工作——非常適合批次處理大量掃描文件。 + +### 為什麼使用 Async? + +- **非阻塞 I/O** – 事件迴圈仍可處理其他工作(例如回應 HTTP 請求)。 +- **可擴展性** – 同時啟動數十個辨識任務;雲端負責繁重計算。 +- **回應速度** – UI 應用程式在等待 OCR 引擎時不會凍結。 + +了解了「為什麼」之後,接下來說明 **如何**。 + +## 使用 Aspose OCR 將 TIF 轉換成文字 + +常見的卡關點是以為每個 OCR 函式庫都原生支援 .tif。Aspose 支援,但仍需提供 `Image` 物件。SDK 會抽象化格式,你只要指向檔案路徑即可。 + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**關鍵程式碼說明** + +- `ocr_engine.license = ...` – 若未提供有效授權,雲端會回傳 403 錯誤。請確保 `.lic` 檔案在腳本工作目錄可被存取。 +- `ocr.Image.from_file(image_path)` – 此步驟 **載入圖像進行 OCR**;SDK 會自動偵測格式,無需事先將 .tif 轉換。 +- `recognize_async` – 回傳可與 coroutine 配合的 task。若有批次需求,可在 `gather` 呼叫中同時啟動多個。 + +> **專業提示**:若處理的是 GB 級的 TIFF,建議先將其切分為單頁。Aspose 的 `Image.from_file` 可接受頁碼索引,減少記憶體壓力。 + +## 非同步辨識圖像文字 + +以下示範在一般腳本中如何呼叫此函式。`asyncio.run` 是在未處於事件迴圈(例如純 CLI 工具)時,啟動 coroutine 的最簡方式。 + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**執行結果說明** + +對於清晰的高解析度掃描,腳本通常會回傳多行字串,與印刷頁面內容相符。若圖像雜訊較多,Aspose 仍會嘗試清理,但可能出現亂碼。此時可在送給 OCR 引擎前,先使用 OpenCV 進行前處理(例如二值化)。 + +### 優雅地處理錯誤 + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +捕捉 `OcrException` 可避免雲端回傳錯誤時程式崩潰——這是新手常因忽略網路抖動而遇到的問題。 + +## 載入圖像進行 OCR – 實用技巧 + +1. **檔案路徑 vs. 位元組** – SDK 接受檔案路徑,也支援從 `bytes` 物件載入(`ocr.Image.from_bytes`),適用於圖像已在記憶體中(例如從 S3 或資料庫取得)。 +2. **支援格式** – 除 .tif 外,Aspose 亦支援 PDF、BMP、GIF,甚至多頁 TIFF。直接使用 `Image.from_file("doc.pdf")` 即可 OCR PDF。 +3. **效能** – 批次作業時,重複使用同一個 `OcrEngine` 實例;為每個檔案重新建立引擎會增加不必要的開銷。 + +## 完整可執行範例(一步到位腳本) + +以下為完整、可直接執行的腳本,已整合授權、錯誤處理與簡易命令列參數解析。複製貼上、調整授權路徑,即可使用。 + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**預期輸出** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +若圖像僅包含一段文字,主控台會顯示相同的行並保留換行。對於多頁 TIFF,SDK 會依序串接各頁內容。 + +## 常見問題 (FAQ) + +**Q: 這能在其他 async 框架(例如 FastAPI)中使用嗎?** +A: 完全可以。只要把 `asyncio.run` 換成在端點內 `await async_ocr(path)`,FastAPI 會自行管理事件迴圈。 + +**Q: 若一次需要處理上百個檔案,該怎麼做?** +A: 使用 `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: 能否從受密碼保護的 PDF 抽取文字?** +A: 直接不行。必須先解鎖 PDF(例如使用 `pikepdf`),再將解密後的位元組傳給 `ocr.Image.from_bytes`。 + +**Q: 如何處理非英文語言?** +A: 在辨識前設定語言: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose 支援超過 60 種語言,請參考文件取得正確的語言代碼。 + +## 結論 + +現在你已擁有一套完整的 **從圖像提取文字** 解決方案,結合 Python 的 `asyncio` 與 Aspose OCR Cloud 的非同步 API。依照上述步驟,你可以 **將 tif 轉換成文字**、**載入圖像進行 OCR**,以及 **非阻塞地辨識圖像文字**——無論是命令列工具或高流量的 Web 服務,都相當適用。 + +接下來要做什麼?試著批次處理整個資料夾的掃描檔、調整語言設定,或將 OCR 輸出串接至下游的 NLP 流程。未來的可能性無限。 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/hongkong/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..9522ac98f --- /dev/null +++ b/ocr/hongkong/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Aspose OCR 快速提取文字。了解如何提升 OCR 準確度、載入影像 OCR、預處理影像 OCR,以及在 Python 中執行 + OCR 掃描。 +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: zh-hant +og_description: 使用 Aspose OCR 快速提取文字。掌握如何提升 OCR 準確度、載入影像 OCR、預處理影像 OCR,以及在 Python + 中執行 OCR 掃描。 +og_title: 提取文字 OCR – Aspose OCR 完整指南 +tags: +- OCR +- Python +- Aspose +title: 提取文字 OCR – Aspose OCR 完整指南 +url: /zh-hant/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – 完整指南(使用 Aspose OCR) + +有沒有遇過需要 **extract text ocr** 卻因為掃描圖像晃動而得到一堆亂碼?你並不孤單——當圖像傾斜、雜訊過多或對比度低時,許多開發者都會卡在這裡。好消息是,只要稍作設定調整,就能把雜亂的圖片變成乾淨、可搜尋的文字。本教學將示範完整的端到端範例,說明如何 **improve ocr accuracy**、**load image ocr**、**preprocess image ocr**,最後使用 Aspose OCR for Python 執行 OCR 掃描。 + +完成本指南後,你將擁有一個可執行的腳本,能讀取掃描的 JPEG、自動清理圖像,並將提取的文字印到主控台。沒有神祕的「請參考文件」連結——所有需要的資訊都在這裡。 + +## 您需要的條件 + +- **Python 3.8+**(建議使用最新穩定版) +- **Aspose.OCR for Python via .NET** – 使用 `pip install aspose-ocr` 安裝 +- 一個 **license file** (`Aspose.OCR.Java.lic`)(若已購買)或使用免費試用版進行測試 +- 你想處理的圖像(例如 `skewed_scanned_doc.jpg`) + +就這樣。只要備妥上述項目,即可直接進入程式碼。 + +## 步驟 1:使用 Aspose OCR 引擎提取文字 OCR + +首先要啟動 OCR 引擎並套用授權。把引擎想像成會閱讀圖像的大腦;若未授權,將只能在極小的示範限制內工作。 + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** 先套用授權可避免之後的靜默失敗。若跳過此步驟,引擎會退回受限模式,僅回傳少量字元——遠非你在 **extract text ocr** 時所期待的結果。 + +## 步驟 2:透過前處理提升 OCR 準確度 + +傾斜或顆粒感的掃描是任何 OCR 專案的克星。Aspose 提供一系列實用設定,可自動去斜、去雜訊、提升對比度,這正是 **improve ocr accuracy** 的核心。 + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – 將圖像旋轉回水平,對於原始文件未完全平整的情況尤為重要。 +- **remove_noise** – 清除低解析度 JPEG 常見的隨機斑點。 +- **enhance_contrast** – 使深色文字更深、背景更亮,協助引擎辨識字元。 +- **binarization = "Otsu"** – 經典演算法,決定黑白轉換的最佳閾值。 + +> **Pro tip:** 若你確定來源圖像已相當乾淨,可關閉這些選項以加速處理。但對於大多數實務掃描,保留它們是最安全的做法。 + +## 步驟 3:載入圖像 OCR 以進行掃描 + +引擎就緒後,我們需要 **load image ocr**。Aspose 的 `Image.from_file` 方法支援 JPEG、PNG、TIFF 等多種格式。 + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +將 `YOUR_DIRECTORY` 替換為你機器上的實際路徑。若使用記憶體中的位元串流(例如來自網頁上傳),也可以使用 `ocr.Image.from_bytes(byte_data)`——同一個引擎會處理它。 + +> **Edge case:** 大型 TIFF 檔案可能佔用大量記憶體。若遇到 `MemoryError`,請先對圖像降採樣,或使用 `ocr_engine.config.max_image_size` 限制尺寸。 + +## 步驟 4:執行 OCR 掃描並取得結果 + +圖像已載入且前處理完成後,最後一步是 **run OCR scan**。此呼叫會在背後完成所有繁重工作。 + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +`ocr_result` 物件包含多個實用屬性: + +- `ocr_result.text` – 你關心的純文字字串。 +- `ocr_result.confidence` – 0‑100 的數值分數,表示整體可靠度。 +- `ocr_result.words` – 包含邊界框座標的單字物件列表,方便進行高亮顯示。 + +## 步驟 5:印出提取的文字 + +最後,我們將結果輸出。實際應用中,你可能會把文字寫入檔案、資料庫,或送入搜尋索引。此教學僅示範使用簡單的 `print`。 + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output**(簡易發票範例): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +若信心分數偏低(< 80),建議重新檢視前處理設定,或嘗試其他二值化方法,例如 `"Sauvola"`。 + +## 加分:視覺化前處理流程(可選) + +有時候觀察引擎對圖像的處理結果會更直觀。Aspose 允許匯出處理後的位圖: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +你可以將圖像嵌入文件說明中: + +提取文字 OCR 工作流程圖,顯示前處理步驟 + +> **Why you’d do this:** 當 OCR 結果看起來不正常時,快速檢視 `processed_debug.png` 往往能發現圖像仍過暗、仍傾斜,或仍有殘留雜訊。 + +## 常見問題與注意事項 + +- **What if my document is multi‑page?** + Aspose OCR 以逐頁方式運作。對每一頁圖像迴圈處理,並將 `ocr_result.text` 串接起來。 + +- **Can I recognize languages other than English?** + 可以——在呼叫 `recognize` 前設定 `ocr_engine.config.language = "fra"`(或任何 ISO‑639‑2 代碼)。 + +- **Is there a limit on image size?** + 引擎預設上限為 10 MP。若需處理更大掃描,可調整 `ocr_engine.config.max_image_size`,但需留意記憶體使用情況。 + +- **Do I need a separate OCR engine for PDFs?** + 處理 PDF 時,可先使用 Aspose.PDF 把每頁轉為圖像,或直接使用內建的 PDF OCR 功能。取得圖像後,後續步驟與本教學相同。 + +## 重點回顧 + +我們說明了如何使用 Aspose OCR for Python **extract text ocr**,從授權引擎、調整設定以 **improve ocr accuracy**、載入來源檔案,到最後 **run OCR scan** 取得乾淨文字。完整腳本已備妥可直接複製貼上,你也了解每個設定旗標的意義。 + +## 接下來可以做什麼? + +- **Experiment with different binarization methods**(`"Sauvola"`、`"Bradley"`)。某些字型在自適應閾值下表現更佳。 +- **Integrate with a search engine**(例如 Elasticsearch),利用信心分數對結果排序。 +- **Combine with OCR post‑processing** 套件,如 `pyspellchecker`,清理常見的辨識錯誤。 +- **Explore batch processing**,一次處理數百張掃描——將步驟封裝成函式,批次讀取資料夾內的圖像。 + +隨意調整程式碼、加入自己的日誌,或將其整合到更大的文件管理流程中。若遇到任何問題,歡迎在下方留言——祝開發順利! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/hongkong/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..52296121c --- /dev/null +++ b/ocr/hongkong/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-05-03 +description: 如何使用 Aspose OCR Java 進行 PDF OCR。了解如何對 PDF 執行光學字符辨識、辨識 PDF 文字、將 PDF 轉換為 + JSON,以及僅用幾行程式碼載入 PDF 進行 OCR。 +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: zh-hant +og_description: 如何使用 Aspose OCR Java 進行 PDF OCR。本指南示範如何對 PDF 執行光學字符辨識、辨識 PDF 文字、將 + PDF 轉換為 JSON,以及快速載入 PDF 進行 OCR。 +og_title: 如何使用 Aspose OCR 進行 PDF OCR – 完整程式教學 +tags: +- Aspose OCR +- Java +- PDF processing +title: 如何使用 Aspose OCR 進行 PDF OCR – 完整逐步指南 +url: /zh-hant/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何使用 Aspose OCR 進行 PDF OCR – 完整步驟指南 + +有沒有想過 **如何 OCR PDF** 檔案,而不必與指令列工具搏鬥或支付昂貴的 SaaS 費用?你並不是唯一有此需求的人。在許多專案中——發票自動化、掃描合約的歸檔,或建立可搜尋的知識庫——你都會需要快速且可靠地從 PDF 中擷取文字。 + +好消息是?使用 Aspose OCR for Java,你可以 **在 PDF 上執行 OCR**、辨識 PDF 頁面的文字、**將 PDF 轉換為 JSON**,甚至 **載入 PDF 進行 OCR**,只需幾行程式碼。本教學將逐步說明完整工作流程,解釋每一步的意義,並提供一個可直接放入專案的完整範例程式碼。 + +## 你將學會 + +- 如何設定 Aspose OCR 引擎並套用授權。 +- 正確的 **載入 PDF 進行 OCR** 方式,並將其送入辨識器。 +- 如何一次呼叫 **辨識文字 PDF**,處理所有頁面。 +- 將完整 OCR 結果匯出為 **JSON** 檔(適合下游 API)以及單一頁面匯出為 **XML**。 +- 處理多頁 PDF 或自訂語言套件時的技巧、常見陷阱與變通方法。 + +> **先決條件** – 需要 Java 8 或更新版本、有效的 Aspose OCR for Java 授權檔 (`Aspose.OCR.Java.lic`),以及已加入 classpath 的 Aspose OCR JAR。無需其他外部函式庫。 + +--- + +## 如何 OCR PDF – 初始化 Aspose OCR 引擎 + +首先必須建立 `OcrEngine` 實例並套用授權。此步驟會解鎖完整功能,並移除評估水印。 + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**為什麼這很重要:** +若未套用授權,Aspose OCR 會以受限的「試用」模式執行,會限制頁數並在輸出上加上水印。提前套用授權可確保後續流程不會受到意外限制。 + +--- + +## 在 PDF 上執行 OCR – 載入文件並辨識文字 + +現在我們 **載入 PDF 進行 OCR**。Aspose OCR 將 PDF 視為特殊的 `PdfDocument` 類型,會在內部先將每一頁轉為影像,再送入辨識器。 + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**背後發生了什麼?** +`recognizeDocument` 會遍歷每一頁,以最佳 DPI 進行光柵化,然後執行 OCR 引擎。結果是一個 `OcrPage` 陣列,每個元素包含偵測到的文字、信心分數與版面資訊。這種做法遠比直接將原始 PDF 位元組送入一般 OCR 函式庫來得可靠。 + +--- + +## 將 OCR 結果轉為 JSON – 匯出完整報告 + +大多數下游系統偏好 JSON,因為它在 Java、JavaScript、Python,甚至 PowerShell 中都易於反序列化。Aspose OCR 內建 `JsonExport` 輔助類別,可將整個 `OcrPage[]` 陣列序列化。 + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**什麼時候會用到?** +如果你需要將 OCR 輸出送入搜尋索引(Elasticsearch、Solr)或資料管線,JSON 格式能提供每頁、每行、每字的結構化資訊,並附帶信心值。 + +--- + +## 匯出第一頁為 XML – 儲存單一頁面 + +有時只關心單一頁面——例如第一頁可能包含標題或發票號碼。`XmlExport` 類別允許你將單一 `OcrPage` 輸出為整齊的 XML 檔案。 + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**為什麼選 XML?** +某些舊有系統或企業工作流程仍依賴 XML Schema 進行資料匯入。產生的檔案遵循 Aspose 自家的 schema,驗證相當直接。 + +--- + +## 驗證輸出 – 檢查 JSON 與 XML 檔案 + +程式執行完畢後,你應該在 `YOUR_DIRECTORY` 中看到兩個檔案: + +- `report_ocr.json` – 包含頁面物件的陣列。快速片段可能長這樣: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – 包含第 1 頁的相同資訊,包在 `` 標籤內。 + +使用任意編輯器開啟它們;你會看到原始 OCR 文字、信心分數與邊界框座標。若 JSON 為空,請再次確認輸入的 PDF 是否真的包含光柵化內容(掃描圖像),而非可選取文字——Aspose OCR 只對圖像有效。 + +--- + +## 常見陷阱與專業提示 + +| 問題 | 發生原因 | 解決方法 | +|------|----------|----------| +| **JSON 為空** | PDF 內含原生文字,非影像。 | 使用 `PdfDocument.fromFile(..., true)` 強制光柵化,或先將頁面轉為影像。 | +| **信心分數低** | 原始 PDF 解析度低或壓縮過度。 | 在 `recognizeDocument` 前呼叫 `ocrEngine.getImageProcessingOptions().setDpi(300)` 提升 DPI。 | +| **找不到授權** | 路徑錯誤或檔案遺失。 | 使用絕對路徑,或將 `.lic` 檔放於 classpath,並呼叫 `lic.setLicense("Aspose.OCR.Java.lic")`。 | +| **大型 PDF 記憶體不足** | 所有頁面一次載入記憶體。 | 分批處理頁面:`recognizeDocument(pdfDoc, startPage, endPage)`。 | + +--- + +## 擴充範例 + +- **使用特定語言執行 OCR** – 設定 `ocrEngine.getLanguage().setLanguage(Language.English)`,或載入自訂語言套件。 +- **將每頁匯出為獨立 JSON 檔** – 迭代 `ocrPages`,呼叫 `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`。 +- **整合搜尋引擎** – 將 JSON 輸入 Elasticsearch 的 `attachment` 處理器,以實現全文搜尋。 + +--- + +## 結論 + +現在你已掌握使用 Aspose OCR for Java **如何 OCR PDF** 的完整、可投入生產的解決方案。只要依序初始化引擎、載入 PDF、執行 OCR,並將結果匯出為 **JSON** 與 **XML**,即可將 OCR 整合至任何後端工作流程——無論是 **在 PDF 上執行 OCR**、**辨識文字 PDF**、**將 PDF 轉換為 JSON**,或只是 **載入 PDF 進行 OCR**。 + +試著跑一跑,調整 DPI 或語言設定,讓先前不可讀的 PDF 變成可搜尋的資產。想更進一步?可將 JSON 索引至 Elasticsearch,或使用 XSLT 轉換 XML 產生自訂報表。 + +祝開發順利,願你的 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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/hongkong/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..35ee56076 --- /dev/null +++ b/ocr/hongkong/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,155 @@ +--- +category: general +date: 2026-05-03 +description: 快速執行 OCR:學習使用 Aspose OCR Java 從圖像提取文字,並從表格辨識文字。簡單步驟教你讀取圖像進行 OCR。 +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: zh-hant +og_description: 快速執行 OCR:學習使用 Aspose OCR Java 從圖像提取文字並從表格辨識文字。簡單步驟教你讀取圖像進行 OCR。 +og_title: 如何在表格上執行 OCR – 從圖像提取文字 +tags: +- ocr +- java +- image-processing +title: 如何在表格上執行 OCR – 從圖像提取文字 +url: /zh-hant/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在表單上執行 OCR – 從影像提取文字 + +有沒有想過 **how to run ocr** 在掃描文件上執行,而不需要花上數小時去玩弄晦澀的函式庫?你並不孤單。在許多專案中——無論是數位化發票、歸檔合約,或是從手寫表單中提取資料——能夠 **extract text from image** 檔案是每日的痛點。 + +事實是:Aspose OCR for Java 讓整個流程幾乎毫不費力。在本教學中,我們會逐行說明您需要的程式碼,以 **recognize text from form** 檔案,解釋每一步為何重要,並示範如何 **read image for ocr** 結果與信心分數。完成後,您將擁有一個可直接執行的 Java 類別,能夠放入任何 Maven 或 Gradle 專案中。 + +## 您將學會 + +- 設定 Aspose OCR 引擎並套用授權。 +- 將 JPEG、PNG 或 TIFF 載入記憶體。 +- 執行 OCR 並遍歷每一行已辨識的文字。 +- 找出低信心的行以供人工審核。 +- 將範例擴充至多頁 PDF 或其他影像格式。 + +不需要任何 Aspose 的先前經驗,只要具備基本的 Java 開發環境(JDK 11+ 以及您喜歡的任何 IDE)即可。讓我們開始吧。 + +![執行 OCR 範例](/images/ocr-demo.png){alt="在掃描表單上執行 OCR 的範例"} + +## 步驟 1:初始化 OCR 引擎 – **how to run ocr** + +在任何 OCR 操作之前,您必須先建立一個 `OcrEngine` 實例並附加有效的授權。若未附加授權,函式庫會以示範模式運行,會限制可處理的頁數。 + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**為什麼這很重要:** +`OcrEngine` 包含所有設定——語言、偵測模式以及效能調整。提前設定授權可避免自動切換至試用模式,從而導致輸出被截斷。 + +## 步驟 2:載入影像 – **extract text from image** + +接下來,我們需要一個指向欲掃描檔案的 `Image` 物件。Aspose 支援多種格式,您可以提供已轉換成 PNG 的掃描 PDF 頁面、原始 JPEG,甚至是多頁 TIFF。 + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**為什麼這很重要:** +將影像載入為 `Image` 物件可讓引擎取得像素資料、DPI 資訊與色彩深度——這些皆會影響 OCR 的準確度。若跳過此步驟直接傳入原始位元組陣列,則會失去這些有用的提示。 + +## 步驟 3:執行 OCR – **recognize text from form** + +現在是有趣的部分:實際辨識字元。`recognize` 方法會回傳一個 `RecognitionResult`,其中包含多個 `Line` 物件,每個物件都有自己的信心分數。 + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**為什麼這很重要:** +呼叫 `recognize` 會觸發一連串內部流程——前處理(去斜、雜訊移除)、分割、字元分類以及後處理(拼寫檢查、語言模型)。結果物件將所有這些複雜性抽象化。 + +## 步驟 4:處理結果 – **read image for ocr** 輸出 + +取得 `RecognitionResult` 後,您可以遍歷每一行,自動決定保留哪些,並標記看起來不穩定的項目。對於大多數印刷表單而言,85 % 的信心門檻是一個不錯的起點。 + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**預期輸出(範例):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +在上述範例中,引擎對總金額的最後一位數不確定,因此我們印出警告。您可以將這些行導入 UI 以供手動校正,或記錄下來以便之後審核。 + +### 邊緣案例與技巧 + +- **多頁面:** 若您有多頁 PDF,請對每個頁索引迴圈,並呼叫 `Image.fromPdf(pdfPath, pageIndex)`。 +- **不同語言:** 在呼叫 `recognize` 前設定 `engine.getLanguage().setLanguage(Language.Spanish);`。 +- **影像品質:** 低解析度掃描(< 150 DPI)常會導致信心低於 80 %。使用 `image.resize(300, 300)` 進行升級可能有幫助,但最好的解決方案是更好的掃描。 +- **效能:** 重複使用相同的 `OcrEngine` 實例處理多張影像,可減少相較於每次建立新實例的開銷。 + +## 常見問題 + +**我可以在無頭伺服器上執行嗎?** +絕對可以。此函式庫沒有 GUI 相依性,能在 Docker 容器或 CI 流程中順利執行。 + +**如果我還沒有授權呢?** +仍然可以呼叫 `engine.recognize`,但示範模式會在前兩頁後停止,且在輸出加上浮水印。非常適合快速測試。 + +**有沒有辦法提取結構化資料(例如表格)?** +Aspose OCR 提供 `TableRecognizer` 類別,但超出本入門指南的範圍。掌握基礎後,可參考官方文件了解 `TableRecognizer`。 + +## 總結 – **how to run ocr** 簡要說明 + +我們已說明在掃描表單上 **how to run ocr** 所需的全部步驟:初始化引擎、載入影像、執行辨識,並智慧地處理結果。只需幾行 Java 程式碼,即可 **extract text from image** 檔案、**recognize text from form** 文件,以及 **read image for ocr** 輸出,並取得信心分數,讓您決定何時需要人工審核。 + +接下來的步驟?嘗試將 JPEG 換成多頁 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/hongkong/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..cbb6d4ec5 --- /dev/null +++ b/ocr/hongkong/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,199 @@ +--- +category: general +date: 2026-05-03 +description: 如何在 Java 中使用 OCR 從 PDF 檔案提取文字。學習辨識 PDF 文字、將 PDF 轉換為文字,並高效處理多頁 PDF 的 OCR。 +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: zh-hant +og_description: 如何在 Java 中使用 OCR 從 PDF 檔案提取文字。本指南展示如何辨識 PDF 文字、將 PDF 轉換為文字,以及處理 OCR + 多頁 PDF。 +og_title: 如何在 Java 中使用 OCR – 從多頁 PDF 中提取文字 +tags: +- ocr +- java +- pdf +- aspose +title: 如何在 Java 中使用 OCR – 從多頁 PDF 提取文字 +url: /zh-hant/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 Java 中使用 OCR – 從多頁 PDF 中提取文字 + +**如何在 Java 專案中使用 OCR**?如果你曾需要從 PDF 檔案中提取文字,而不依賴 PDF 內部的文字層,這裡就是你的答案。此教學將帶你完成一個完整、可執行的解決方案,**從 PDF 識別文字**、將 PDF 轉換為文字,甚至只需一次呼叫即可處理**OCR 多頁 PDF**。 + +想像一下,你收到一份掃描的合約 — 一個包含 12 頁 TIFF 的 PDF。你需要可搜尋的文字以供索引,但檔案沒有內嵌字元。沒問題;我們將一步一步示範如何完成。 + +> **你將獲得:** 一段可直接執行的 Java 程式碼範例(使用 Aspose.OCR),每行程式碼意義的說明,常見陷阱的提示,以及可即時驗證的範例輸出。 + +--- + +## 需要的條件 + +* **Java 17**(或任何較新的 JDK)— 程式碼亦可在較舊版本上運作,但 17 為最佳選擇。 +* **Aspose OCR for Java** 函式庫 — 你可以從 Aspose 官方網站下載 JAR,或透過 Maven/Gradle 加入。 +* 一個你想處理的 **多頁 PDF**(或 TIFF)。在範例中,我們使用放在 `YOUR_DIRECTORY` 資料夾下的 `contract_multipage.pdf`。 +* 一個有效的 **Aspose OCR 授權檔**(`Aspose.OCR.Java.lic`)。若未提供授權,函式庫會以評估模式執行,雖適合快速測試,但會加上浮水印。 + +就這樣 — 不需要額外的 OCR 引擎、也不需要本機二進位檔,只要一個 JAR 與授權檔即可。 + +![how to use ocr example](https://example.com/ocr-demo.png "在 Java 中使用 OCR – 流程的視覺概覽") + +*Image alt text: 在 Java 中使用 OCR – 載入、辨識與輸出文字的視覺概覽.* + +## 步驟 1:設定 OCR 引擎 – 正確 **使用 OCR** + +首先,你必須建立 OCR 引擎的實例並套用授權。即使未套用授權,引擎仍會運作,但輸出會出現試用浮水印。 + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**為什麼這很重要:** +`OcrEngine` 是負責影像分析、語言偵測與文字抽取的核心物件。提前設定授權可避免引擎之後回到試用模式,從而影響辨識準確度。 + +## 步驟 2:載入文件 – 高效 **從 PDF 抽取文字** + +Aspose OCR 能直接讀取 PDF 與 TIFF 容器。此處我們載入一個包含掃描影像的多頁 PDF。 + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**為什麼這很重要:** +`PdfDocument.fromFile` 會解析容器,並讓你以影像方式存取每一頁。此抽象層使 OCR 引擎能統一處理每頁,無論原始格式為何。 + +**提示:** 若來源檔案為 TIFF,使用相同的呼叫即可——Aspose 會自動偵測格式,無需額外程式碼。 + +## 步驟 3:一次辨識所有頁面 – 無縫 **從 PDF 辨識文字** + +與其自行迴圈處理每頁,不如請引擎一次性處理整份文件。這是在處理 **OCR 多頁 PDF** 時,將 **PDF 轉換為文字** 最有效的方式。 + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**為什麼這很重要:** +一次呼叫 `recognizeDocument` 可減少因重複初始化引擎而產生的開銷。也能確保所有頁面的語言設定一致,這對常混用字型的法律文件尤為關鍵。 + +## 步驟 4:輸出辨識文字 – 為索引 **將 PDF 轉換為文字** + +現在所有頁面皆已處理,我們只需遍歷結果並印出抽取的字串。你也可以將它寫入檔案、資料庫,或送入搜尋索引。 + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**預期輸出(截斷):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +若 PDF 包含 12 頁,你會看到十二個 `--- Page X ---` 區段,每個區段後皆為 OCR 抽取的文字。 + +## 進階技巧:處理 **OCR 多頁 PDF** + +### 1. 調整語言設定 + +預設情況下,Aspose 會嘗試自動偵測語言,但你可以明確指定以加快速度: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. 控制影像前處理 + +掃描的合約常有雜訊。你可以啟用去斜與二值化: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. 優雅處理大型檔案 + +若處理超過 100 MB 的 PDF,建議以串流方式讀取頁面,而非一次載入整份文件: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +此模式可減少記憶體壓力,亦適用於批次作業。 + +### 4. 匯出為結構化格式 + +除了純文字外,你也可以匯出為 JSON 或 XML 以供後續處理: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## 常見陷阱與避免方法 + +| 陷阱 | 發生原因 | 解決方式 | +|------|----------|----------| +| **空白輸出** | 未套用授權或檔案路徑錯誤。 | 確認 `setLicense` 路徑正確,且檔案確實存在。 | +| **亂碼** | 語言設定錯誤或來源解析度過低。 | 設定正確的 `Language`,並確保來源影像解析度 ≥300 dpi。 | +| **記憶體不足錯誤** | 一次載入大型 PDF。 | 使用上述的串流方式。 | +| **頁面部分辨識** | PDF 含有混合的點陣與向量圖層。 | 先將 PDF 展平:`pdfDoc.flatten();` 再執行 OCR。 | + +## 重點回顧 – 本文涵蓋內容 + +* **如何在 Java 中使用 Aspose 的 OCR**。 +* **一次呼叫抽取 PDF(或 TIFF)文字**。 +* **跨所有頁面辨識 PDF 文字**,無需手動迴圈。 +* **將 PDF 轉換為文字** 並整潔輸出。 +* 處理 **OCR 多頁 PDF** 的技巧,包括語言調整與記憶體友善的串流方式。 + +現在你已擁有一段完整、可直接投入生產環境的程式碼片段,可嵌入任何 Java 專案。隨意調整影像處理選項、變更輸出目的地,或將結果整合至搜尋索引中。 + +## 後續步驟 + +* **探索 Aspose OCR 的進階功能** — 如手寫辨識或 PDF/A 相容性。 +* **結合 OCR 與 PDF 操作**(例如,將隱藏文字層加入 PDF,使其可搜尋)。 +* **自動化批次處理**:讀取資料夾內的 PDF,並將每個結果寫入對應的 `.txt` 檔案。 + +如果遇到任何問題,Aspose 論壇是求助的好去處,且 API 參考文件提供了此處所有方法的完整說明。 + +祝開發順利,盡情將那些頑固的掃描檔轉換為可搜尋的文字! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/hongkong/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..bcff99884 --- /dev/null +++ b/ocr/hongkong/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-05-03 +description: 使用 Java 讀取二進位檔案以載入 Aspose OCR 授權。了解 FileInputStream 的使用、二進位資料處理,以及本分步指南中的實用技巧。 +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: zh-hant +og_description: 在 Java 中讀取二進位檔案以載入 Aspose OCR 授權。跟隨本完整指南,精通 Java 中的 FileInputStream + 及二進位資料處理。 +og_title: 在 Java 中讀取二進位檔案 – 為 Aspose OCR 載入授權位元組 +tags: +- Java +- File I/O +- OCR +title: 讀取二進位檔案 Java – 載入 Aspose OCR 授權位元組 +url: /zh-hant/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 讀取 Binary File Java – 載入 Aspose OCR 的授權位元組 + +有沒有曾經在處理第三方函式庫的授權時,需要 **read binary file Java**?你並不孤單。大多數 Java 開發者在嘗試將 `.lic` 檔案餵入 OCR 引擎時,都會卡在這裡,而一般的文字檔案技巧根本無法解決。 + +在本教學中,我們將逐步示範一個完整且可執行的範例,說明如何開啟二進位授權檔案、將其位元組讀入記憶體,並將這些位元組傳遞給 Aspose OCR for Java。過程中你會了解為何 `FileInputStream` 是正確的工具、如何處理可能的 `IOException`,以及一些官方文件未提及的實用技巧。 + +閱讀完本指南後,你將能以 **read binary file Java** 方式讀取檔案,建立 `License` 物件,並將其指派給 `OcrEngine`,輕鬆完成。 + +## 本指南涵蓋內容 + +- 前置條件:Java 17+、Maven(或 Gradle)以及 Aspose OCR for Java 套件。 +- 逐步程式碼示範,使用 `FileInputStream` 讀取二進位 `.lic` 檔案。 +- 逐行說明,讓你了解 *why* 背後的 *how*。 +- 邊緣案例處理(檔案遺失、位元組損毀)與實用除錯技巧。 +- 最終的獨立程式碼片段,可直接複製貼上至 IDE 並立即執行。 + +如果你曾想過是否需要特別的 API 來讀取授權檔案,答案是斷然 **no**——只要使用傳統的二進位 I/O 即可。讓我們開始吧。 + +## 步驟 1:使用 FileInputStream 讀取 Binary File Java + +我們首先需要一個可靠的方法,從磁碟上的授權檔案中取得原始位元組。在 Java 中,`FileInputStream` 正是為此而生的主力工具。 + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**為什麼這樣可行:** `Files.readAllBytes` 內部會建立 `FileInputStream`,讀取整個串流,並在完成後自動關閉。它安全、簡潔,避免了常見的「忘記關閉串流」問題。若你偏好傳統寫法,也可以直接使用 `FileInputStream` 搭配 try‑with‑resources 區塊取代。 + +### 專業提示 + +如果授權檔案非常大(雖不常見,但仍有可能),可考慮分塊串流讀取,而非一次性載入。對於大多數 OCR 授權檔案——通常只有幾千位元組——一次性讀取已足夠。 + +## 步驟 2:為 Aspose OCR 建立 License 物件 + +取得原始位元組後,我們需要將它們轉換為 Aspose 相容的 `License` 實例。此套件提供接受位元組陣列的 `License` 類別。 + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**為什麼這很重要:** 直接傳入位元組可避免任何路徑相關問題(例如相對於工作目錄的混淆),且讓部署更具可移植性——只要將 `.lic` 檔案隨應用程式一起打包即可。 + +## 步驟 3:將 License 指派給 OCR Engine + +`License` 物件準備好後,最後一步是將它附加到 `OcrEngine`。此步驟可確保 OCR 元件以授權模式執行,而非評估沙箱。 + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **注意:** 某些較舊的 Aspose 版本會公開 `license` 欄位而非使用 setter。若遇到編譯錯誤,請相應調整程式碼(`ocrEngine.license = license;`)。 + +## 步驟 4:驗證 License 是否成功載入(可選但有幫助) + +快速的健全性檢查可以為之後節省數小時的除錯時間。`License` 類別在成功時不會拋出例外,但你可以嘗試執行一次無害的 OCR 操作以確認。 + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +若看到「License applied successfully」訊息,即表示成功。若未顯示,請再次確認檔案路徑、位元組完整性,以及使用的 Aspose 版本是否正確。 + +## 完整可執行範例 + +將所有部件組合起來即可得到一個精簡、可直接複製貼上的程式。隨意將其放入 `Main.java` 檔案並執行即可。 + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**預期輸出(假設示範圖片存在):** + +``` +License applied successfully – OCR engine is ready. +``` + +若授權檔案遺失或損毀,將會看到類似以下的明確錯誤訊息: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## 常見陷阱與避免方法 + +- **路徑混淆:** 相對路徑是以 JVM 的工作目錄為基準,而非原始檔案位置。請使用絕對路徑,或將 `.lic` 檔案與 JAR 放在同一目錄,並以 `getResourceAsStream` 取得。 +- **位元組順序錯誤:** 千萬不要使用 `Reader`(字元導向)來讀取二進位檔案,會導致資料損壞。請堅持使用基於 `FileInputStream` 的 API。 +- **版本不匹配:** 某些舊版 Aspose 需要使用 `license.setLicense("path/to/file")` 而非 `setLicenseBytes`。若遇到 `NoSuchMethodError`,請查閱套件的發行說明。 +- **忘記關閉串流:** 若回到傳統的 `FileInputStream` 寫法,請使用 try‑with‑resources 區塊確保串流關閉。 + +## 結論 + +現在你已了解如何 **read binary file Java** 以載入 Aspose OCR 授權、建立 `License` 物件,並將其連接至 `OcrEngine`。此流程核心在於使用 `FileInputStream`(或較新的 `Files.readAllBytes`)正確處理二進位資料,以及幾個簡單的 API 呼叫。 + +接下來,你可以著手實際的 OCR 任務——從 PDF、影像或掃描文件中擷取文字——且不必擔心授權層會卡住你。若對相關主題感興趣,可參考 **Java FileInputStream**、**binary data handling Java**、以及 **read license file Java** 等其他函式庫的教學。 + +祝程式開發順利,願你的 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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/hongkong/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..62c01eadd --- /dev/null +++ b/ocr/hongkong/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-05-03 +description: 學習如何使用 Aspose OCR for Java 從圖像識別文字並將圖像轉換為文字。包括提升 OCR 準確度的技巧以及在 PNG 檔案上執行 + OCR。 +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: zh-hant +og_description: 使用 Aspose OCR for Java 的逐步指南,從圖片辨識文字。學習將圖片轉換為文字、提升 OCR 準確度以及在 PNG + 上執行 OCR。 +og_title: 使用 Aspose OCR 辨識圖片文字 – Java 教程 +tags: +- OCR +- Java +- Aspose +- Image Processing +title: 使用 Aspose OCR 從影像識別文字 – 完整 Java 指南 +url: /zh-hant/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose OCR 辨識影像文字 – 完整 Java 教學 + +有沒有曾經需要**辨識影像文字**,卻不確定哪個函式庫能提供可靠的結果?你並不孤單——許多開發者在首次嘗試從掃描的 PDF、收據或實驗報告中提取資料時,都會碰到這個問題。好消息是,Aspose OCR for Java 讓整個流程變得輕而易舉,你甚至只需幾行程式碼就能**將影像轉換為文字**。 + +在本教學中,我們將逐步說明你需要了解的所有內容:從載入影像進行 OCR、調整設定以**提升 OCR 準確度**,到最終**在 PNG 檔案上執行 OCR** 並印出擷取的文字。內容精簡實用,提供一個可直接放入專案的可執行範例。 + +--- + +## 需要的環境 + +| 先決條件 | 原因 | +|--------------|--------| +| Java 17(或更新版本) | Aspose OCR 支援 Java 8+,但最新 JDK 可提供更佳效能。 | +| Aspose OCR for Java 程式庫 (`aspose-ocr.jar`) | 執行主要運算的核心引擎。 | +| 有效的 Aspose OCR 授權檔案 (`Aspose.OCR.Java.lic`) | 啟用完整功能;否則會顯示試用水印。 | +| 包含清晰文字的影像檔(PNG、JPEG、TIFF 等) | 我們將以 `lab_report.png` 作為具體範例。 | +| 自訂字典(選用) | 提升對領域特定詞彙(如「hemoglobin」)的辨識率。 | + +如果上述項目對你來說陌生,別慌——安裝 JAR 檔與建立簡單文字檔都是很容易的工作,我們稍後會說明。 + +## 步驟 1 – 建立專案並匯入相依套件 + +首先,建立一個新的 Maven(或 Gradle)專案,並加入 Aspose OCR 的相依套件。Maven 使用者可以將以下程式碼片段貼到 `pom.xml` 中: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +如果你偏好使用 Gradle,等價的設定如下: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **小技巧:** 留意版本號;較新的版本通常包含能直接影響**提升 OCR 準確度**的錯誤修正。 + +接著,建立一個名為 `OcrDemo.java` 的 Java 類別。於檔案開頭匯入所需的類別: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## 步驟 2 – 初始化 OCR 引擎並套用授權 + +在告訴引擎已取得授權之前,無法**在 PNG 檔案上執行 OCR**。以下是設定方式: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +為什麼需要額外的 `License` 物件?Aspose 將授權處理與引擎分離,讓你能即時切換授權,這在多租戶 SaaS 情境下相當便利。 + +## 步驟 3 – 載入自訂字典(選用但功能強大) + +若你要處理醫學術語、化學式或品牌名稱等,自訂字典能顯著**提升 OCR 準確度**。字典是一個純文字檔,每行一個詞彙: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **為什麼有效:** OCR 引擎會利用字典偏向你關心的詞彙,降低像「hemo­globin」→「hemoglobin」這類誤辨的機會。 + +如果沒有字典,只需略過此行——Aspose 內建的語言套件已能提供不錯的表現。 + +## 步驟 4 – 載入要處理的影像 + +現在我們真正**載入影像以進行 OCR**。Aspose 支援多種格式,但 PNG 為無損格式,是掃描文件的安全選擇。 + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **特殊情況:** 若影像檔案過大(超過 5 MB),建議先縮小尺寸以加快處理速度。`Image` 類別提供 `resize` 方法,可在辨識前呼叫。 + +## 步驟 5 – 執行 OCR 程序並取得文字 + +設定完成後,啟動 OCR 引擎。`recognize` 方法會回傳一個 `OcrResult` 物件,內含擷取的字串、信心分數,若需要版面資訊,亦會提供邊界框。 + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +執行程式後,你應該會看到類似以下的輸出: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +就這樣——你已成功使用 Aspose OCR **辨識影像文字** 並 **將影像轉換為文字**。 + +## 步驟 6 – 常見問題與解決方式 + +即使使用功能完善的函式庫,仍可能遇到一些小問題: + +| 症狀 | 可能原因 | 解決方法 | +|---------|--------------|-----| +| 空白輸出 | 授權未套用或已過期 | 確認 `Aspose.OCR.Java.lic` 的路徑正確且與版本相符。 | +| 字元亂碼 | 影像解析度低或過度壓縮 | 使用較高解析度的來源或先前處理影像(二值化、去斜)。 | +| 缺少領域特定詞彙 | 未使用自訂字典 | 新增包含缺少詞彙的字典檔,每行一個詞。 | +| 大量批次處理緩慢 | 未使用多執行緒 | 建立 `OcrEngine` 實例池(它們是執行緒安全的),並行處理影像。 | + +## 步驟 7 – 延伸範例:將結果寫入檔案 + +如果需要保留擷取的文字以供後續分析,只要將其寫入檔案即可: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +現在你擁有一個可重複使用的流程,能**載入影像進行 OCR**、擷取內容,並依需求儲存。 + +## 加分項目:在資料夾中對多個 PNG 檔案執行 OCR + +實務上常需處理數十張掃描檔。以下是一段快速迴圈,會抓取目錄中所有 `.png` 檔案: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +請記得重複使用同一個 `ocrEngine` 實例——為每個檔案重新建立會增加不必要的開銷。 + +## 結論 + +你現在擁有一套完整、端到端的解決方案,能使用 Aspose OCR for Java **辨識影像文字**。從載入影像、可選地使用自訂字典以**提升 OCR 準確度**,到**在 PNG 檔案上執行 OCR** 並儲存輸出,這段程式碼已可直接嵌入任何 Java 專案。 + +接下來該怎麼做?可以將擷取的文字送入自然語言處理管線,或嘗試對手寫筆記進行 OCR(Aspose 亦提供手寫模式)。可能性無窮,而你已踏出第一步。 + +祝開發順利!若遇到任何問題,歡迎在下方留言,我們一起排除故障。 + +![在主控台顯示 OCR 結果的螢幕截圖 – 辨識影像文字](/images/ocr_console_result.png "辨識影像文字範例") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/hungarian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..2a41a1204 --- /dev/null +++ b/ocr/hungarian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-05-03 +description: Képből táblázatok kinyerése az Aspose OCR Java segítségével. Tanulja + meg, hogyan töltsön be képet OCR-hez, hogyan nyerjen ki táblázatot PNG-ből, hogyan + konvertálja a képtáblázat szövegét, és hogyan ismerje fel gyorsan a nyugtaképet. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: hu +og_description: Az Aspose OCR Java segítségével táblázatok kinyerése képből. Ez az + útmutató bemutatja, hogyan töltsünk be képet OCR-hez, hogyan nyerjünk ki táblázatot + PNG-ből, hogyan konvertáljuk a képtáblázat szövegét, és hogyan ismerjünk fel számla + képet. +og_title: Táblázatok kinyerése képből – Aspose OCR Java oktatóanyag +tags: +- Aspose OCR +- Java +- Image Processing +title: Képből táblázatok kinyerése – Teljes Aspose OCR Java útmutató +url: /hu/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Táblázatok kinyerése képből – Teljes Aspose OCR Java útmutató + +Valaha is szükséged volt **extract tables from image** fájlok kinyerésére, de mindig akadályba ütköztél? Lehet, hogy egy beolvasott nyugtát vagy egy lefotózott számlát tartasz, és a táblázatos adatok egy PNG-ben rejtőznek. Ebben az útmutatóban pontosan megmutatjuk, hogyan *load image for OCR*, hogyan alakítsuk a képet strukturált sorokká, és **convert image table text**-et olyan formába, amellyel Java-ban dolgozhatsz. + +Minden lépésen végigvezetünk, az Aspose OCR motor licencelésétől a felismert táblázatok egyes celláinak kiírásáig. A végére képes leszel **recognize receipt image** fájlok felismerésére és a táblázataik kinyerésére könnyedén. + +## Amit megtanulsz + +- Hogyan inicializáld az Aspose OCR motorját és alkalmazd a licencet. +- Miért kulcsfontosságú a táblázatfelismerés engedélyezése a **extract tables from image**-hez. +- A pontos kód, amely a **load image for OCR**-t végrehajtja és felismeri a PNG-t. +- Módszerek több táblázat, alacsony felbontású beolvasások és gyakori buktatók kezelésére. +- Hogyan **convert image table text**-et nyomtatható (vagy adatbázis‑kész) formátumba. + +Nem szükséges külső dokumentáció – minden, amire szükséged van, itt megtalálható. + +## Előfeltételek + +- Java 17 vagy újabb (a kód a modern modulrendszert használja). +- Egy Aspose OCR for Java licencfájl (`Aspose.OCR.Java.lic`). Ha csak kísérletezel, egy ideiglenes értékelő kulcs is működik. +- Egy PNG kép, amely egyértelmű táblázatot tartalmaz (pl. `receipt_with_table.png`). +- Maven vagy Gradle az Aspose OCR függőség letöltéséhez: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Tartsd a licencfájlt a `src/main/resources` mappád mellett, hogy az útvonal minden környezetben stabil maradjon. + +--- + +## 1. lépés – Az OCR motor inicializálása a **extract tables from image** érdekében + +Mielőtt a motor bármit is tudna tenni, tudnia kell, hogy jogos felhasználó vagy. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Miért fontos:* Érvényes licenc nélkül az OCR motor próbaüzemmódban fut, ami lerövidítheti az eredményeket vagy nemkívánatos vízjeleket ad hozzá – ez megbízhatatlanná teszi a táblázatkinyerést. + +--- + +## 2. lépés – Táblázatfelismerés engedélyezése (**extract table from png**) + +A táblázatfelismerés alapértelmezés szerint nincs bekapcsolva; manuálisan kell aktiválni. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Ennek a jelzőnek az engedélyezése azt mondja az Aspose OCR-nek, hogy a sorba rendezett szövegcsoportokat sorokként és oszlopokként kezelje, ami pontosan az, amire szükséged van, ha **extract tables from image** PNG fájlokból szeretnél kinyerni. + +--- + +## 3. lépés – **Load image for OCR** és **recognize receipt image** + +Most ténylegesen betápláljuk a képet a motorba. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Ha egy **recognize receipt image** helyzettel dolgozol, érdemes lehet előfeldolgozni a képet (kiegyenesítés, kontraszt növelése). Ez a gyors útmutató keretein kívül esik, de zajos beolvasásoknál érdemes megvizsgálni. + +--- + +## 4. lépés – OCR eredmény feldolgozása és **convert image table text** + +Az `OcrResult` objektum egy vagy több táblázatot tartalmazhat. Iteráljunk rajtuk és írjuk ki minden cellát. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Mit csinál:** + +- Ellenőrzi, hogy találtak-e táblázatot; ha nem, minőségjavítást javasol. +- Minden táblázat esetén sorokat nyomtat ki tabulátorral elválasztott cellákkal, ami kényelmes formátum CSV importhoz. +- A `Cell::getText` hívás a **convert image table text** központja – a nyers OCR szöveget húzza ki minden cellából. + +### Várható kimenet + +Feltételezve, hogy a `receipt_with_table.png` egy egyszerű 3 × 2 táblázatot tartalmaz, valami ilyesmit fogsz látni: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Ha a képen több táblázat van, mindegyik egy üres sorral lesz elválasztva. + +--- + +## 5. lépés – A kinyert táblázatok ellenőrzése és szélső esetek kezelése + +### Gyakori buktatók + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **Nincsenek táblázatok észlelve** | A kép túl homályos vagy alacsony kontrasztú | Alkalmazz binarizációt (`ImageProcessing.applyThreshold`) az OCR előtt | +| **Egyesített cellák** | A táblázat vonalai gyengék, az OCR egy blokként kezeli | Növeld a `TableDetectionSensitivity` értékét az `ocrEngine.getConfig()`-ban | +| **Helytelen oszlopsorrend** | A ferde kép miatt a sorok nem igazodnak | Használd a `ImageProcessing.deskew`-et vagy forgasd a képet 90°-kal | + +### Mit tegyél ezután + +- **Export to CSV** – cseréld le a `System.out.println(line);`-t egy `FileWriter`-re az adatok mentéséhez. +- **Feed into a database** – mappeld minden sort egy POJO-ra és használd a JPA-t a perzisztenciához. +- **Combine with other APIs** – a nyugta feldolgozásához esetleg a teljes összegeket is kinyerheted reguláris kifejezésekkel az OCR szövegből. + +--- + +## Teljes működő példa (másolás-beillesztés kész) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Futtasd ezt a programot, mutasd egy tiszta táblázatot tartalmazó PNG-re, és figyeld, ahogy a konzol rendezett sorokkal töltődik fel. + +--- + +## Összegzés + +Most már egy szilárd, vég‑től‑végig megoldással rendelkezel a **extract tables from image** fájlok kinyerésére az Aspose OCR for Java segítségével. A licenceléstől a **load image for OCR**-ig, a **extract table from png** engedélyezéséig, és végül a **convert image table text**-ig, minden lépés magyarázatokkal és gyakorlati tippekkel van lefedve. + +Ezután próbáld meg az eredményt CSV fájlba láncolni, a sorokat relációs adatbázisba betölteni, vagy kombinálni az OCR lépést egy nyugta‑összeg‑kinyerő rutinnal. Ugyanez a minta működik számlák, árlisták és bármely beolvasott dokumentum esetén, amely adatokat egy rács mögött rejteget. + +Van kérdésed az alacsony felbontású nyugták kezelésével vagy a kötegelt feldolgozásra való skálázással kapcsolatban? Hagyj egy megjegyzést alább, és jó kódolást! + +![Képből kinyert táblázatok példája](https://example.com/assets/extract-tables-from-image.png "Képből kinyert táblázatok – minta kimenet") + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/hungarian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..92babd7b9 --- /dev/null +++ b/ocr/hungarian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Képről szöveg kinyerése Pythonban az Aspose OCR használatával. Tanulj + meg egy lépésről‑lépésre Python OCR bemutatót vegyes latin‑cirill támogatással. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: hu +og_description: Képből szöveg kinyerése Pythonban gyorsan. Ez az útmutató bemutatja, + hogyan használhatja az Aspose OCR-t Pythonban vegyes latin‑cirill képekhez. +og_title: Szöveg kinyerése képből Pythonban – Teljes Aspose OCR útmutató +tags: +- OCR +- Python +- Aspose +title: Kép szövegének kinyerése Pythonban – Teljes Aspose OCR útmutató +url: /hu/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Képről szöveg kinyerése Pythonban – Teljes Aspose OCR útmutató + +Valaha szükséged volt **extract text from image python**-ra, de nem tudtad, melyik könyvtár képes kezelni a latin és cirill karakterek keverékét? Nem vagy egyedül – a fejlesztők folyamatosan ezzel a problémával találkoznak, amikor többnyelvű képernyőképeket OCR‑oznak. + +A jó hír, hogy az Aspose OCR for Python szinte fájdalommentessé teszi az egész folyamatot. Ebben az útmutatóban végigvezetünk a csomag telepítésén, a licenc alkalmazásán, egy vegyes nyelvű kép betöltésén, és végül a felismert szöveg kinyerésén néhány kódsoron keresztül. A végére egy kész‑futás‑kész szkriptet kapsz, amelyet bármely projektbe beilleszthetsz. + +## Mit fogsz megtanulni + +- Hogyan állítsd be a **Aspose OCR Python**‑t egy virtuális környezetben. +- Miért gyorsítja a nyelvi tippek (pl. latin és cirill) a felismerést. +- A pontos kód, amely a **extract text from image python**‑t egyetlen függvényhívással végrehajtja. +- Gyakori buktatók a vegyes nyelvű OCR használatakor és hogyan kerüld el őket. + +### Előfeltételek + +- Python 3.8 vagy újabb telepítve a gépeden. +- Egy Aspose OCR licencfájl (`Aspose.OCR.Java.lic`). Az ingyenes próba a teszteléshez megfelelő, de egy licencelt fájl eltávolítja a vízjeleket. +- Egy PNG/JPEG kép, amely latin és cirill karaktereket is tartalmaz (ezt `mixed_latin_cyrillic.png`‑nek hívjuk). + +Ha ezeket kipipáltad, már indulhatsz – nincs szükség extra keretrendszerekre vagy nehéz függőségekre. + +--- + +## 1. lépés – Képről szöveg kinyerése Pythonban: Aspose OCR telepítése + +Először is: szerezd be a könyvtárat a PyPI‑ról, és győződj meg róla, hogy a környezet megtalálja a licencfájlt. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tipp:** Ha jogosultsági hibát kapsz, add hozzá a `--user` kapcsolót a `pip install` parancshoz, vagy futtasd a terminált rendszergazdaként. + +Most, hogy a csomag a rendszereden van, importáljuk, és mutassuk meg a motor számára a licencünket. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Miért van szükség licencre ebben a szakaszban? Licenc nélkül a motor **értékelő módban** fut, ami korlátozza az oldalak számát és vízjelet helyez a kimenetre. A licenc előzetes megadása biztosítja, hogy a későbbi `recognize` hívás tiszta szöveget adjon vissza. + +--- + +## 2. lépés – Kép betöltése vegyes latin‑cirill tartalommal + +Most betöltjük a képet a memóriába. Az Aspose OCR a saját `Image` osztályával dolgozik, amely elrejti a mögöttes fájlformátumot. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Ha azon gondolkodsz, hogy más formátumok működnek‑e, a válasz: igen, a JPEG, BMP, TIFF és még a PDF is támogatott. Csak cseréld ki a fájlkiterjesztést, és a `from_file` metódus a többit elintézi. + +--- + +## 3. lépés – Nyelvi tippek a gyorsabb felismeréshez (Opcionális, de hasznos) + +Ha tudod, mely nyelvek vannak a képen, adhatod meg a motor számára előre. Ez nem kötelező, de **lényegesen csökkenti a feldolgozási időt** és javítja a pontosságot a vegyes nyelvű OCR‑nél. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +A tipplista bármely, az Aspose OCR által támogatott nyelvet elfogad (pl. `"Arabic"`, `"Japanese"`). Ha kihagyod ezt a lépést, a motor minden beépített nyelvet megpróbál, ami nagy kötegek esetén lassabb lehet. + +--- + +## 4. lépés – OCR motor futtatása és szöveg kinyerése + +Most jön a döntő pillanat: a karakterek tényleges felismerése. A `recognize` metódus egy `OcrResult` objektumot ad vissza, amely a tiszta szöveget, a bizalmi pontszámokat és akár a határoló dobozokat is tartalmazza, ha később szükséged lenne rájuk. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Miért működik ez:** A háttérben az Aspose OCR egy neurális‑hálózatos szövegdetektort kombinál nyelvspecifikus osztályozókkal. Ha egy `Image` objektumot adsz át, elkerülöd a manuális előfeldolgozást, például a binarizálást. + +--- + +## 5. lépés – Kinyert szöveg megtekintése + +Végül nyomtassuk ki az eredményt a konzolra. Egy valódi alkalmazásban esetleg fájlba írnád, adatbázisba mentenéd, vagy egy fordító API‑nak adnád át. + +```python +print("Recognised text:") +print(extracted_text) +``` + +A szkript futtatásakor valami ilyesmit kell látnod: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Ez a kimenet megerősíti, hogy sikeresen **extract text from image python**‑t hajtottunk végre, egyetlen lépésben kezelve a latin és cirill karaktereket. + +--- + +## Teljes működő példa + +Az alábbi a kész szkript, amelyet beilleszthetsz egy `extract_ocr.py` nevű fájlba. Csak cseréld ki a helyőrző útvonalakat a saját könyvtáraidra. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Mentsd el a fájlt, aktiváld a virtuális környezetet, és futtasd: + +```bash +python extract_ocr.py +``` + +A konzolon meg kell jelennie a felismert szövegnek, ami azt igazolja, hogy a szkript vég‑től‑végig működik. + +--- + +## Gyakran Ismételt Kérdések & Szélsőséges Esetek + +**Mi a teendő, ha a kép elmosódott?** +Az Aspose OCR beépített de‑skew és zajcsökkentő funkciókkal rendelkezik, de erősen degradált fotók esetén érdemes lehet előfeldolgozni OpenCV‑vel (pl. Gaussian blur és threshold alkalmazása). Az `Image` osztály NumPy tömböt is elfogad, így egyéni szűrőket láncolhatsz a `recognize` hívás előtt. + +**Feldolgozhatok egy egész mappát képekkel?** +Természetesen. Csomagold a logikát egy `for` ciklusba, cseréld a `from_file`‑t úgy, hogy minden fájlnevet beolvassa, és tárold az eredményeket egy szótárban. Ne feledd figyelembe venni az API hívási korlátokat, ha a felhő verziót használod. + +**Szükség van külön licencre minden nyelvhez?** +Nem, egyetlen Aspose OCR licenc lefedi az összes támogatott nyelvet. A `language_hints` lista csak egy teljesítmény‑tipp. + +**Mi a helyzet a PDF bemenettel?** +Cseréld a `Image.from_file`‑t erre: `ocr.Image.from_file("document.pdf")`. Az OCR motor automatikusan rasterizálja az egyes oldalakat, és összefűzött szöveget ad vissza. + +--- + +## Következtetés + +Most bemutattunk egy tömör, termelés‑kész módszert a **extract text from image python** végrehajtására az Aspose OCR segítségével. A lépések – telepítés, licenc, betöltés, nyelvi tippek, felismerés és megjelenítés – mindent lefednek, ami a megbízható eredményekhez szükséges vegyes latin‑cirill tartalom esetén. + +Innen tovább felfedezheted a haladó témákat, mint a **image to text conversion** kötegelt feldolgozáshoz, integrálhatod a kimenetet egy **Python OCR tutorial**‑ba a természetes nyelvfeldolgozáshoz, vagy kísérletezhetsz más nyelvi tippekkel többnyelvű dokumentumoknál. A lehetőségek végtelenek, a kód már a kezedben van. + +Más felhasználási eseted van, vagy problémába ütköztél? Írj egy megjegyzést, oszd meg a tapasztalatodat, és tartsuk fenn a beszélgetést. Boldog kódolást! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/hungarian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..8acd6bc27 --- /dev/null +++ b/ocr/hungarian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Az Aspose OCR-rel azonnal szöveget nyerhet ki a képből. Tanulja meg, + hogyan definiálja az érdeklődési területet, töltsön be képet az OCR-hez, és csak + néhány perc alatt nyerjen ki szöveget egy számláról. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: hu +og_description: Szöveg kinyerése képből az Aspose OCR használatával. Ez az útmutató + bemutatja, hogyan határozhat meg érdeklődési területet, töltheti be a képet OCR-hez, + és hatékonyan nyerheti ki a számla szövegét. +og_title: Képből szöveg kinyerése az Aspose OCR segítségével – Teljes útmutató +tags: +- ocr +- python +- image-processing +title: Szöveg kinyerése képből az Aspose OCR-rel – Lépésről lépésre útmutató +url: /hu/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-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 Aspose OCR‑rel – Lépésről‑lépésre útmutató + +Gyorsan **szöveget szeretnél kinyerni egy képből**? Nem vagy egyedül – a fejlesztők állandóan küzdenek zajos szkennelésekkel, nyugtákkal és számlákkal. Ebben a tutorialban végigvezetünk egy komplett megoldáson, amely nem csak azt mutatja meg, hogyan *kinyerj szöveget a képből*, hanem azt is, hogyan **definiálj érdeklődési területet**, **tölts be képet OCR‑hez**, és hogyan húzd ki a számláról a pontos sort, amire szükséged van. + +Mindent lefedünk az Aspose OCR könyvtár telepítésétől a forgatott oldalak kezeléséig. A végére egy futtatható szkriptet kapsz, amely egyetlen hívással kinyeri a kívánt szöveget – manuális vágás nélkül. + +## Mit fogsz megtanulni + +- Hogyan **tölts be képet OCR‑hez** az Aspose Python API‑jával. +- A legjobb módja a **érdeklődési terület (ROI) definiálásának**, hogy csak a kép lényeges részét dolgozd fel. +- Hogyan **szöveget nyerj ki számla mezőkből** anélkül, hogy az egész oldalt beolvasnád. +- Tippek a **kép OCR‑rel történő feldolgozásához** hatékonyan, és a gyakori buktatók elkerüléséhez. + +**Előfeltételek** – friss Python 3.9+ környezet, érvényes Aspose OCR licencfájl, és egy kép (pl. egy számla PNG). Egyéb külső eszköz nem szükséges. + +--- + +## 1. lépés – OCR motor inicializálása (Alapbeállítás) + +Mielőtt **kép OCR‑rel történő feldolgozását** meg tudnád kezdeni, szükséged van egy motor példányra, amely tartalmazza a licencet. Ez a lépés kritikus, mert egy nem licencelt motor csak korlátozott eredményeket ad vissza. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Miért fontos*: Az `OcrEngine` objektum a könyvtár szíve; kezeli a nyelvi modelleket, a kép előfeldolgozást és a licencelést. A licenc előzetes beállítása biztosítja a teljes pontosságot és a vízjelek hiányát. + +--- + +## 2. lépés – Kép betöltése OCR‑hez + +Miután a motor készen áll, **kép betöltésére OCR‑hez** van szükség. Az Aspose számos formátumot támogat (PNG, JPEG, TIFF), de az `Image.from_file` használata garantálja, hogy a kép helyesen legyen dekódolva. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tipp**: Tartsd a képfájlokat 5 MB alatt a leggyorsabb feldolgozás érdekében. Nagyobb fájlok esetén lecsökkentheted őket a `image.resize(width, height)` segítségével OCR előtt. + +--- + +## 3. lépés – Érdeklődési terület (ROI) definiálása + +A legtöbb számlán sok irreleváns szöveg található – címblokk, lábléc stb. A **érdeklődési terület definiálásával** azt mondjuk a motornak, hogy csak ott nézzen, ahol az összeg vagy a dátum van, ami növeli a sebességet és a pontosságot. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Hogyan működik*: A `Rectangle` osztály virtuálisan vágja a képet; az OCR motor soha nem látja a téglalapon kívüli pixeleket, így a ROI‑n kívüli zaj figyelmen kívül marad. + +--- + +## 4. lépés – Szöveg felismerése a ROI‑ban + +A motor, a kép és a ROI készen áll, most végre **szöveget nyerünk ki a képből**. A `recognize` metódus egy `OcrResult` objektumot ad vissza, amely a felismert karakterláncot és a biztonsági pontszámokat tartalmazza. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Várható kimenet** (példa egy tipikus számla összeg sorára): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Ha a ROI helyesen van elhelyezve, csak a szükséges sort látod – semmi mást. + +--- + +## 5. lépés – Teljes működő példa (másolás‑beillesztés kész) + +Az alábbiakban a teljes szkript látható, amely az összes előző lépést összekapcsolja. Mentsd `extract_invoice_roi.py` néven, és futtasd `python extract_invoice_roi.py` paranccsal. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Futtasd a szkriptet, és a célzott sor megjelenik a konzolon. Ha üres stringet kapsz, ellenőrizd a ROI koordinátákat – néhány pixel eltolódás is kizárhatja a szöveget. + +--- + +## 6. lépés – Gyakori variációk és szélsőséges esetek + +### a) Különböző számla elrendezések +Különböző beszállítóktól származó számlák gyakran más helyen helyezik el az összeg mezőt. A **kép OCR‑vel történő feldolgozásához** több elrendezés esetén fontold meg: + +- **Több ROI**: Futtasd a motort sorban több téglalappal, és válaszd ki a legmagasabb biztonsági pontszámú eredményt. +- **Dinamikus ROI detektálás**: Használj könnyű súlyú kép‑feldolgozó könyvtárat (pl. OpenCV) a “Total” címke először történő megtalálásához, majd számítsd ki a ROI‑t relatívan hozzá. + +### b) Forgatott vagy ferde képek +Ha a szken fel van döntve, hívd meg a `image.rotate(angle)` metódust a felismerés előtt: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Az Aspose OCR automatikus kiegyenesítést is kínál, de a kézi forgatás szigorúbb kontrollt biztosít. + +### c) Nem latin karakterek +Az alapértelmezett nyelvi modell angol. Ahhoz, hogy **szöveget nyerj ki számláról**, amely más nyelven íródott, állítsd be a nyelvet a felismerés előtt: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Nagy PDF‑ek +Többoldalas PDF‑ek esetén először minden oldalt képként exportáld (Aspose PDF → Image), majd alkalmazd ugyanazt az ROI logikát oldalanként. + +--- + +## 7. lépés – Teljesítmény tippek és pro tippek + +- **Motor cache‑elése**: Az `OcrEngine` ismételt létrehozása egy ciklusban lelassít. Hozd létre egyszer, és használd újra. +- **Kötegelt feldolgozás**: Ha tucatnyi számlád van, csomagold az OCR hívást egy `ThreadPoolExecutor`‑be, hogy párhuzamosítsd a I/O‑intenzív munkát. +- **Biztonsági ellenőrzés**: Az `ocr_result.confidence` 0 és 1 közötti float értéket ad. Vedd el a 0.85 alatti eredményeket, és alkalmazz nagyobb ROI‑t vagy manuális felülvizsgálatot. + +> **Figyelem**: A ROI túl kicsire állítása levághat karaktereket, ami torz kimenetet eredményez. Mindig tesztelj néhány mintaszámlával, mielőtt nagymértékben skáláznád. + +--- + +## Összegzés + +Most már van egy stabil, termelés‑kész módszered a **szöveg kinyerésére képből** az Aspose OCR használatával, beleértve a **érdeklődési terület definiálását**, a **kép betöltését OCR‑hez**, és a **szöveg megbízható kinyerését számla mezőkből**. Az OCR-t szűk ROI‑ra korlátozva mind a sebességet, mind a pontosságot növeled – tökéletes ezer számla kötegelt feldolgozásához. + +Készen állsz a következő lépésre? Próbáld meg beépíteni ezt a szkriptet egy Flask API‑ba, hogy a webalkalmazásod feltölthessen egy számlát, és azonnal visszaadja a teljes összeget. Vagy kísérletezz több ROI‑val, hogy egyszerre kinyerd a dátumot, a számla számát és a szállító nevét. A lehetőségek végtelenek, és a itt lefektetett alapokkal bármilyen OCR kihívásra fel vagy készülve. + +Boldog kódolást, és legyen mindig tiszta a kinyert szöveg! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Workflow to extract text from image using Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/hungarian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..b68f1a219 --- /dev/null +++ b/ocr/hungarian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Képről szöveg kinyerése a Python aszinkron OCR-jével. Tanulja meg, hogyan + konvertáljon tif fájlt szöveggé, hogyan töltsön be képet OCR-hez, és hogyan ismerje + fel hatékonyan a képen lévő szöveget. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: hu +og_description: Szöveg kinyerése képből Python aszinkron OCR-rel. Ez az útmutató bemutatja, + hogyan konvertáljunk tif-et szöveggé, hogyan töltsünk be képet OCR-hez, és hogyan + ismerjük fel a szöveget a képen. +og_title: Szöveg kinyerése képből Python aszinkron OCR-rel – Teljes útmutató +tags: +- OCR +- Python +- AsyncIO +title: Képből szöveg kinyerése Python aszinkron OCR-rel – Teljes útmutató +url: /hu/python-java/general/extract-text-from-image-with-python-async-ocr-complete-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 Python aszinkron OCR-rel – Teljes útmutató + +Gyorsan szeretnél **szöveget kinyerni a képből**? A Python aszinkron OCR-jével néhány sor kóddal megteheted. Akár egy hatalmas .tif beolvasásról, akár néhány JPEG-ről van szó, ez a bemutató megmutatja, hogyan konvertálj tif-et szöveggé, **tölts be képet OCR-hez**, és végül ismerd fel a szöveget a képen anélkül, hogy blokkolnád az eseményciklust. + +A helyzet így van—a legtöbb fejlesztő szinkron könyvtárat használ, majd egy befagyott felhasználói felületet néz, miközben a motor a pixeleket dolgozza fel. Ebben az útmutatóban megfordítjuk ezt a megközelítést az Aspose OCR Cloud aszinkron API-jának használatával, így az alkalmazásod reagálók marad. A végére egy futtatható szkriptet kapsz, amely bármely támogatott képformátumból kinyeri a szöveget, és megérted az egyes lépések mögötti okokat. + +## Mit fogsz megtanulni + +- Hogyan állítsd be az Aspose OCR Cloud SDK-t Pythonhoz. +- A pontos kód, amelyre szükség van a **tölts be képet OCR-hez** és egy aszinkron felismerési feladat elindításához. +- Tippek nagy .tif fájlok és licencelési sajátosságok kezelésére. +- Módszerek a **kép szövegének kinyerésére** biztonságosan, még akkor is, ha a szolgáltatás hibákat ad vissza. +- Egy teljes, másolás‑beillesztés‑kész példa, amelyet beilleszthetsz a saját projektedbe. + +> **Előfeltétel**: Python 3.8+ és egy Aspose OCR Cloud licencfájl (`Aspose.OCR.Java.lic`). Más harmadik‑féltől származó csomagra nincs szükség. + +--- + +![kép szövegének kinyerése munkafolyamat](workflow.png){: .align-center alt="kép szövegének kinyerése munkafolyamat"} + +## Kép szövegének kinyerése – Aszinkron OCR áttekintés + +Mielőtt a kódba merülnénk, bontsuk le a folyamatot. Amikor meghívod a `recognize_async`-t, az SDK elküldi a képet az Aspose felhőjébe, elindít egy háttérfeladatot, és egy `Task` objektumot ad vissza. Ennek a feladatnak a várakozása egy `OcrResult`-ot eredményez, amely a kép egyszerű szöveges ábrázolását tartalmazza. Mivel a hívás aszinkron, több feladatot is indíthatsz párhuzamosan—tökéletes a nagy mennyiségű beolvasott dokumentum kötegelt feldolgozásához. + +### Miért használjunk aszinkron megoldást? + +- **Nem‑blokkoló I/O** – Az eseményciklusod szabad marad más feladatok kezelése érdekében (pl. HTTP kérések kiszolgálása). +- **Skálázhatóság** – Egy időben tucatnyi felismerést indíthatsz; a felhő végzi a nehéz munkát. +- **Reagálóképesség** – UI alkalmazások nem fognak befagyni, amíg az OCR motorra vársz. + +Most, hogy a „miért” világos, nézzük meg a **hogyan**. + +## TIF konvertálása szöveggé az Aspose OCR használatával + +Egy gyakori akadály az, hogy azt feltételezzük, minden OCR könyvtár natívan támogatja a .tif-et. Az Aspose igen, de még mindig egy `Image` objektumot kell neki adni. Az SDK elrejti a formátumot, így egyszerűen a fájl útvonalára mutathatsz. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**A kulcsfontosságú sorok magyarázata** + +- `ocr_engine.license = ...` – Érvényes licenc nélkül a felhő 403-as hibát ad vissza. Győződj meg róla, hogy a `.lic` fájl elérhető a szkript munkakönyvtárából. +- `ocr.Image.from_file(image_path)` – Ez a lépés **tölti be a képet OCR-hez**; az SDK automatikusan felismeri a formátumot, így nem kell előre konvertálni a .tif-et. +- `recognize_async` – Visszaad egy coroutine‑kompatibilis feladatot. Ha kötegelt feldolgozást végzel, több ilyenet is indíthatsz egy `gather` hívásban. + +> **Pro tipp**: Ha gigabájt méretű TIFF-eket dolgozol fel, fontold meg először oldalakra bontásukat. Az Aspose `Image.from_file` képes oldalként indexet fogadni, ami csökkenti a memória terhelést. + +## Szöveg felismerése a képen aszinkron módon + +Nézzük meg, hogyan hívnád meg a függvényt egy tipikus szkriptből. Az `asyncio.run` belépési pont a legegyszerűbb módja a coroutine indításának, ha még nem vagy egy eseménycikluson belül (pl. egy egyszerű CLI eszköz). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Mire számíthatsz** + +A szkript futtatása egy tiszta, nagy felbontású beolvasáson általában több soros karakterláncot ad, amely megegyezik a nyomtatott oldallal. Ha a kép zajos, az Aspose még mindig megpróbálja tisztítani, de előfordulhatnak torz karakterek. Ebben az esetben fontold meg az előfeldolgozást OpenCV-vel (pl. küszöbölés), mielőtt a fájlt az OCR motorba adod. + +### Hibák kezelése elegánsan + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +`OcrException` elkapása biztosítja, hogy a programod ne omljon össze, ha a felhő hibát ad vissza—ez gyakran akadályozza a kezdőket, akik elfelejtik a hálózati zavarokat. + +## Kép betöltése OCR-hez – Gyakorlati tippek + +1. **Fájl útvonal vs. bájtok** – Az SDK elfogad egy fájl útvonalat, de betölthetsz egy `bytes` objektumból is, ha a kép a memóriában van (`ocr.Image.from_bytes`). Ez akkor hasznos, ha már letöltötted a fájlt S3‑ról vagy egy adatbázisból. +2. **Támogatott formátumok** – A .tif mellett az Aspose kezeli a PDF-et, BMP-t, GIF-et, és még a többoldalas TIFF-eket is. Használd a `Image.from_file("doc.pdf")`-t a PDF-ek közvetlen OCR-hez. +3. **Teljesítmény** – Kötegelt feladatoknál használd újra ugyanazt az `OcrEngine` példányt; minden fájlhoz új motor létrehozása felesleges terhet jelent. + +## Teljes működő példa (Minden lépés egy szkriptben) + +Az alábbiakban a teljes, azonnal futtatható szkript található, amely tartalmazza a licencelést, a hibakezelést és egy egyszerű parancssori argumentum‑feldolgozót. Másold be, állítsd be a licenc útvonalát, és már használhatod is. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Várható kimenet** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Ha a kép egyszerű bekezdést tartalmaz, a konzol ugyanazokat a sorokat jeleníti meg, megtartva a sortöréseket. Többoldalas TIFF-ek esetén az SDK a lapokat sorrendben fűzi össze. + +## Gyakran Ismételt Kérdések (GYIK) + +**Q: Működik ez más aszinkron keretrendszerekkel, például a FastAPI-val?** +A: Teljesen. Cseréld le az `asyncio.run` hívást `await async_ocr(path)`-ra a végpontodban, és a FastAPI kezeli helyetted az eseményciklust. + +**Q: Mi van, ha egyszerre több száz fájlt kell feldolgozni?** +A: Használd az `asyncio.gather`-t: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Kinyerhetők a szövegek jelszóval védett PDF-ből?** +A: Nem közvetlenül. Először fel kell oldani a PDF jelszavát (pl. a `pikepdf`‑vel), majd a dekódolt bájtokat átadni a `ocr.Image.from_bytes`-nek. + +**Q: Hogyan kezeljek más nyelveket, mint az angol?** +A: Állítsd be a nyelvet a felismerés előtt: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Az Aspose több mint 60 nyelvet támogat; nézd meg a dokumentációt a pontos azonosítókért. + +## Összegzés + +Most már egy robusztus, **kép szövegének kinyerése** megoldással rendelkezel, amely a Python `asyncio`‑ját és az Aspose OCR Cloud aszinkron API-ját használja. A fenti lépések követésével **tif-et szöveggé konvertálhatsz**, **betölthetsz képet OCR-hez**, és **szöveget ismerhetsz fel a képen** nem‑blokkoló módon—tökéletes mind parancssori segédprogramokhoz, mind nagy forgalmú webszolgáltatásokhoz. + +Mi a következő? Próbálj meg egy mappát kötegelt beolvasásokkal feldolgozni, kísérletezz a nyelvi beállításokkal, vagy irányítsd az OCR kimenetet egy downstream NLP csővezetékbe. Az ég + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/hungarian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..9c05302c0 --- /dev/null +++ b/ocr/hungarian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Gyorsan nyerjen ki szöveget az Aspose OCR használatával. Tanulja meg, + hogyan javíthatja az OCR pontosságát, hogyan tölthet be képet OCR-hez, hogyan előfeldolgozhatja + a képet OCR-hez, és hogyan futtathat OCR vizsgálatot Pythonban. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: hu +og_description: Gyorsan nyerjen ki szöveget OCR-rel az Aspose OCR segítségével. Tanulja + meg, hogyan javíthatja az OCR pontosságát, hogyan tölthet be képet OCR-hez, hogyan + előfeldolgozhatja a képet OCR-hez, és hogyan futtathat OCR‑szkennelést Pythonban. +og_title: Szöveg kinyerése OCR-rel – Teljes útmutató az Aspose OCR használatával +tags: +- OCR +- Python +- Aspose +title: Szöveg kinyerése OCR – Teljes útmutató az Aspose OCR-rel +url: /hu/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Teljes útmutató az Aspose OCR-rel + +Valaha is szükséged volt **extract text ocr**-ra egy remegő beolvasásból, de nem értetted, miért néznek úgy a eredmények, mint értelmetlen szöveg? Nem vagy egyedül – sok fejlesztő szembesül ezzel, amikor a kép ferde, zajos vagy egyszerűen alacsony kontrasztú. A jó hír, hogy néhány konfigurációs finomhangolás átalakíthatja a rendezetlen képet tiszta, kereshető szöveggé. Ebben az útmutatóban egy teljes, vég‑től‑végig példán keresztül bemutatjuk, hogyan **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, és végül **run OCR scan** az Aspose OCR for Python segítségével. + +A útmutató végére egy futtatható szkriptet kapsz, amely beolvassa a beolvasott JPEG-et, automatikusan megtisztítja, és kiírja a kinyert szöveget a konzolra. Nincs titokzatos „lásd a dokumentációt” link – minden, amire szükséged van, itt van. + +## Amire szükséged lesz + +- **Python 3.8+** (a legújabb stabil kiadás működik a legjobban) +- **Aspose.OCR for Python via .NET** – telepítés: `pip install aspose-ocr` +- A **license file** (`Aspose.OCR.Java.lic`), ha megvásároltad (az ingyenes próba a teszteléshez megfelelő) +- Egy kép, amelyet feldolgozni szeretnél (pl. `skewed_scanned_doc.jpg`) + +Ennyi. Ha megvan ez a néhány dolog, egyenesen a kódba ugorhatunk. + +## 1. lépés: Extract Text OCR with Aspose OCR Engine + +Az első dolog, amit megteszel, elindítod az OCR motort és alkalmazod a licencet. Gondolj a motorra úgy, mint az agyra, amely a képet olvassa; licenc nélkül csak egy kis demókorláton belül működik. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** A licenc előzetes alkalmazása elkerüli a későbbi csendes hibát. Ha kihagyod ezt a lépést, a motor korlátozott módba lép, és csak néhány karaktert kapsz vissza – ami egyértelműen nem az, amit a **extract text ocr** próbálásakor vársz. + +## 2. lépés: Improve OCR Accuracy with Pre‑processing + +A ferde vagy szemcsés beolvasások minden OCR projekt átokja. Az Aspose lehetővé teszi, hogy néhány praktikus beállítást kapcsolj be, amelyek automatikusan kiegyenesítik, zajt szűrik és növelik a kontrasztot. Ez a **improve ocr accuracy** központja. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – a képet visszaforgatja vízszintesre, ami kulcsfontosságú, ha az eredeti dokumentum nem volt tökéletesen sík. +- **remove_noise** – eltávolítja a véletlenszerű foltokat, amelyek gyakran megjelennek alacsony felbontású JPEG‑ekben. +- **enhance_contrast** – sötét szöveget sötétebbé, a világos hátteret világosabbá teszi, segítve a motort a karakterek megkülönböztetésében. +- **binarization = "Otsu"** – egy klasszikus algoritmus, amely meghatározza a legjobb küszöböt a fekete‑fehér átalakításhoz. + +> **Pro tip:** Ha tudod, hogy a forrásképek már tiszták, kikapcsolhatod ezeket a beállításokat a feldolgozás felgyorsítása érdekében. De a legtöbb valós beolvasásnál a bekapcsolva tartás a legbiztonságosabb. + +## 3. lépés: Load Image OCR for Scanning + +Most, hogy a motor készen áll, szükségünk van a **load image ocr**-ra. Az Aspose `Image.from_file` metódusa támogatja a JPEG, PNG, TIFF és néhány további formátumot. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Cseréld le a `YOUR_DIRECTORY`-t a géped tényleges útvonalára. Ha egy memóriában lévő bájtfolyammal dolgozol (pl. webes feltöltésből), használhatod a `ocr.Image.from_bytes(byte_data)`-t – ugyanaz a motor kezeli. + +> **Edge case:** A nagy TIFF fájlok sok memóriát igényelnek. Ha `MemoryError`-t kapsz, fontold meg a kép először lecsökkentését, vagy használd a `ocr_engine.config.max_image_size`-t a méretek korlátozásához. + +## 4. lépés: Run OCR Scan and Get Results + +A kép betöltése és a előfeldolgozás engedélyezése után az utolsó lépés a **run OCR scan**. Ez a hívás végzi el a nehéz munkát a háttérben. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Az `ocr_result` objektum több hasznos tulajdonságot tartalmaz: + +- `ocr_result.text` – a tiszta szöveg, amelyre szükséged van. +- `ocr_result.confidence` – egy numerikus pontszám (0‑100), amely az általános megbízhatóságot jelzi. +- `ocr_result.words` – egy lista a szóobjektumokról, amely tartalmazza a keret koordinátákat, hasznos kiemeléshez. + +## 5. lépés: Print the Extracted Text + +Végül kiírjuk az eredményt. Egy valódi alkalmazásban a szöveget fájlba, adatbázisba vagy keresőindexbe is írhatod. Ehhez a tutorialhoz egy egyszerű `print` elegendő. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output** (example for a simple invoice): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Ha a confidence alacsony (< 80), érdemes újra átnézni az előfeldolgozási beállításokat, vagy kipróbálni egy másik binarizációs módszert, például a `"Sauvola"`-t. + +## Bónusz: A Pre‑processing pipeline vizualizálása (opcionális) + +Néha hasznos látni, mit csinált a motor a képpel. Az Aspose lehetővé teszi a feldolgozott bitmap exportálását: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +You could then embed the image in documentation: + +extract text ocr workflow diagram showing preprocessing steps + +> **Why you’d do this:** Ha az OCR eredmény hibásnak tűnik, egy gyors pillantás a `processed_debug.png`-re gyakran felfedi, hogy a kép még túl sötét, még ferde, vagy maradt benne zaj. + +## Gyakori kérdések és buktatók + +- **What if my document is multi‑page?** + Aspose OCR page‑by‑page működik. Loop over each page image and concatenate `ocr_result.text`. + +- **Can I recognize languages other than English?** + Igen—állítsd be a `ocr_engine.config.language = "fra"` (vagy bármely ISO‑639‑2 kód) a `recognize` hívása előtt. + +- **Is there a limit on image size?** + A motor alapértelmezés szerint 10 MP-re korlátozza. Növeld a `ocr_engine.config.max_image_size`-t, ha nagyobb beolvasásra van szükség, de figyelj a memóriahasználatra. + +- **Do I need a separate OCR engine for PDFs?** + PDF‑ekhez vagy kinyerheted minden oldalt képként (az Aspose.PDF használatával), vagy használhatod a beépített PDF OCR funkciót. A bemutatott lépések ugyanazok maradnak, miután van egy képed. + +## Összefoglalás + +Áttekintettük, hogyan **extract text ocr** használható az Aspose OCR for Python segítségével, a motor licencelésétől a beállítások finomhangolásáig, amelyek **improve ocr accuracy**, a forrásfájl betöltéséig, és végül **run OCR scan** a tiszta szöveg kinyeréséhez. A teljes szkript készen áll a másolás‑beillesztésre, és most már érted, miért fontos minden konfigurációs jelző. + +## Mi a következő? + +- **Experiment with different binarization methods** (`"Sauvola"`, `"Bradley"`). Egyes betűtípusok jobban reagálnak az adaptív küszöbökre. +- **Integrate with a search engine** (pl. Elasticsearch) a confidence pontszám használatával az eredmények rangsorolásához. +- **Combine with OCR post‑processing** könyvtárakkal, mint a `pyspellchecker`, a gyakori hibák tisztításához. +- **Explore batch processing** több száz beolvasáshoz – csomagold a lépéseket egy függvénybe, és add meg egy képmappát. + +Nyugodtan módosítsd a kódot, adj hozzá saját naplózást, vagy illeszd egy nagyobb dokumentumkezelő pipeline-ba. Ha bármilyen problémába ütközöl, hagyj megjegyzést alább – jó kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/hungarian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..e9446aeaa --- /dev/null +++ b/ocr/hungarian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Hogyan használjuk az Aspose OCR Java-t PDF OCR-hez. Tanulja meg, hogyan + futtasson OCR-t PDF-en, hogyan ismerje fel a szöveget PDF-ben, hogyan konvertálja + a PDF-et JSON formátumba, és hogyan töltse be a PDF-et OCR-hez néhány kódsorral. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: hu +og_description: Hogyan OCR-elj PDF-et az Aspose OCR Java-val. Ez az útmutató bemutatja, + hogyan futtassunk OCR-t PDF-en, hogyan ismerjük fel a szöveget PDF-ben, hogyan konvertáljuk + a PDF-et JSON formátumba, és hogyan töltsünk be PDF-et OCR-hez gyorsan. +og_title: Hogyan OCR-eljünk PDF-et az Aspose OCR-rel – Teljes programozási útmutató +tags: +- Aspose OCR +- Java +- PDF processing +title: Hogyan OCR-eljünk PDF-et az Aspose OCR-rel – Teljes lépésről lépésre útmutató +url: /hu/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan OCR-elj PDF-et az Aspose OCR-rel – Teljes lépésről‑lépésre útmutató + +Gondolkodtál már azon, **hogyan OCR-elj PDF** fájlokat anélkül, hogy parancssori eszközökkel küzdenél vagy drága SaaS‑ra fizetnél? Nem vagy egyedül. Sok projektben – számlák automatizálása, beolvasott szerződések archiválása vagy kereshető tudásbázis építése – gyorsan és megbízhatóan kell szöveget kinyerni a PDF‑ekből. + +A jó hír? Az Aspose OCR for Java‑val **run OCR on PDF**, felismerheted a szöveget a PDF‑oldalakon, **convert PDF to JSON**, sőt **load PDF for OCR** néhány sor kóddal is megteheted. Ebben a tutorialban végigvezetünk a teljes munkafolyamaton, elmagyarázzuk, miért fontos minden lépés, és adunk egy azonnal futtatható kódmintát, amit beilleszthetsz a saját projektedbe. + +## Mit fogsz megtanulni + +- Hogyan állítsd be az Aspose OCR motort és alkalmazd a licencet. +- A pontos módja annak, hogy **load PDF for OCR** és átadd a felismerőnek. +- Hogyan **recognize text PDF** minden oldalon egy hívással. +- A teljes OCR eredmény exportálása **JSON** fájlba (tökéletes a downstream API‑khoz) és egyetlen oldal **XML**‑be. +- Tippek, buktatók és variációk, amikre szükséged lehet többoldalas PDF‑ek vagy egyedi nyelvi csomagok esetén. + +> **Prerequisites** – Szükséged van Java 8 vagy újabbra, egy érvényes Aspose OCR for Java licencfájlra (`Aspose.OCR.Java.lic`), és az Aspose OCR JAR‑ra a classpath‑odban. Más külső könyvtárra nincs szükség. + +--- + +## Hogyan OCR-elj PDF-et – Aspose OCR motor inicializálása + +Az első dolog, amit meg kell tenned, egy `OcrEngine` példány létrehozása és a licenc csatolása. Ez a lépés feloldja a teljes funkciókészletet és eltávolítja a kiértékelési vízjelet. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Miért fontos ez:** +Licenc nélkül az Aspose OCR korlátozott „próba” módban fut, amely korlátozza az oldalak számát és vízjelet ad a kimenethez. A licenc előzetes alkalmazása biztosítja, hogy a pipeline maradék része váratlan korlátozások nélkül működjön. + +--- + +## OCR futtatása PDF-en – Dokumentum betöltése és szöveg felismerése + +Most **load PDF for OCR**. Az Aspose OCR a PDF‑eket egy speciális `PdfDocument` típusként kezeli, amely belsőleg minden oldalt képként kinyer, mielőtt a felismerőnek átadná. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Mi történik a háttérben?** +A `recognizeDocument` végigiterál minden oldalon, a legoptimálisabb DPI‑n rasterizálja, majd futtatja az OCR motort. Az eredmény egy `OcrPage` tömb, ahol minden elem tartalmazza a felismert szöveget, a biztonsági pontszámokat és a layout információkat. Ez a megközelítés sokkal megbízhatóbb, mint a nyers PDF‑bájtok átadása egy általános OCR könyvtárnak. + +--- + +## OCR eredmény konvertálása JSON-re – Teljes jelentés exportálása + +A legtöbb downstream rendszer a JSON‑t részesíti előnyben, mert könnyű deszerializálni Java‑ban, JavaScript‑ben, Python‑ban vagy akár PowerShell‑ben. Az Aspose OCR egy `JsonExport` segédeszközzel érkezik, amely sorosítja az egész `OcrPage[]` tömböt. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Mikor használod ezt?** +Ha az OCR kimenetet kereső indexbe (Elasticsearch, Solr) vagy egy adatcsővezetékbe szeretnéd betáplálni, a JSON formátum strukturált ábrázolást ad minden oldalról, sorról és szóról, a biztonsági értékekkel együtt. + +--- + +## Első oldal exportálása XML-re – Egyedi oldal mentése + +Néha csak egyetlen oldal érdekel – például az első oldal tartalmazhat címet vagy számlaszámot. Az `XmlExport` osztály lehetővé teszi egy `OcrPage` tiszta XML fájlba való kiírását. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Miért XML?** +Legacy rendszerek vagy bizonyos vállalati munkafolyamatok még mindig XML sémákat használnak a befogadáshoz. A generált fájl az Aspose saját sémáját követi, így az érvényesítés egyszerű. + +--- + +## Az eredmény ellenőrzése – JSON és XML fájlok ellenőrzése + +A program befejezése után a `YOUR_DIRECTORY` könyvtárban két fájlt kell látnod: + +- `report_ocr.json` – Egy oldalonkénti objektumok tömbjét tartalmazza. Egy gyors snippet így nézhet ki: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Ugyanezt az információt tartalmazza az 1. oldalra, `` tagek között. + +Nyisd meg őket bármelyik szerkesztőben; láthatod a nyers OCR szövegeket, a biztonsági pontszámokat és a bounding‑box koordinátákat. Ha a JSON üresnek tűnik, ellenőrizd, hogy a bemeneti PDF valóban rasterizált tartalmat (beolvasott képeket) tartalmaz-e, és nem választható szöveget – az Aspose OCR csak képeken működik. + +--- + +## Gyakori hibák és profi tippek + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **Üres JSON** | A PDF natív szöveget tartalmaz, nem képeket. | Használd a `PdfDocument.fromFile(..., true)`‑t a rasterizáció kényszerítéséhez, vagy előzetesen konvertáld az oldalakat képekké. | +| **Alacsony biztonság** | A forrás PDF alacsony felbontású vagy erősen tömörített. | Növeld a DPI‑t a `ocrEngine.getImageProcessingOptions().setDpi(300)` hívással a `recognizeDocument` előtt. | +| **Licenc nem található** | Rossz útvonal vagy hiányzó fájl. | Használj abszolút útvonalat, vagy helyezd a `.lic` fájlt a classpath‑ra, és hívd a `lic.setLicense("Aspose.OCR.Java.lic")`‑t. | +| **Memóriahiány hatalmas PDF‑eken** | Az összes oldal egyszerre kerül memóriába. | Oldalak feldolgozása kötegekben: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Példa kibővítése + +- **OCR futtatása PDF-en egy adott nyelven** – állítsd be `ocrEngine.getLanguage().setLanguage(Language.English)`‑t vagy tölts be egy egyedi nyelvi csomagot. +- **Minden oldal exportálása külön JSON fájlba** – iterálj az `ocrPages`-en, és hívd a `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`‑t. +- **Integráció keresőmotorral** – tápláld a JSON‑t az Elasticsearch `attachment` processzorába a teljes szöveges kereséshez. + +--- + +## Következtetés + +Most már egy komplett, production‑kész megoldásod van arra, **hogyan OCR-elj PDF-et** az Aspose OCR for Java segítségével. Az motor inicializálásával, a PDF betöltésével, az OCR futtatásával és mind **JSON**, mind **XML** exportálásával bármilyen backend munkafolyamatba beépítheted az OCR‑t – legyen szó **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, vagy egyszerűen csak **load PDF for OCR**. + +Próbáld ki, állítsd be a DPI‑t vagy a nyelvi beállításokat, és nézd meg, hogyan válnak kereshetővé a korábban átlátszó PDF‑eid. Szeretnél tovább menni? Indexeld a JSON‑t Elasticsearch‑be, vagy dolgozd fel az XML‑t XSLT‑vel egyedi jelentések generálásához. + +Boldog kódolást, és legyenek mindig olvashatóak a PDF‑eid! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/hungarian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..df48f7012 --- /dev/null +++ b/ocr/hungarian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'hogyan futtassuk gyorsan az OCR-t: tanulja meg, hogyan vonjon ki szöveget + képből, és hogyan ismerjen fel szöveget űrlapról az Aspose OCR Java segítségével. + Egyszerű lépések a kép OCR-hez való olvasásához.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: hu +og_description: 'hogyan futtassuk gyorsan az OCR-t: tanulja meg a szöveg kinyerését + képből és a szöveg felismerését űrlapról az Aspose OCR Java használatával. Egyszerű + lépések a kép OCR-hez történő olvasásához.' +og_title: hogyan futtassunk OCR-t egy űrlapon – szöveg kinyerése képből +tags: +- ocr +- java +- image-processing +title: Hogyan futtassunk OCR-t egy űrlapon – szöveg kinyerése a képből +url: /hu/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# hogyan futtassunk ocr-t egy űrlapon – szöveg kinyerése képből + +Gondoltad már, **hogyan futtassunk ocr-t** egy beolvasott dokumentumon anélkül, hogy órákat töltenél el ismeretlen könyvtárakkal kísérletezve? Nem vagy egyedül. Sok projektben – legyen szó számlák digitalizálásáról, szerződések archiválásáról vagy kézzel írott űrlapok adatainak kinyeréséről – a **szöveg kinyerése képből** fájlokból mindennapi problémát jelent. + +Itt a lényeg: Az Aspose OCR for Java szinte fájdalommentesé teszi az egész folyamatot. Ebben az útmutatóban végigvezetünk minden kódsoron, amelyre szükséged van **recognize text from form** fájlok esetén, elmagyarázzuk, miért fontos minden lépés, és megmutatjuk, hogyan **read image for ocr** eredményekhez bizalmi pontszámokkal. A végére egy kész‑használatra kész Java osztályod lesz, amelyet bármely Maven vagy Gradle projektbe beilleszthetsz. + +## Mit fogsz megtanulni + +- Állítsd be az Aspose OCR motorját és alkalmazd a licencet. +- Tölts be egy JPEG, PNG vagy TIFF fájlt a memóriába. +- Futtasd az OCR-t és iterálj végig a felismert szöveg minden során. +- Azonosítsd a alacsony bizalmi pontszámú sorokat manuális felülvizsgálathoz. +- Bővítsd a példát többoldalas PDF-ekre vagy különböző képformátumokra. + +Nem szükséges előzetes tapasztalat az Aspose-szal, csak egy alap Java fejlesztői környezet (JDK 11+ és bármely kedvelt IDE). Kezdjünk bele. + +![how to run ocr example](/images/ocr-demo.png){alt="hogyan futtassunk ocr-t egy beolvasott űrlap példája"} + +## 1. lépés: Az OCR motor inicializálása – **how to run ocr** + +Az első dolog, amit bármely OCR művelet előtt meg kell tenned, egy `OcrEngine` példány létrehozása és egy érvényes licenc csatolása. Licenc nélkül a könyvtár demo módban fut, ami korlátozza a feldolgozható oldalak számát. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Miért fontos ez:** +Az `OcrEngine` minden konfigurációt tartalmaz – nyelv, detektálási mód és teljesítmény finomhangolás. A licenc előzetes beállításával elkerülöd a csendes visszaesést a próbaverzióra, ami egyébként lerövidítené a kimenetet. + +## 2. lépés: A kép betöltése – **extract text from image** + +Ezután szükségünk van egy `Image` objektumra, amely a beolvasni kívánt fájlra mutat. Az Aspose számos formátumot támogat, így betáplálhatsz egy beolvasott PDF oldalt, amelyet már PNG-re konvertáltál, egy nyers JPEG-et vagy akár egy többoldalas TIFF-et. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Miért fontos ez:** +A kép `Image` objektumként történő betöltése hozzáférést biztosít a motor számára a pixel adatokhoz, DPI információkhoz és színmélységhez – mindez befolyásolja az OCR pontosságát. Ha kihagyod ezt a lépést és egy nyers byte tömböt adsz át, elveszíted ezeket a hasznos információkat. + +## 3. lépés: OCR futtatása – **recognize text from form** + +Most jön a szórakoztató rész: a karakterek tényleges felismerése. A `recognize` metódus egy `RecognitionResult` objektumot ad vissza, amely `Line` objektumok gyűjteményét tartalmazza, mindegyik saját bizalmi pontszámmal. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Miért fontos ez:** +`recognize` meghívása egy belső folyamatok láncolatát indítja el – előfeldolgozás (kiegyenesítés, zajeltávolítás), szegmentálás, karakter osztályozás és utófeldolgozás (helyesírás-ellenőrzés, nyelvi modell). Az eredményobjektum elrejti ezt a komplexitást. + +## 4. lépés: Az eredmények feldolgozása – **read image for ocr** output + +Miután megvan a `RecognitionResult`, iterálhatsz minden soron, automatikusan eldöntheted, mit tarts meg, és megjelölheted azokat, amelyek bizonytalanok. A 85 %-os bizalmi küszöb a legtöbb nyomtatott űrlap esetén jó kiindulási pont. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Várt kimenet (példa):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +A fenti példában a motor bizonytalan volt a teljes összeg utolsó számjegyével kapcsolatban, ezért figyelmeztetést írtunk ki. Ezeket a sorokat átirányíthatod egy felhasználói felületre manuális javításhoz, vagy naplózhatod későbbi felülvizsgálatra. + +### Szélsőséges esetek és tippek + +- **Több oldal:** Ha többoldalas PDF-ed van, ciklusban iterálj minden oldal indexén, és hívd meg a `Image.fromPdf(pdfPath, pageIndex)` metódust. +- **Különböző nyelvek:** Állítsd be `engine.getLanguage().setLanguage(Language.Spanish);`‑t a `recognize` hívása előtt. +- **Képminőség:** Az alacsony felbontású beolvasások (< 150 DPI) gyakran 80 % alatti bizalmi pontszámot eredményeznek. A `image.resize(300, 300)` felméretezés segíthet, de a legjobb megoldás egy jobb minőségű beolvasás. +- **Teljesítmény:** Az ugyanazt az `OcrEngine` példányt több képhez újrahasználni csökkenti a terhelést, szemben azzal, hogy minden alkalommal újat hozol létre. + +## Gyakran Ismételt Kérdések + +**Futtatható ez fej nélküli szerveren?** +Abszolút. A könyvtár nem tartalmaz GUI függőségeket, így Docker konténerekben vagy CI pipeline‑okban is jól működik. + +**Mi van, ha még nincs licencem?** +Még mindig meghívhatod a `engine.recognize`‑t, de a demo mód az első 2 oldal után leáll, és vízjelet helyez a kimenetre. Ideális gyors tesztekhez. + +**Van mód strukturált adat (pl. táblázatok) kinyerésére?** +Az Aspose OCR egy `TableRecognizer` osztályt biztosít, de ez túlmutat a kezdő útmutató keretein. Miután elsajátítottad az alapokat, nézd meg a hivatalos dokumentációt a `TableRecognizer`‑hez. + +## Összegzés – **how to run ocr** röviden + +Már lefedtük mindazt, amire szükséged van a **how to run ocr** egy beolvasott űrlapon: a motor inicializálása, a kép betöltése, a felismerés végrehajtása, és az eredmények intelligens kezelése. Néhány Java sorral **szöveg kinyerése képből** fájlokból, **szöveg felismerése űrlapokból** dokumentumokban, és **read image for ocr** kimenethez, bizalmi pontszámokkal, amelyek lehetővé teszik, hogy eldöntsd, mikor szükséges emberi felülvizsgálat. + +Következő lépések? Próbáld ki a JPEG helyett egy többoldalas TIFF-et, kísérletezz különböző bizalmi küszöbökkel, vagy integráld a kimenetet egy adatbázisba az automatikus adatbevitelhez. A lehetőségek olyan széleskörűek, mint a feldolgozni kívánt dokumentumok. + +További kérdéseid vannak az OCR-rel, a képelőfeldolgozással vagy a licenceléssel kapcsolatban? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/hungarian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..4a3c12a33 --- /dev/null +++ b/ocr/hungarian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-05-03 +description: Hogyan használjuk az OCR-t a PDF-fájlok szövegének kinyerésére Java-ban. + Tanulja meg a PDF-ből történő szövegfelismerést, a PDF szöveggé konvertálását, és + a többoldalas OCR PDF-ek hatékony kezelését. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: hu +og_description: Hogyan használjunk OCR-t a PDF-fájlok szövegének kinyerésére Java-ban. + Ez az útmutató bemutatja, hogyan ismerhető fel a szöveg a PDF-ből, hogyan konvertálható + a PDF szöveggé, és hogyan dolgozható fel az OCR többoldalas PDF. +og_title: Hogyan használjunk OCR-t Java-ban – Szöveg kinyerése többoldalas PDF‑ekből +tags: +- ocr +- java +- pdf +- aspose +title: Hogyan használjunk OCR-t Java-ban – Szöveg kinyerése többoldalas PDF-ekből +url: /hu/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan használjunk OCR-t Java-ban – Szöveg kinyerése többoldalas PDF-ekből + +**Hogyan használjunk OCR-t** egy Java projektben? Ha valaha is szöveget kellett kinyerned PDF fájlokból anélkül, hogy a PDF belső szövegrétegére támaszkodnál, jó helyen vagy. Ez a tutorial egy teljes, futtatható megoldáson vezet végig, amely **felismeri a szöveget PDF-ből**, PDF-et szöveggé konvertál, és még egy **OCR többoldalas PDF**-et is kezel egyetlen hívással. + +Képzeld el, hogy kapsz egy beolvasott szerződést — egy 12 oldalas TIFF-et egy PDF-ben. Szeretnéd a kereshető szöveget az indexeléshez, de a fájlban nincsenek beágyazott karakterek. Semmi gond; lépésről lépésre megmutatjuk, hogyan csináld. + +> **Mit kapsz:** egy azonnal futtatható Java kódrészlet az Aspose.OCR használatával, magyarázatok arra, hogy miért fontos minden sor, tippek a gyakori buktatókhoz, és egy minta kimenet, amelyet azonnal ellenőrizhetsz. + +--- + +## Amire szükséged lesz + +* **Java 17** (vagy bármely friss JDK) – a kód régebbi verziókkal is működik, de a 17 a legoptimálisabb. +* **Aspose OCR for Java** könyvtár – letöltheted a JAR‑t az Aspose weboldaláról, vagy hozzáadhatod Maven/Gradle‑on keresztül. +* Egy **többoldalas PDF** (vagy TIFF), amelyet feldolgozni szeretnél. Példáinkban a `contract_multipage.pdf` fájlt használjuk, amely a `YOUR_DIRECTORY` mappában található. +* Egy érvényes **Aspose OCR licencfájl** (`Aspose.OCR.Java.lic`). Licenc nélkül a könyvtár értékelő módban fut, ami egy gyors teszthez megfelelő, de vízjelet ad a kimenethez. + +Ennyi – nincs extra OCR motor, nincs natív bináris, csak egy JAR és egy licenc. + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "Hogyan használjunk OCR-t Java-ban – a betöltés, felismerés és szöveg kimenet vizuális áttekintése") + +*Image alt text: hogyan használjunk OCR-t Java-ban – a betöltés, felismerés és szöveg kimenet vizuális áttekintése.* + +--- + +## 1. lépés: Az OCR motor beállítása – **Hogyan használjunk OCR-t** helyesen + +Az első dolog, amit tenned kell, hogy létrehozod az OCR motor egy példányát, és alkalmazod a licencet. Licenc nélkül a motor még működik, de a kimenetben egy próbaverzió vízjelet látsz majd. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Miért fontos ez:** +Az `OcrEngine` a központi objektum, amely az képelemzést, nyelvfelismerést és szövegkinyerést irányítja. A licenc korai beállítása megakadályozza, hogy a motor később próbaverzióra váltson, ami befolyásolhatja a pontosságot. + +--- + +## 2. lépés: Dokumentum betöltése – **Szöveg kinyerése PDF-ből** hatékonyan + +Az Aspose OCR közvetlenül olvashat PDF és TIFF konténereket is. Itt betöltünk egy többoldalas PDF-et, amely beolvasott képeket tartalmaz. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Miért fontos ez:** +A `PdfDocument.fromFile` beolvassa a konténert, és minden oldalt képként elérhetővé tesz. Ez az absztrakció lehetővé teszi, hogy az OCR motor minden oldalt egységesen kezeljen, függetlenül az eredeti formátumtól. + +**Tipp:** Ha a forrásfájl TIFF, ugyanaz a hívás működik – az Aspose automatikusan felismeri a formátumot. Nincs szükség extra kódra. + +--- + +## 3. lépés: Az összes oldal egyszerre történő felismerése – **Szöveg felismerése PDF-ből** zökkenőmentesen + +Ahelyett, hogy saját ciklust írnál az oldalakra, kérheted a motort, hogy egyetlen hívással dolgozza fel a teljes dokumentumot. Ez a leghatékonyabb módja a **PDF szöveggé konvertálásának**, amikor egy **OCR többoldalas PDF**-et kell kezelni. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Miért fontos ez:** +A `recognizeDocument` egyszeri meghívása csökkenti azt a terhelést, amelyet a motor többszöri újrainicializálása okozna. Emellett biztosítja a nyelvi beállítások konzisztenciáját az oldalak között, ami jogi dokumentumok esetén különösen fontos, mivel gyakran vegyes betűtípusokat tartalmaznak. + +--- + +## 4. lépés: A felismert szöveg kiírása – **PDF konvertálása szöveggé** indexeléshez + +Miután minden oldal feldolgozásra került, egyszerűen végigiterálunk az eredményeken és kiírjuk a kinyert karakterláncokat. Írhatsz is fájlba, adatbázisba, vagy betáplálhatod egy keresőindexbe. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Várható kimenet (rövidítve):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Ha a PDF 12 oldalt tartalmaz, tizenkét `--- Page X ---` szekciót látsz, mindegyik után az OCR‑kel kinyert szöveg következik. + +--- + +## Haladó tippek egy **OCR többoldalas PDF**-hez + +### 1. Nyelvi beállítások módosítása + +Alapértelmezés szerint az Aspose megpróbálja automatikusan felismerni a nyelvet, de felgyorsíthatod a folyamatot, ha megadod: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Képelőfeldolgozás vezérlése + +A beolvasott szerződések gyakran zajosak. Engedélyezheted a kiegyenesítést és binarizálást: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Nagy fájlok kezelése elegánsan + +Ha 100 MB-nál nagyobb PDF-eket dolgozol fel, fontold meg az oldalak streamelését a teljes dokumentum egyszerre történő betöltése helyett: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Ez a minta csökkenti a memóriaigényt, és kötegelt feladatoknál hasznos. + +### 4. Exportálás strukturált formátumokba + +A sima szöveg mellett exportálhatsz JSON‑ba vagy XML‑be a további feldolgozáshoz: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Gyakori hibák és hogyan kerüld el őket + +| Hiba | Miért fordul elő | Megoldás | +|------|------------------|----------| +| **Üres kimenet** | Licenc nincs alkalmazva vagy a fájl útvonala hibás. | Ellenőrizd a `setLicense` útvonalat és erősítsd meg, hogy a fájl létezik. | +| **Hibás karakterek** | Helytelen nyelvi beállítás vagy alacsony felbontású forrás. | Állítsd be a megfelelő `Language` értéket és biztosítsd, hogy a forrás képek ≥300 dpi legyenek. | +| **Memóriahiányos hibák** | Egy hatalmas PDF egyszerre történő betöltése. | Használd a fent bemutatott streaming megközelítést. | +| **Részleges oldalfelismerés** | A PDF kevert raszter/vektor rétegeket tartalmaz. | Először lapítsd le a PDF-et: `pdfDoc.flatten();` OCR előtt. | + +--- + +## Összefoglalás – Amit lefedtünk + +* **Hogyan használjunk OCR-t** az Aspose-szal Java-ban. +* **Szöveg kinyerése PDF-ből** (vagy TIFF) egyetlen hívással. +* **Szöveg felismerése PDF-ből** minden oldalon manuális ciklusok nélkül. +* **PDF konvertálása szöveggé** és tiszta kimenet. +* Tippek egy **OCR többoldalas PDF** kezeléséhez, beleértve a nyelvi finomhangolást és a memóriahatékony streamelést. + +Most már van egy komplett, production‑kész kódrészlet, amelyet bármely Java projektbe beilleszthetsz. Nyugodtan módosítsd a képelőfeldolgozási beállításokat, cseréld ki a kimeneti célhelyet, vagy integráld az eredményt egy keresőindexbe. + +--- + +## Következő lépések + +* **Fedezd fel az Aspose OCR fejlett funkcióit** – például kézírásfelismerés vagy PDF/A megfelelőség. +* **Kombináld az OCR‑t PDF manipulációval** (pl. egy rejtett szövegréteg visszahelyezése a PDF-be kereshető PDF-ek létrehozásához). +* **Automatizáld a kötegelt feldolgozást** úgy, hogy egy mappában lévő PDF-eket beolvasod, és minden eredményt egy megfelelő `.txt` fájlba írsz. + +Ha bármilyen akadályba ütközöl, az Aspose fórumok remek helyek a segítségkérésre, és az API referencia kimerítő részleteket nyújt minden itt használt metódusról. + +Boldog kódolást, és élvezd a makacs beolvasott dokumentumok kereshető szöveggé alakítását! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/hungarian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..ab5d8211c --- /dev/null +++ b/ocr/hungarian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Olvasd be a bináris fájlt Java-ban az Aspose OCR licenc betöltéséhez. + Ismerd meg a FileInputStream használatát, a bináris adatok kezelését, és gyakorlati + tippeket ebben a lépésről‑lépésre útmutatóban. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: hu +og_description: Olvassa el a bináris fájlt Java-ban az Aspose OCR licenc betöltéséhez. + Kövesse ezt a teljes útmutatót, hogy elsajátítsa a FileInputStream és a bináris + adatkezelés használatát Java-ban. +og_title: Bináris fájl olvasása Java-ban – Licencbájtok betöltése az Aspose OCR-hez +tags: +- Java +- File I/O +- OCR +title: Bináris fájl olvasása Java-ban – Licencbájtok betöltése az Aspose OCR-hez +url: /hu/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Bináris fájl olvasása Java-ban – Licenc bájtok betöltése az Aspose OCR-hez + +Valaha szükséged volt **read binary file Java**-ra, amikor egy harmadik fél könyvtár licencével dolgoztál? Nem vagy egyedül. A legtöbb Java fejlesztő ebbe a helyzetbe kerül, amikor egy `.lic` fájlt próbál betáplálni egy OCR motorba, és a szokásos szövegfájl trükkök egyszerűen nem működnek. + +Ebben a tutorialban egy teljes, futtatható példán keresztül vezetünk végig, amely pontosan megmutatja, hogyan nyissunk meg egy bináris licencfájlt, hogyan olvassuk be annak bájtjait a memóriába, és hogyan adjuk át ezeket a bájtokat az Aspose OCR for Java-nak. Útközben láthatod, miért a `FileInputStream` a megfelelő eszköz, hogyan kezeljünk lehetséges `IOException`‑kat, és néhány profi tippet, amelyet a hivatalos dokumentációban nem találhatsz. + +A útmutató végére képes leszel **read binary file Java** stílusban beolvasni, létrehozni egy `License` objektumot, és hozzárendelni egy `OcrEngine`‑hez anélkül, hogy izzadnál. + +## Mit fed le ez az útmutató + +- Előfeltételek: Java 17+, Maven (vagy Gradle), és az Aspose OCR for Java könyvtár. +- Lépésről‑lépésre kód, amely egy bináris `.lic` fájlt olvas be `FileInputStream` használatával. +- Minden sor magyarázata, hogy megértsd a *miért*‑et a *hogyan*‑tól. +- Szélsőséges esetek kezelése (hiányzó fájl, sérült bájtok) és gyakorlati hibakeresési tippek. +- Egy végső, önálló snippet, amelyet kimásolhatsz az IDE‑dbe és azonnal futtathatsz. + +Ha valaha is azon tűnődtél, hogy szükség van-e külön API‑ra a licencfájlok beolvasásához, a válasz egy határozott **nem** – csak a jó öreg bináris I/O. Merüljünk el benne. + +## 1. lépés: Bináris fájl olvasása Java-ban a FileInputStream használatával + +Az első dolog, amire szükségünk van, egy megbízható mód a nyers bájtok kinyerésére a lemezen lévő licencfájlból. Java-ban a `FileInputStream` pontosan erre a feladatra szolgál. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Why this works:** `Files.readAllBytes` belsőleg létrehoz egy `FileInputStream`‑et, beolvassa az egész streamet, és lezárja azt helyetted. Biztonságos, tömör, és elkerüli a klasszikus „elfelejtett stream lezárás” csapdát. Ha a klasszikus mintát részesíted előnyben, helyettesítheted egy try‑with‑resources blokkal, amely közvetlenül a `FileInputStream`‑et használja. + +### Profi tipp + +Ha a licencfájl hatalmas (valószínűtlen, de lehetséges), fontold meg a chunk‑onkénti streaminget a teljes betöltés helyett. A legtöbb OCR licencfájl – általában néhány kilobájt alatt – esetén az egyszeri betöltés tökéletesen megfelelő. + +## 2. lépés: Licenc objektum létrehozása az Aspose OCR-hez + +Most, hogy megvan a nyers bájtok, át kell alakítanunk őket egy Aspose‑kompatibilis `License` példánnyá. A könyvtár biztosít egy `License` osztályt, amely byte‑tömböt fogad el. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Why this matters:** A bájtok közvetlen átadásával elkerülöd a fájlútra vonatkozó problémákat (például a munkakönyvtárhoz relatív útvonalak zavarát), és a telepítésed hordozható marad – egyszerűen csomagold be a `.lic` fájlt bárhol, ahol az alkalmazásod fut. + +## 3. lépés: Licenc hozzárendelése az OCR motorhoz + +A `License` objektum készen áll, az utolsó lépés, hogy csatold egy `OcrEngine`‑hez. Ez a lépés biztosítja, hogy az OCR komponens licencelt módban fusson, ne pedig az értékelő homokozóban. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Note:** Néhány régebbi Aspose verzió nyilvános `license` mezőt exponál a setter helyett. Igazítsd a kódot ennek megfelelően (`ocrEngine.license = license;`), ha fordítási hibát kapsz. + +## 4. lépés: Licenc betöltésének ellenőrzése (opcionális, de hasznos) + +Egy gyors szanitási ellenőrzés órákat spórolhat a későbbi hibakeresésben. A `License` osztály nem dob kivételt siker esetén, de megpróbálhatsz egy ártalmatlan OCR műveletet a megerősítéshez. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Ha a “License applied successfully” üzenetet látod, minden rendben van. Ha nem, ellenőrizd újra a fájl útvonalát, a bájtok integritását, és hogy a megfelelő Aspose verziót használod-e. + +## Teljes működő példa + +Az összes darab összeillesztése egy kompakt, kimásolható programot eredményez. Nyugodtan helyezd ezt egy `Main.java` fájlba és futtasd. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Expected output (assuming the dummy image exists):** + +``` +License applied successfully – OCR engine is ready. +``` + +Ha a licencfájl hiányzik vagy sérült, egy világos hibaüzenetet kapsz, például: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Gyakori buktatók és elkerülésük módjai + +- **Path confusion:** A relatív útvonalak a JVM munkakönyvtára alapján kerülnek feloldásra, nem a forrásfájl helye szerint. Használj abszolút útvonalat, vagy helyezd a `.lic` fájlt a JAR mellé, és hivatkozz rá `getResourceAsStream`‑nel. +- **Wrong byte order:** Soha ne próbálj meg bináris fájlt `Reader`‑rel (karakter‑orientált) beolvasni. Az adatot elrontja. Maradj a `FileInputStream`‑alapú API‑knál. +- **Version mismatch:** Néhány régebbi Aspose kiadás `license.setLicense("path/to/file")`‑t vár a `setLicenseBytes` helyett. Ellenőrizd a könyvtár kiadási megjegyzéseit, ha `NoSuchMethodError`‑t kapsz. +- **Forgot to close streams:** Ha visszatérsz a klasszikus `FileInputStream` megközelítéshez, csomagold try‑with‑resources blokkba a garantált lezárás érdekében. + +## Következtetés + +Most már tudod, hogyan **read binary file Java** segítségével tölts be egy Aspose OCR licencet, hozz létre egy `License` objektumot, és kösd össze egy `OcrEngine`‑nel. A folyamat a megfelelő bináris adatkezelésen alapul `FileInputStream`‑nel (vagy a modernebb `Files.readAllBytes`‑szel), és néhány egyszerű API‑híváson. + +Innen már áttérhetsz a valódi OCR feladatokra – szöveg kinyerése PDF‑ekből, képekből vagy akár beolvasott dokumentumokból – magabiztosan, hogy a licenc réteg nem fog akadályt jelenteni. Ha érdekelnek a kapcsolódó témák, nézd meg a **Java FileInputStream**, **binary data handling Java**, és **read license file Java** tutorialokat más könyvtárakhoz. + +Boldog kódolást, és legyen az OCR eredményed kristálytiszta! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/hungarian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/hungarian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..ea47b8f37 --- /dev/null +++ b/ocr/hungarian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Tanulja meg, hogyan ismerje fel a szöveget a képről, és hogyan konvertálja + a képet szöveggé az Aspose OCR for Java segítségével. Tippeket tartalmaz az OCR + pontosságának javításához és a PNG-fájlokon történő OCR futtatásához. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: hu +og_description: Lépésről lépésre útmutató a szöveg felismeréséhez képről az Aspose + OCR for Java használatával. Tanulja meg, hogyan konvertálja a képet szöveggé, javítsa + az OCR pontosságát, és futtassa az OCR-t PNG formátumban. +og_title: Szöveg felismerése képről az Aspose OCR segítségével – Java útmutató +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Szöveg felismerése képről az Aspose OCR-rel – Teljes Java útmutató +url: /hu/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# szöveg felismerése képről Aspose OCR-rel – Teljes Java útmutató + +Valaha is szükséged volt **recognize text from image** funkcióra, de nem tudtad, melyik könyvtár ad megbízható eredményt? Nem vagy egyedül — sok fejlesztő szembesül ezzel a problémával, amikor először próbál adatot kinyerni beolvasott PDF‑ekből, nyugtákból vagy laboratóriumi jelentésekből. A jó hír, hogy az Aspose OCR for Java a teljes folyamatot gyerekjátékká teszi, és akár **convert image to text** is elvégezhető néhány sor kóddal. + +Ebben a tutorialban mindent végigvázolunk: a kép betöltését az OCR‑hez, a beállítások finomhangolását az **improve OCR accuracy** érdekében, majd a **run OCR on PNG** fájlok futtatását és a kinyert szöveg kiírását. Nincs felesleges részlet, csak egy gyakorlati, futtatható példa, amit ma be tudsz illeszteni a projektedbe. + +--- + +## Amire szükséged lesz + +Mielőtt belevágnánk, győződj meg róla, hogy a következők a gépeden vannak: + +| Előfeltétel | Ok | +|--------------|--------| +| Java 17 (vagy újabb) | Az Aspose OCR Java 8+ célja, de a legújabb JDK jobb teljesítményt nyújt. | +| Aspose OCR for Java könyvtár (`aspose-ocr.jar`) | A motor, ami a nehéz munkát végzi. | +| Érvényes Aspose OCR licencfájl (`Aspose.OCR.Java.lic`) | Engedélyezi a teljes funkciókészletet; különben csak egy próba‑vízjelet kapsz. | +| Kép fájl (PNG, JPEG, TIFF, stb.) tiszta szöveggel | A példában a `lab_report.png` fájlt használjuk. | +| Egy egyedi szótár (opcionális) | Javítja a felismerést a szakterületi kifejezések, például a „hemoglobin” esetén. | + +Ha bármelyik ismeretlennek tűnik, ne aggódj — a JAR telepítése és egy egyszerű szövegfájl létrehozása triviális feladat, amit röviden bemutatunk. + +--- + +## 1. lépés – A projekt beállítása és a függőségek importálása + +Először hozz létre egy új Maven (vagy Gradle) projektet, és add hozzá az Aspose OCR függőséget. Maven felhasználók beilleszthetik ezt a kódrészletet a `pom.xml`‑be: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Gradle esetén a megfelelő szintaxis: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tipp:** Figyelj a verziószámra; az újabb kiadások gyakran tartalmaznak hibajavításokat, amelyek közvetlenül befolyásolják az **improve OCR accuracy**‑t. + +Ezután hozz létre egy `OcrDemo.java` nevű Java osztályt. A fájl tetején importáld a szükséges osztályokat: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## 2. lépés – Az OCR motor inicializálása és a licenc alkalmazása + +Nem tudsz **run OCR on PNG** fájlokon anélkül, hogy előbb ne jeleznéd a motor számára, hogy licencelt. Így csináld: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Miért van szükség a külön `License` objektumra? Az Aspose a licenckezelést a motortól elválasztja, hogy könnyen válthass licencet futás közben, ami több‑bérlős SaaS környezetben hasznos lehet. + +--- + +## 3. lépés – Egyedi szótár betöltése (opcionális, de hatékony) + +Ha orvosi terminológiával, vegyületekkel vagy márkanevekkel dolgozol, egy egyedi szótár **improve OCR accuracy**‑t drámaian növelhet. A szótár egy egyszerű szövegfájl, soronként egy szóval: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Miért működik:** Az OCR motor a szótárat használja, hogy a nyelvi modelljét a számodra fontos szavak felé terelje, csökkentve a „hemo‑globin” → „hemoglobin” jellegű hibákat. + +Ha nincs szótárad, egyszerűen hagyd ki ezt a sort — az Aspose a beépített nyelvi csomagokkal is jól teljesít. + +--- + +## 4. lépés – A feldolgozni kívánt kép betöltése + +Most már ténylegesen **load image for OCR**. Az Aspose sok formátumot támogat, de a PNG különösen veszteségmentes, így biztonságos választás a beolvasott dokumentumokhoz. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Különleges eset:** Ha a képed hatalmas (5 MB felett), érdemes először lecsökkenteni a méretét a feldolgozás felgyorsítása érdekében. Az `Image` osztály rendelkezik egy `resize` metódussal, amelyet a felismerés előtt meghívhatsz. + +--- + +## 5. lépés – Az OCR folyamat futtatása és a szöveg lekérése + +Minden beállítva, indítsd el az OCR motort. A `recognize` metódus egy `OcrResult` objektumot ad vissza, amely tartalmazza a kinyert szöveget, a biztonsági pontszámokat, sőt akár a határoló téglalapokat is, ha a layout információra is szükséged van. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +A program futtatásakor valami ilyesmit kell látnod: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Ennyire egyszerű — sikeresen **recognize text from image** és **convert image to text** az Aspose OCR segítségével. + +--- + +## 6. lépés – Gyakori hibák és megoldások + +Még a legjobb könyvtárak is okozhatnak némi gondot: + +| Tünet | Valószínű ok | Megoldás | +|---------|--------------|-----| +| Üres kimenet | Licenc nincs alkalmazva vagy lejárt | Ellenőrizze a `Aspose.OCR.Java.lic` elérési útját, és győződjön meg róla, hogy a verziónak megfelelő. | +| Torzuló karakterek | A kép alacsony felbontású vagy erősen tömörített | Használjon nagyobb felbontású forrást vagy előfeldolgozza a képet (binárizálás, kiegyenesítés). | +| Hiányzó szakterületi szavak | Nincs egyedi szótár | Adjon hozzá egy szótárfájlt a hiányzó kifejezésekkel, soronként egyet. | +| Lassú feldolgozás nagy kötegeknél | Nincs több szálas feldolgozás | Hozzon létre egy `OcrEngine` példányokból álló poolt (szálbiztosak), és párhuzamosan dolgozza fel a képeket. | + +--- + +## 7. lépés – A példa kibővítése: Eredmények fájlba mentése + +Ha a kinyert szöveget későbbi elemzéshez szeretnéd megőrizni, egyszerűen írd ki egy fájlba: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Most már van egy újrahasználható csővezeték, amely **load image for OCR**, kinyeri a tartalmat, és bárhová elmenti, ahová csak szeretnéd. + +--- + +## Bónusz: OCR futtatása több PNG fájlon egy mappában + +A valós projektek gyakran több tucat beolvasott dokumentumot dolgoznak fel. Íme egy gyors ciklus, amely minden `.png` fájlt beolvas egy könyvtárból: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Ne feledd, hogy ugyanazt az `ocrEngine` példányt használd újra — új példány létrehozása minden egyes fájlhoz felesleges terhelést jelent. + +--- + +## Következtetés + +Most már egy teljes körű, vég‑től‑végig megoldással rendelkezel, amely **recognize text from image** az Aspose OCR for Java segítségével. A kép betöltésétől, az egyedi szótárral való opcionális gazdagítástól az **improve OCR accuracy**‑ig, egészen a **run OCR on PNG** fájlok futtatásáig és az eredmény mentéséig, a kód készen áll arra, hogy bármely Java projektbe beilleszd. + +Mi a következő lépés? Próbáld meg a kinyert szöveget egy természetes nyelvi feldolgozó (NLP) csővezetékbe továbbadni, vagy kísérletezz kézírásos jegyzetek OCR‑jével (az Aspose kézírási módot is kínál). A lehetőségek végtelenek, és te most már megtetted az első lépést. + +Boldog kódolást! Ha bármilyen problémába ütköztél, nyugodtan hagyj megjegyzést lent — oldjuk meg együtt. + +![Screenshot of OCR result in console – recognize text from image](/images/ocr_console_result.png "szöveg felismerése képről 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/indonesian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/indonesian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..026c484b9 --- /dev/null +++ b/ocr/indonesian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Ekstrak tabel dari gambar menggunakan Aspose OCR Java. Pelajari cara + memuat gambar untuk OCR, mengekstrak tabel dari PNG, mengonversi teks tabel gambar, + dan mengenali gambar struk dengan cepat. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: id +og_description: Ekstrak tabel dari gambar dengan Aspose OCR Java. Panduan ini menunjukkan + cara memuat gambar untuk OCR, mengekstrak tabel dari PNG, mengonversi teks tabel + gambar, dan mengenali gambar struk. +og_title: Ekstrak tabel dari gambar – Tutorial Aspose OCR Java +tags: +- Aspose OCR +- Java +- Image Processing +title: Ekstrak tabel dari gambar – Panduan Lengkap Aspose OCR Java +url: /id/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ekstrak tabel dari gambar – Panduan Lengkap Aspose OCR Java + +Pernah membutuhkan untuk **extract tables from image** file tetapi selalu menemui kendala? Mungkin Anda memiliki struk yang dipindai atau faktur yang difoto dan data tabel tersembunyi di dalam PNG. Dalam tutorial ini Anda akan melihat secara tepat cara *load image for OCR*, mengubah gambar tersebut menjadi baris terstruktur, dan **convert image table text** menjadi sesuatu yang dapat Anda gunakan di Java. + +Kami akan membahas setiap langkah, mulai dari melisensikan mesin Aspose OCR hingga mencetak setiap sel tabel yang terdeteksi. Pada akhir tutorial Anda akan dapat **recognize receipt image** file dan mengambil tabelnya tanpa kesulitan. + +## Apa yang Akan Anda Pelajari + +- Cara menginisialisasi mesin Aspose OCR dan menerapkan lisensi Anda. +- Mengapa mengaktifkan deteksi tabel adalah kunci untuk **extract tables from image**. +- Kode tepat yang diperlukan untuk **load image for OCR** dan menjalankan pengenalan pada PNG. +- Cara menangani banyak tabel, pemindaian beresolusi rendah, dan jebakan umum. +- Cara **convert image table text** menjadi format yang dapat dicetak (atau siap untuk basis data). + +Tidak memerlukan dokumentasi eksternal—semua yang Anda butuhkan ada di sini. + +## Prasyarat + +- Java 17 atau lebih baru (kode menggunakan sistem modul modern). +- File lisensi Aspose OCR untuk Java (`Aspose.OCR.Java.lic`). Jika Anda hanya bereksperimen, kunci evaluasi sementara juga dapat digunakan. +- Gambar PNG yang berisi tabel jelas (misalnya, `receipt_with_table.png`). +- Maven atau Gradle untuk menarik dependensi Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Simpan file lisensi di samping folder `src/main/resources` Anda sehingga jalurnya tetap stabil di semua lingkungan. + +--- + +## Langkah 1 – Inisialisasi mesin OCR untuk **extract tables from image** + +Sebelum mesin dapat melakukan apa pun, ia harus mengetahui bahwa Anda adalah pengguna yang sah. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Why this matters:* Tanpa lisensi yang valid, mesin OCR berjalan dalam mode percobaan, yang dapat memotong hasil atau menambahkan watermark yang tidak diinginkan—menjadikan ekstraksi tabel tidak dapat diandalkan. + +--- + +## Langkah 2 – Aktifkan deteksi tabel (**extract table from png**) + +Deteksi tabel tidak aktif secara default; Anda harus mengaktifkannya. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Mengaktifkan flag ini memberi tahu Aspose OCR untuk memperlakukan kelompok teks yang sejajar sebagai baris dan kolom, yang persis Anda butuhkan ketika ingin **extract tables from image** file yang berformat PNG. + +--- + +## Langkah 3 – **Load image for OCR** dan **recognize receipt image** + +Sekarang kita benar‑benarnya memasukkan gambar ke dalam mesin. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Jika Anda menangani skenario **recognize receipt image**, Anda mungkin ingin melakukan pra‑pemrosesan gambar (mengoreksi kemiringan, meningkatkan kontras). Itu di luar lingkup panduan singkat ini tetapi layak dieksplorasi untuk pemindaian yang berisik. + +--- + +## Langkah 4 – Proses hasil OCR dan **convert image table text** + +Objek `OcrResult` mungkin berisi satu atau lebih tabel. Mari iterasi mereka dan cetak setiap sel. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Apa yang dilakukan:** + +- Memeriksa apakah ada tabel yang ditemukan; jika tidak, menyarankan penyesuaian kualitas. +- Untuk setiap tabel, mencetak baris dengan sel dipisahkan tab, yang merupakan format nyaman untuk impor CSV. +- Pemanggilan `Cell::getText` adalah inti dari **convert image table text** – ia mengambil string OCR mentah dari setiap sel. + +### Output yang Diharapkan + +Dengan asumsi `receipt_with_table.png` berisi tabel sederhana 3 × 2, Anda akan melihat sesuatu seperti: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Jika gambar memiliki beberapa tabel, masing‑masing akan dipisahkan oleh baris kosong. + +--- + +## Langkah 5 – Verifikasi tabel yang diekstrak dan tangani kasus tepi + +### Jebakan umum + +| Masalah | Mengapa terjadi | Perbaikan cepat | +|---------|----------------|-----------------| +| **Tidak ada tabel terdeteksi** | Gambar terlalu buram atau kontras rendah | Terapkan binarisasi (`ImageProcessing.applyThreshold`) sebelum OCR | +| **Sel yang digabung** | Garis tabel lemah, OCR memperlakukannya sebagai satu blok | Tingkatkan `TableDetectionSensitivity` di `ocrEngine.getConfig()` | +| **Urutan kolom tidak tepat** | Gambar miring menyebabkan ketidaksesuaian | Gunakan `ImageProcessing.deskew` atau putar gambar sebesar 90° | + +### Apa yang harus dilakukan selanjutnya + +- **Export to CSV** – ganti `System.out.println(line);` dengan `FileWriter` untuk menyimpan data. +- **Feed into a database** – petakan setiap baris ke POJO dan gunakan JPA untuk persistensi. +- **Combine with other APIs** – untuk pemrosesan struk Anda juga dapat mengekstrak total menggunakan ekspresi reguler pada teks OCR. + +--- + +## Contoh Lengkap yang Berfungsi (Siap Salin‑Tempel) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Jalankan program ini, arahkan ke PNG yang berisi tabel jelas, dan saksikan konsol terisi dengan baris yang terformat rapi. + +--- + +## Kesimpulan + +Anda kini memiliki solusi menyeluruh, end‑to‑end untuk **extract tables from image** file menggunakan Aspose OCR untuk Java. Dari pelisensian hingga **load image for OCR**, mengaktifkan **extract table from png**, dan akhirnya **convert image table text**, setiap langkah dibahas dengan penjelasan dan tip praktis. + +Selanjutnya, coba sambungkan output ke file CSV, masukkan baris ke basis data relasional, atau gabungkan langkah OCR dengan rutin ekstraksi total struk. Pola yang sama berlaku untuk faktur, daftar harga, dan dokumen dipindai apa pun yang menyembunyikan data di balik grid. + +Ada pertanyaan tentang menangani struk beresolusi rendah atau memperluas ini ke pemrosesan batch? Tinggalkan komentar di bawah, dan selamat coding! + +![Contoh ekstrak tabel dari gambar](https://example.com/assets/extract-tables-from-image.png "Ekstrak tabel dari gambar – contoh output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/indonesian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..2c3be6753 --- /dev/null +++ b/ocr/indonesian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Ekstrak teks dari gambar dengan Python menggunakan Aspose OCR. Pelajari + tutorial OCR Python langkah demi langkah dengan dukungan campuran Latin‑Cyrillic. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: id +og_description: Ekstrak teks dari gambar dengan Python secara cepat. Panduan ini menunjukkan + cara menggunakan Aspose OCR di Python untuk gambar campuran Latin‑Cyrillic. +og_title: Ekstrak Teks dari Gambar Python – Panduan Lengkap Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Ekstrak Teks dari Gambar dengan Python – Panduan Lengkap Aspose OCR +url: /id/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ekstrak Teks dari Gambar Python – Panduan Lengkap Aspose OCR + +Pernahkah Anda perlu **extract text from image python** tetapi tidak yakin pustaka mana yang dapat menangani campuran karakter Latin dan Cyrillic? Anda bukan satu-satunya—para pengembang terus-menerus menghadapi masalah itu saat melakukan OCR pada screenshot multibahasa. + +Kabar baiknya, Aspose OCR untuk Python membuat seluruh proses hampir tanpa rasa sakit. Dalam tutorial ini kami akan menjelaskan cara menginstal paket, menerapkan lisensi Anda, memuat gambar berbahasa campuran, dan akhirnya mengambil teks yang dikenali dengan beberapa baris kode. Pada akhir tutorial Anda akan memiliki skrip siap‑jalankan yang dapat Anda masukkan ke dalam proyek apa pun. + +## Apa yang Akan Anda Pelajari + +- Cara menyiapkan **Aspose OCR Python** dalam lingkungan virtual. +- Mengapa memberi petunjuk bahasa (seperti Latin dan Cyrillic) mempercepat deteksi. +- Kode tepat yang diperlukan untuk **extract text from image python** dengan satu panggilan fungsi. +- Jebakan umum saat menangani OCR berbahasa campuran dan cara menghindarinya. + +### Prasyarat + +- Python 3.8 atau yang lebih baru terpasang di mesin Anda. +- File lisensi Aspose OCR (`Aspose.OCR.Java.lic`). Versi percobaan gratis dapat digunakan untuk pengujian, tetapi file berlisensi menghilangkan watermark. +- Gambar PNG/JPEG yang berisi karakter Latin dan Cyrillic (kami akan menyebutnya `mixed_latin_cyrillic.png`). + +Jika Anda telah mencentang kotak-kotak tersebut, Anda siap melanjutkan—tidak memerlukan kerangka kerja tambahan atau dependensi berat. + +--- + +## Langkah 1 – Ekstrak Teks dari Gambar Python: Instal Aspose OCR + +Hal pertama yang harus dilakukan: dapatkan pustaka dari PyPI dan pastikan lingkungan Anda dapat menemukan file lisensi. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** Jika Anda mengalami error izin, tambahkan `--user` ke perintah `pip install` atau jalankan terminal sebagai administrator. + +Setelah paket berada di sistem Anda, kami akan mengimpornya dan mengarahkan mesin ke lisensi kami. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Mengapa kami memerlukan lisensi pada tahap ini? Tanpa lisensi, mesin berjalan dalam **evaluation mode**, yang membatasi jumlah halaman dan menambahkan watermark pada output. Menyediakan lisensi di awal memastikan panggilan `recognize` selanjutnya mengembalikan teks bersih. + +--- + +## Langkah 2 – Muat Gambar Anda dengan Konten Latin‑Cyrillic Campuran + +Selanjutnya, kami memuat gambar ke memori. Aspose OCR bekerja dengan kelas `Image` miliknya, yang mengabstraksi format file yang mendasarinya. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Jika Anda bertanya-tanya apakah format lain berfungsi—ya, JPEG, BMP, TIFF, bahkan PDF didukung. Cukup ganti ekstensi file dan metode `from_file` akan menangani sisanya. + +--- + +## Langkah 3 – Beri Petunjuk Bahasa untuk Deteksi Lebih Cepat (Opsional tetapi Membantu) + +Ketika Anda mengetahui bahasa yang ada dalam gambar, Anda dapat memberi mesin petunjuk. Ini tidak wajib, tetapi **secara signifikan mengurangi waktu pemrosesan** dan meningkatkan akurasi untuk OCR berbahasa campuran. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +Daftar petunjuk menerima bahasa apa pun yang didukung oleh Aspose OCR (mis., `"Arabic"`, `"Japanese"`). Jika Anda melewatkan langkah ini, mesin akan mencoba setiap bahasa bawaan, yang dapat lebih lambat pada batch besar. + +--- + +## Langkah 4 – Jalankan Mesin OCR dan Ekstrak Teks + +Kini saatnya menguji: sebenarnya mengenali karakter. Metode `recognize` mengembalikan objek `OcrResult` yang berisi teks polos, skor kepercayaan, dan bahkan kotak pembatas jika Anda membutuhkannya nanti. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Mengapa ini berhasil:** Di balik layar, Aspose OCR menggabungkan detektor teks jaringan saraf dengan classifier khusus bahasa. Dengan memberi objek `Image`, Anda menghindari kebutuhan pra‑pemrosesan manual seperti binarisasi. + +--- + +## Langkah 5 – Lihat Teks yang Diekstrak + +Akhirnya, mari cetak hasilnya ke konsol. Dalam aplikasi nyata Anda mungkin menuliskannya ke file, mengirimnya ke basis data, atau memasukkannya ke API terjemahan. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Saat Anda menjalankan skrip, Anda akan melihat sesuatu seperti: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Output tersebut mengonfirmasi bahwa kami berhasil **extract text from image python**, menangani karakter Latin dan Cyrillic dalam satu proses. + +--- + +## Contoh Lengkap yang Berfungsi + +Berikut adalah skrip lengkap yang dapat Anda salin‑tempel ke file bernama `extract_ocr.py`. Ganti saja jalur placeholder dengan direktori Anda yang sebenarnya. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Simpan file, aktifkan lingkungan virtual Anda, dan jalankan: + +```bash +python extract_ocr.py +``` + +Anda akan melihat teks yang dikenali tercetak, mengonfirmasi skrip berfungsi dari awal hingga akhir. + +--- + +## Pertanyaan yang Sering Diajukan & Kasus Pojok + +**Bagaimana jika gambar blur?** +Aspose OCR menyertakan de‑skewing dan pengurangan noise bawaan, tetapi untuk foto yang sangat terdegradasi Anda mungkin ingin pra‑memproses dengan OpenCV (mis., menerapkan Gaussian blur dan threshold). Kelas `Image` juga dapat menerima array NumPy, sehingga Anda dapat menambahkan filter khusus sebelum memanggil `recognize`. + +**Bisakah saya memproses seluruh folder gambar?** +Tentu saja. Bungkus logika dalam loop `for`, ubah `from_file` untuk membaca setiap nama file, dan simpan hasilnya dalam kamus. Ingat untuk menghormati batas laju API jika Anda menggunakan versi cloud. + +**Apakah saya memerlukan lisensi terpisah untuk setiap bahasa?** +Tidak, satu lisensi Aspose OCR mencakup semua bahasa yang didukung. Daftar `language_hints` hanyalah petunjuk untuk meningkatkan performa. + +**Bagaimana dengan input PDF?** +Ganti `Image.from_file` dengan `ocr.Image.from_file("document.pdf")`. Mesin OCR akan secara otomatis meraster setiap halaman dan mengembalikan teks yang digabungkan. + +--- + +## Kesimpulan + +Kami baru saja menunjukkan cara singkat dan siap produksi untuk **extract text from image python** menggunakan Aspose OCR. Langkah‑langkah—instal, lisensi, muat, beri petunjuk bahasa, kenali, dan tampilkan—mencakup semua yang Anda butuhkan untuk mendapatkan hasil yang dapat diandalkan untuk konten Latin‑Cyrillic campuran. + +Dari sini Anda dapat menjelajahi topik lanjutan seperti **image to text conversion** untuk pemrosesan batch, mengintegrasikan output dengan **Python OCR tutorial** tentang pemrosesan bahasa alami, atau bereksperimen dengan petunjuk bahasa lain untuk dokumen multibahasa. Tidak ada batasan, dan kode sudah ada di tangan Anda. + +Memiliki kasus penggunaan lain atau mengalami masalah? Tinggalkan komentar, bagikan pengalaman Anda, dan mari teruskan diskusinya. Selamat coding! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/indonesian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..c10bac191 --- /dev/null +++ b/ocr/indonesian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Ekstrak teks dari gambar secara instan menggunakan Aspose OCR. Pelajari + cara menentukan wilayah minat, memuat gambar untuk OCR, dan mengekstrak teks dari + faktur dalam hitungan menit. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: id +og_description: Ekstrak teks dari gambar menggunakan Aspose OCR. Panduan ini menunjukkan + cara mendefinisikan wilayah minat, memuat gambar untuk OCR, dan mengekstrak teks + dari faktur secara efisien. +og_title: Ekstrak Teks dari Gambar dengan Aspose OCR – Tutorial Lengkap +tags: +- ocr +- python +- image-processing +title: Ekstrak Teks dari Gambar dengan Aspose OCR – Panduan Langkah demi Langkah +url: /id/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ekstrak Teks dari Gambar dengan Aspose OCR – Panduan Langkah‑demi‑Langkah + +Butuh **ekstrak teks dari gambar** dengan cepat? Anda tidak sendirian—para pengembang terus berjuang dengan pemindaian berisik, kwitansi, dan faktur. Dalam tutorial ini kami akan membahas solusi lengkap yang tidak hanya menunjukkan cara *ekstrak teks dari gambar* tetapi juga mendemonstrasikan cara **mendefinisikan region of interest**, **memuat gambar untuk OCR**, dan mengambil baris tepat yang Anda butuhkan dari sebuah faktur. + +Kami akan membahas semuanya mulai dari menginstal pustaka Aspose OCR hingga menangani kasus tepi seperti halaman yang diputar. Pada akhir tutorial, Anda akan memiliki skrip yang dapat dijalankan yang mengekstrak teks yang diinginkan dalam satu panggilan—tanpa perlu memotong secara manual. + +## Apa yang Akan Anda Pelajari + +- Cara **memuat gambar untuk OCR** menggunakan API Python Aspose. +- Cara terbaik untuk **mendefinisikan region of interest** (ROI) sehingga Anda hanya memproses bagian gambar yang penting. +- Cara **ekstrak teks dari faktur** tanpa mengambil seluruh halaman. +- Tips untuk **memproses gambar dengan OCR** secara efisien dan menghindari jebakan umum. + +**Prasyarat** – lingkungan Python 3.9+ terbaru, file lisensi Aspose OCR yang valid, dan sebuah gambar (misalnya, PNG faktur). Tidak diperlukan alat eksternal lain. + +--- + +## Langkah 1 – Inisialisasi Mesin OCR (Pengaturan Utama) + +Sebelum Anda dapat **memproses gambar dengan OCR**, Anda memerlukan instance mesin yang memegang lisensi Anda. Langkah ini penting karena mesin yang tidak berlisensi hanya akan mengembalikan set hasil terbatas. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Mengapa ini penting*: Objek `OcrEngine` adalah inti pustaka; ia mengelola model bahasa, pra‑pemrosesan gambar, dan lisensi. Menetapkan lisensi di awal memastikan Anda mendapatkan akurasi penuh dan tanpa watermark. + +--- + +## Langkah 2 – Memuat Gambar untuk OCR + +Setelah mesin siap, kita perlu **memuat gambar untuk OCR**. Aspose mendukung banyak format (PNG, JPEG, TIFF), tetapi menggunakan `Image.from_file` menjamin gambar didekode dengan benar. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: Simpan file gambar Anda di bawah 5 MB untuk pemrosesan tercepat. File yang lebih besar dapat diperkecil dengan `image.resize(width, height)` sebelum OCR. + +--- + +## Langkah 3 – Mendefinisikan Region of Interest (ROI) + +Sebagian besar faktur berisi banyak teks yang tidak relevan—blok alamat, footer, dll. Dengan **mendefinisikan region of interest** kami memberi tahu mesin untuk hanya melihat di mana nilai atau tanggal berada, yang meningkatkan kecepatan dan akurasi. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Cara kerjanya*: Kelas `Rectangle` memotong gambar secara virtual; mesin OCR tidak pernah melihat piksel di luar persegi panjang, sehingga noise di luar ROI diabaikan. + +--- + +## Langkah 4 – Mengenali Teks di Dalam ROI + +Dengan mesin, gambar, dan ROI siap, kami akhirnya **mengekstrak teks dari gambar**. Metode `recognize` mengembalikan objek `OcrResult` yang berisi string yang terdeteksi dan skor kepercayaan. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Output yang diharapkan** (contoh untuk baris total faktur tipikal): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Jika ROI diposisikan dengan benar, Anda akan melihat hanya baris yang Anda butuhkan—tidak ada yang lain. + +--- + +## Langkah 5 – Contoh Lengkap yang Siap Pakai (Copy‑Paste Ready) + +Berikut adalah skrip lengkap yang menggabungkan semua langkah sebelumnya. Simpan sebagai `extract_invoice_roi.py` dan jalankan `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Jalankan skrip dan Anda akan melihat baris target tercetak di konsol. Jika Anda mendapatkan string kosong, periksa kembali koordinat ROI—kadang beberapa piksel yang meleset akan mengeluarkan teks sepenuhnya. + +--- + +## Langkah 6 – Variasi Umum & Kasus Tepi + +### a) Tata letak faktur yang berbeda +Faktur dari vendor yang berbeda sering memindahkan kotak total. Untuk **memproses gambar dengan OCR** di berbagai tata letak, pertimbangkan: + +- **Multiple ROIs**: Jalankan mesin secara berurutan dengan beberapa persegi panjang dan pilih hasil dengan kepercayaan tertinggi. +- **Dynamic ROI detection**: Gunakan pustaka pemrosesan gambar ringan (mis., OpenCV) untuk menemukan label “Total” terlebih dahulu, lalu hitung ROI relatif terhadapnya. + +### b) Gambar yang diputar atau miring +Jika pemindaian miring, panggil `image.rotate(angle)` sebelum pengenalan: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR juga menyediakan auto‑deskew, tetapi rotasi manual memberi Anda kontrol yang lebih ketat. + +### c) Karakter non‑Latin +Model bahasa default adalah Bahasa Inggris. Untuk **mengekstrak teks dari faktur** yang ditulis dalam bahasa lain, atur bahasa sebelum pengenalan: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) PDF besar +Saat menangani PDF multi‑halaman, ekstrak setiap halaman sebagai gambar terlebih dahulu (Aspose PDF → Image) dan kemudian terapkan logika ROI yang sama per halaman. + +--- + +## Langkah 7 – Tips Kinerja & Pro Tips + +- **Cache the engine**: Membuat `OcrEngine` berulang kali dalam loop memperlambat proses. Instansiasi sekali dan gunakan kembali. +- **Batch processing**: Jika Anda memiliki puluhan faktur, bungkus panggilan OCR dalam `ThreadPoolExecutor` untuk memparalelkan pekerjaan I/O‑bound. +- **Confidence check**: `ocr_result.confidence` memberikan nilai float antara 0 dan 1. Tolak hasil di bawah 0.85 dan gunakan ROI yang lebih besar atau tinjauan manual. + +> **Waspada**: Menetapkan ROI terlalu kecil dapat memotong karakter, menghasilkan output yang berantakan. Selalu uji dengan beberapa contoh faktur sebelum memperluas skala. + +--- + +## Kesimpulan + +Anda kini memiliki metode yang solid dan siap produksi untuk **mengekstrak teks dari gambar** menggunakan Aspose OCR, lengkap dengan cara **mendefinisikan region of interest**, **memuat gambar untuk OCR**, dan secara andal **mengekstrak teks dari faktur**. Dengan membatasi OCR pada ROI yang ketat, Anda meningkatkan kecepatan dan akurasi—sempurna untuk pemrosesan batch ribuan kwitansi. + +Siap untuk langkah berikutnya? Coba integrasikan skrip ini ke dalam API Flask sehingga aplikasi web Anda dapat mengunggah faktur dan langsung mengembalikan jumlah total. Atau bereksperimen dengan beberapa ROI untuk mengekstrak tanggal, nomor faktur, dan nama vendor sekaligus. Kemungkinannya tak terbatas, dan dengan dasar yang telah dibahas di sini, Anda siap menghadapi tantangan OCR apa pun. + +Selamat coding, semoga teks yang Anda ekstrak selalu bersih! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Alur untuk mengekstrak teks dari gambar menggunakan Aspose 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/indonesian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/indonesian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..1020bc92e --- /dev/null +++ b/ocr/indonesian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Ekstrak teks dari gambar menggunakan OCR async Python. Pelajari cara + mengonversi tif menjadi teks, memuat gambar untuk OCR, dan mengenali teks dari gambar + secara efisien. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: id +og_description: Ekstrak teks dari gambar menggunakan Python async OCR. Panduan ini + menunjukkan cara mengonversi tif menjadi teks, memuat gambar untuk OCR, dan mengenali + teks dari gambar. +og_title: Ekstrak Teks dari Gambar dengan Python Async OCR – Panduan Lengkap +tags: +- OCR +- Python +- AsyncIO +title: Ekstrak Teks dari Gambar dengan Python Async OCR – Panduan Lengkap +url: /id/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extract Text from Image with Python Async OCR – Complete Guide + +Perlu **mengekstrak teks dari gambar** dengan cepat? Dengan async OCR di Python Anda dapat melakukannya hanya dalam beberapa baris kode. Baik Anda menangani pemindaian .tif yang sangat besar maupun beberapa file JPEG, tutorial ini menunjukkan cara mengubah tif menjadi teks, memuat gambar untuk OCR, dan akhirnya mengenali teks dari gambar tanpa memblokir event loop Anda. + +Begini keadaannya—kebanyakan pengembang langsung menggunakan pustaka sinkron, lalu menatap UI yang membeku sementara mesin memproses piksel. Dalam panduan ini kami akan membalikkan skenario tersebut dengan menggunakan API asynchronous Aspose OCR Cloud, sehingga aplikasi Anda tetap responsif. Pada akhir tutorial Anda akan memiliki skrip yang dapat dijalankan untuk mengekstrak teks dari format gambar apa pun yang didukung, dan Anda akan memahami alasan di balik setiap langkah. + +## What You’ll Learn + +- Cara menyiapkan Aspose OCR Cloud SDK untuk Python. +- Kode tepat yang dibutuhkan untuk **memuat gambar untuk OCR** dan memulai tugas pengenalan async. +- Tips menangani file .tif berukuran besar dan keanehan lisensi. +- Cara **mengekstrak teks gambar** dengan aman, bahkan ketika layanan mengembalikan error. +- Contoh lengkap yang siap disalin‑tempel yang dapat Anda masukkan ke dalam proyek Anda. + +> **Prerequisite**: Python 3.8+ dan file lisensi Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Tidak diperlukan paket pihak ketiga lainnya. + +--- + +![extract text from image workflow](workflow.png){: .align-center alt="alur kerja mengekstrak teks dari gambar"} + +## Extract Text from Image – Async OCR Overview + +Sebelum kita masuk ke kode, mari kita uraikan alurnya. Ketika Anda memanggil `recognize_async` SDK mengirimkan gambar ke cloud Aspose, memulai pekerjaan di latar belakang, dan mengembalikan objek `Task`. Menunggu tugas tersebut menghasilkan `OcrResult` yang berisi representasi teks polos dari gambar. Karena pemanggilan bersifat asynchronous, Anda dapat meluncurkan beberapa pekerjaan secara paralel—sempurna untuk pemrosesan batch arsip dokumen yang dipindai dalam jumlah besar. + +### Why Use Async? + +- **Non‑blocking I/O** – Event loop Anda tetap bebas menangani pekerjaan lain (misalnya, melayani permintaan HTTP). +- **Scalability** – Jalankan puluhan pengenalan sekaligus; cloud melakukan pekerjaan berat. +- **Responsiveness** – Aplikasi UI tidak akan membeku saat menunggu mesin OCR. + +Setelah “mengapa” jelas, mari lihat **bagaimana** melakukannya. + +## Convert TIF to Text Using Aspose OCR + +Salah satu kendala umum adalah menganggap setiap pustaka OCR secara native mendukung .tif. Aspose memang mendukungnya, tetapi Anda tetap harus memberikannya objek `Image`. SDK mengabstraksi format, sehingga Anda cukup menunjuk ke jalur file. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Explanation of key lines** + +- `ocr_engine.license = ...` – Tanpa lisensi yang valid cloud akan mengembalikan error 403. Pastikan file `.lic` dapat diakses dari direktori kerja skrip Anda. +- `ocr.Image.from_file(image_path)` – Langkah ini **memuat gambar untuk OCR**; SDK secara otomatis mendeteksi format, jadi Anda tidak perlu mengonversi .tif terlebih dahulu. +- `recognize_async` – Mengembalikan tugas yang kompatibel dengan coroutine. Anda dapat meluncurkan beberapa tugas ini dalam pemanggilan `gather` bila memiliki batch. + +> **Pro tip**: Jika Anda memproses TIFF berukuran gigabyte, pertimbangkan memecahnya menjadi halaman terlebih dahulu. `Image.from_file` milik Aspose dapat menerima indeks halaman, yang mengurangi tekanan memori. + +## Recognize Text from Image Asynchronously + +Mari lihat cara memanggil fungsi tersebut dari skrip tipikal. Titik masuk `asyncio.run` adalah cara paling sederhana untuk mengeksekusi coroutine ketika Anda belum berada di dalam event loop (misalnya, pada alat CLI biasa). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**What to expect** + +Menjalankan skrip pada pemindaian yang jelas dan beresolusi tinggi biasanya menghasilkan string multi‑baris yang cocok dengan halaman tercetak. Jika gambar berisik, Aspose tetap berusaha membersihkannya, tetapi Anda mungkin melihat karakter yang terdistorsi. Dalam kasus tersebut, pertimbangkan pra‑pemrosesan dengan OpenCV (misalnya, thresholding) sebelum memberi file ke mesin OCR. + +### Handling Errors Gracefully + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Menangkap `OcrException` memastikan program Anda tidak crash ketika cloud mengembalikan error—sesuatu yang sering membuat pemula terjebak karena lupa akan gangguan jaringan. + +## Load Image for OCR – Practical Tips + +1. **File Path vs. Bytes** – SDK menerima jalur file, tetapi Anda juga dapat memuat dari objek `bytes` bila gambar berada di memori (`ocr.Image.from_bytes`). Ini berguna ketika Anda sudah mengambil file dari S3 atau basis data. +2. **Supported Formats** – Selain .tif, Aspose menangani PDF, BMP, GIF, dan bahkan multi‑page TIFF. Gunakan `Image.from_file("doc.pdf")` untuk langsung OCR PDF. +3. **Performance** – Untuk pekerjaan batch, gunakan kembali instance `OcrEngine` yang sama; membuat engine baru untuk setiap file menambah overhead yang tidak perlu. + +## Full Working Example (All Steps in One Script) + +Berikut adalah skrip lengkap yang siap dijalankan, mencakup lisensi, penanganan error, dan parser argumen baris perintah sederhana. Salin‑tempel, sesuaikan jalur lisensi, dan Anda siap. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Expected output** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Jika gambar berisi paragraf sederhana, konsol akan menampilkan baris‑baris yang sama, mempertahankan pemisah baris. Untuk TIFF multi‑halaman, SDK menggabungkan halaman secara berurutan. + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with other async frameworks like FastAPI?** +A: Absolutely. Replace the `asyncio.run` call with `await async_ocr(path)` inside your endpoint, and FastAPI will handle the event loop for you. + +**Q: What if I need to process hundreds of files at once?** +A: Use `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Can I extract text from a password‑protected PDF?** +A: Not directly. You’ll need to unlock the PDF first (e.g., with `pikepdf`) and then feed the decrypted bytes to `ocr.Image.from_bytes`. + +**Q: How do I handle languages other than English?** +A: Set the language before recognition: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose supports over 60 languages; check the docs for the exact identifiers. + +## Conclusion + +Anda kini memiliki solusi **mengekstrak teks dari gambar** yang kuat dengan memanfaatkan `asyncio` Python dan API asynchronous Aspose OCR Cloud. Dengan mengikuti langkah‑langkah di atas Anda dapat **mengubah tif menjadi teks**, **memuat gambar untuk OCR**, dan **mengenali teks dari gambar** secara non‑blocking—sempurna untuk utilitas baris perintah maupun layanan web dengan traffic tinggi. + +What’s next? Coba proses batch folder berisi pemindaian, bereksperimen dengan pengaturan bahasa, atau alirkan output OCR ke pipeline NLP berikutnya. The sky’s + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/indonesian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..0dc5e1ebf --- /dev/null +++ b/ocr/indonesian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Ekstrak teks OCR dengan cepat menggunakan Aspose OCR. Pelajari cara meningkatkan + akurasi OCR, memuat gambar OCR, mempraproses gambar OCR, dan menjalankan pemindaian + OCR di Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: id +og_description: ekstrak teks OCR dengan cepat menggunakan Aspose OCR. Kuasai cara + meningkatkan akurasi OCR, memuat gambar OCR, praproses gambar OCR, dan menjalankan + pemindaian OCR di Python. +og_title: Ekstrak Teks OCR – Panduan Lengkap dengan Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Ekstrak Teks OCR – Panduan Lengkap dengan Aspose OCR +url: /id/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Panduan Lengkap dengan Aspose OCR + +Pernahkah Anda perlu **extract text ocr** dari pemindaian yang miring tetapi tidak yakin mengapa hasilnya terlihat seperti omong kosong? Anda tidak sendirian—banyak pengembang mengalami hal yang sama ketika gambar miring, berisik, atau hanya kontras rendah. Kabar baiknya, beberapa penyesuaian konfigurasi dapat mengubah gambar berantakan menjadi teks bersih yang dapat dicari. Dalam tutorial ini kami akan membahas contoh lengkap end‑to‑end yang menunjukkan cara **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, dan akhirnya **run OCR scan** dengan Aspose OCR untuk Python. + +Pada akhir panduan ini Anda akan memiliki skrip yang dapat dijalankan yang membaca file JPEG hasil pemindaian, membersihkannya secara otomatis, dan mencetak teks yang diekstrak ke konsol. Tidak ada tautan “lihat dokumentasi” yang misterius—semua yang Anda butuhkan ada di sini. + +## Apa yang Anda Butuhkan + +- **Python 3.8+** (rilisan stabil terbaru paling cocok) +- **Aspose.OCR for Python via .NET** – instal dengan `pip install aspose-ocr` +- Sebuah **license file** (`Aspose.OCR.Java.lic`) jika Anda telah membeli (versi percobaan gratis dapat digunakan untuk pengujian) +- Sebuah gambar yang ingin Anda proses (misalnya `skewed_scanned_doc.jpg`) + +Itu saja. Jika Anda sudah memiliki semua itu, kita dapat langsung masuk ke kode. + +## Langkah 1: Extract Text OCR dengan Aspose OCR Engine + +Hal pertama yang Anda lakukan adalah menjalankan OCR engine dan menerapkan lisensi Anda. Anggap engine sebagai otak yang akan membaca gambar; tanpa lisensi ia akan menolak bekerja melampaui batas demo yang sangat kecil. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** Menerapkan lisensi di awal menghindari kegagalan diam-diam di kemudian hari. Jika Anda melewatkan langkah ini, engine akan kembali ke mode terbatas dan Anda hanya akan mendapatkan beberapa karakter—tentu bukan yang Anda harapkan saat mencoba **extract text ocr**. + +## Langkah 2: Improve OCR Accuracy dengan Pre‑processing + +Pemindaian yang miring atau berbutir adalah musuh utama setiap proyek OCR. Aspose memungkinkan Anda mengaktifkan beberapa pengaturan praktis yang secara otomatis melakukan deskew, denoise, dan meningkatkan kontras. Ini adalah inti dari **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – memutar gambar kembali ke posisi horizontal, yang penting ketika dokumen asli tidak sepenuhnya rata. +- **remove_noise** – menghapus bintik‑bintik acak yang sering muncul pada JPEG beresolusi rendah. +- **enhance_contrast** – membuat teks gelap menjadi lebih gelap dan latar belakang terang menjadi lebih terang, membantu engine membedakan karakter. +- **binarization = "Otsu"** – algoritma klasik yang menentukan ambang terbaik untuk konversi hitam‑putih. + +> **Pro tip:** Jika Anda tahu gambar sumber sudah bersih, Anda dapat mematikan opsi ini untuk mempercepat pemrosesan. Namun untuk kebanyakan pemindaian dunia nyata, membiarkannya aktif adalah pilihan paling aman. + +## Langkah 3: Load Image OCR untuk Pemindaian + +Sekarang engine sudah siap, kita perlu **load image ocr**. Metode `Image.from_file` milik Aspose mendukung JPEG, PNG, TIFF, dan beberapa format lainnya. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Ganti `YOUR_DIRECTORY` dengan jalur sebenarnya di mesin Anda. Jika Anda bekerja dengan aliran byte dalam memori (misalnya dari unggahan web), Anda juga dapat menggunakan `ocr.Image.from_bytes(byte_data)`—engine yang sama akan menanganinya. + +> **Edge case:** File TIFF besar dapat mengonsumsi banyak memori. Jika Anda mengalami `MemoryError`, pertimbangkan untuk menurunkan resolusi gambar terlebih dahulu atau menggunakan `ocr_engine.config.max_image_size` untuk membatasi dimensi. + +## Langkah 4: Run OCR Scan dan Dapatkan Hasil + +Dengan gambar yang sudah dimuat dan preprocessing diaktifkan, langkah terakhir adalah **run OCR scan**. Panggilan ini melakukan semua pekerjaan berat di balik layar. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Objek `ocr_result` berisi beberapa properti berguna: + +- `ocr_result.text` – string sederhana yang Anda butuhkan. +- `ocr_result.confidence` – skor numerik (0‑100) yang menunjukkan keandalan keseluruhan. +- `ocr_result.words` – daftar objek kata dengan koordinat bounding box, berguna untuk penyorotan. + +## Langkah 5: Print the Extracted Text + +Akhirnya, kami menampilkan hasilnya. Dalam aplikasi nyata Anda mungkin menulis teks ke file, basis data, atau memasukkannya ke indeks pencarian. Untuk tutorial ini, `print` sederhana sudah cukup. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output** (contoh untuk faktur sederhana): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Jika confidence rendah (< 80), Anda mungkin ingin meninjau kembali opsi preprocessing atau mencoba metode binarisasi lain seperti `"Sauvola"`. + +## Bonus: Visualizing the Pre‑processing Pipeline (Optional) + +Terkadang membantu untuk melihat apa yang dilakukan engine pada gambar. Aspose memungkinkan Anda mengekspor bitmap yang telah diproses: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Anda kemudian dapat menyematkan gambar dalam dokumentasi: + +diagram alur kerja extract text ocr yang menunjukkan langkah‑langkah preprocessing + +> **Why you’d do this:** Ketika hasil OCR tampak tidak tepat, sekilas pada `processed_debug.png` sering mengungkap apakah gambar masih terlalu gelap, masih miring, atau masih memiliki noise yang tersisa. + +## Pertanyaan Umum & Gotchas + +- **What if my document is multi‑page?** + Aspose OCR bekerja per halaman. Lakukan loop pada setiap gambar halaman dan gabungkan `ocr_result.text`. + +- **Can I recognize languages other than English?** + Ya—atur `ocr_engine.config.language = "fra"` (atau kode ISO‑639‑2 apa pun) sebelum memanggil `recognize`. + +- **Is there a limit on image size?** + Engine secara default membatasi hingga 10 MP. Tingkatkan `ocr_engine.config.max_image_size` jika Anda membutuhkan pemindaian lebih besar, tetapi perhatikan penggunaan memori. + +- **Do I need a separate OCR engine for PDFs?** + Untuk PDF Anda dapat mengekstrak setiap halaman sebagai gambar terlebih dahulu (menggunakan Aspose.PDF) atau menggunakan fitur PDF OCR bawaan. Langkah‑langkah yang ditunjukkan di sini tetap sama setelah Anda memiliki gambar. + +## Ringkasan + +Kami telah membahas cara **extract text ocr** menggunakan Aspose OCR untuk Python, mulai dari melisensikan engine hingga menyesuaikan pengaturan yang **improve ocr accuracy**, memuat file sumber, dan akhirnya **run OCR scan** untuk menghasilkan teks bersih. Skrip lengkap siap untuk disalin‑tempel, dan Anda kini memahami mengapa setiap flag konfigurasi penting. + +## Apa Selanjutnya? + +- **Experiment with different binarization methods** (`"Sauvola"`, `"Bradley"`). Beberapa font merespon lebih baik pada ambang adaptif. +- **Integrate with a search engine** (misalnya Elasticsearch) menggunakan skor confidence untuk memberi peringkat hasil. +- **Combine with OCR post‑processing** libraries seperti `pyspellchecker` untuk membersihkan kesalahan pengenalan umum. +- **Explore batch processing** untuk ratusan pemindaian—bungkus langkah‑langkah dalam sebuah fungsi dan berikan folder berisi gambar. + +Silakan sesuaikan kode, tambahkan logging Anda sendiri, atau sambungkan ke pipeline manajemen dokumen yang lebih besar. Jika Anda menemui kendala, tinggalkan komentar di bawah—selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/indonesian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/indonesian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..abaf9befb --- /dev/null +++ b/ocr/indonesian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Cara melakukan OCR PDF menggunakan Aspose OCR Java. Pelajari cara menjalankan + OCR pada PDF, mengenali teks PDF, mengonversi PDF ke JSON, dan memuat PDF untuk + OCR hanya dengan beberapa baris kode. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: id +og_description: Cara melakukan OCR PDF menggunakan Aspose OCR Java. Panduan ini menunjukkan + cara menjalankan OCR pada PDF, mengenali teks PDF, mengonversi PDF ke JSON, dan + memuat PDF untuk OCR dengan cepat. +og_title: Cara OCR PDF dengan Aspose OCR – Tutorial Pemrograman Lengkap +tags: +- Aspose OCR +- Java +- PDF processing +title: Cara OCR PDF dengan Aspose OCR – Panduan Lengkap Langkah demi Langkah +url: /id/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara OCR PDF dengan Aspose OCR – Panduan Lengkap Langkah‑per‑Langkah + +Pernah bertanya-tanya **bagaimana cara OCR PDF** tanpa harus berurusan dengan alat baris perintah atau membayar layanan SaaS yang mahal? Anda tidak sendirian. Dalam banyak proyek—otomatisasi faktur, pengarsipan kontrak yang dipindai, atau membangun basis pengetahuan yang dapat dicari—Anda akan membutuhkan ekstraksi teks dari PDF dengan cepat dan dapat diandalkan. + +Berita baiknya? Dengan Aspose OCR untuk Java Anda dapat **run OCR on PDF**, mengenali teks pada halaman PDF, **convert PDF to JSON**, dan bahkan **load PDF for OCR** dalam beberapa baris kode. Dalam tutorial ini kami akan membahas seluruh alur kerja, menjelaskan mengapa setiap langkah penting, dan memberikan contoh kode siap‑jalankan yang dapat Anda masukkan ke dalam proyek Anda. + +## Apa yang Akan Anda Pelajari + +- Cara menyiapkan mesin Aspose OCR dan menerapkan lisensi Anda. +- Cara tepat untuk **load PDF for OCR** dan memasukkannya ke dalam recognizer. +- Bagaimana **recognize text PDF** di semua halaman dalam satu panggilan. +- Mengekspor hasil OCR lengkap ke file **JSON** (sempurna untuk API downstream) dan satu halaman ke **XML**. +- Tips, jebakan, dan variasi yang mungkin Anda perlukan saat menangani PDF multi‑halaman atau paket bahasa khusus. + +> **Prasyarat** – Anda memerlukan Java 8 atau lebih baru, file lisensi Aspose OCR untuk Java yang valid (`Aspose.OCR.Java.lic`), dan JAR Aspose OCR di classpath Anda. Tidak diperlukan pustaka eksternal lainnya. + +--- + +## Cara OCR PDF – Inisialisasi Mesin Aspose OCR + +Hal pertama yang harus Anda lakukan adalah membuat instance `OcrEngine` dan melampirkan lisensi Anda. Langkah ini membuka semua fitur lengkap dan menghapus watermark evaluasi. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Mengapa ini penting:** +Tanpa lisensi, Aspose OCR berjalan dalam mode “trial” terbatas yang membatasi jumlah halaman dan menambahkan watermark pada output. Menerapkan lisensi di awal memastikan seluruh pipeline bekerja tanpa batasan yang tidak terduga. + +--- + +## Jalankan OCR pada PDF – Muat Dokumen dan Kenali Teks + +Sekarang kita **load PDF for OCR**. Aspose OCR memperlakukan PDF sebagai tipe khusus `PdfDocument`, yang secara internal mengekstrak setiap halaman sebagai gambar sebelum memberikannya ke recognizer. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Apa yang terjadi di balik layar?** +`recognizeDocument` mengiterasi setiap halaman, merasternya pada DPI optimal, lalu menjalankan mesin OCR. Hasilnya adalah array `OcrPage` di mana setiap elemen berisi teks yang terdeteksi, skor kepercayaan, dan informasi tata letak. Pendekatan ini jauh lebih dapat diandalkan daripada memberi byte PDF mentah ke perpustakaan OCR umum. + +--- + +## Konversi Hasil OCR ke JSON – Ekspor Laporan Lengkap + +Sebagian besar sistem downstream lebih menyukai JSON karena mudah dideseralisasi di Java, JavaScript, Python, atau bahkan PowerShell. Aspose OCR menyertakan helper `JsonExport` yang menyerialkan seluruh array `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Kapan Anda akan menggunakan ini?** +Jika Anda perlu memasukkan output OCR ke dalam indeks pencarian (Elasticsearch, Solr) atau pipeline data, format JSON memberi representasi terstruktur setiap halaman, baris, dan kata, lengkap dengan nilai kepercayaan. + +--- + +## Ekspor Halaman Pertama ke XML – Simpan Halaman Individual + +Kadang Anda hanya peduli pada satu halaman—mungkin halaman pertama berisi judul atau nomor faktur. Kelas `XmlExport` memungkinkan Anda mengekspor satu `OcrPage` ke file XML yang rapi. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Mengapa XML?** +Sistem legacy atau alur kerja perusahaan tertentu masih mengandalkan skema XML untuk ingest. File yang dihasilkan mengikuti skema milik Aspose, sehingga validasi menjadi sederhana. + +--- + +## Verifikasi Output – Periksa File JSON dan XML + +Setelah program selesai, Anda seharusnya melihat dua file di `YOUR_DIRECTORY`: + +- `report_ocr.json` – Berisi array objek halaman. Cuplikan singkatnya mungkin terlihat seperti: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Menyimpan informasi yang sama untuk halaman 1, dibungkus dalam tag ``. + +Buka keduanya di editor apa pun; Anda akan melihat string OCR mentah, skor kepercayaan, dan koordinat bounding‑box. Jika JSON terlihat kosong, periksa kembali bahwa PDF input memang berisi konten raster (gambar yang dipindai) dan bukan teks yang dapat dipilih—Aspose OCR hanya bekerja pada gambar. + +--- + +## Jebakan Umum & Tips Pro + +| Masalah | Mengapa Terjadi | Solusi | +|---------|----------------|--------| +| **JSON Kosong** | PDF berisi teks native, bukan gambar. | Gunakan `PdfDocument.fromFile(..., true)` untuk memaksa rasterisasi, atau pra‑konversi halaman ke gambar. | +| **Kepercayaan Rendah** | PDF sumber beresolusi rendah atau terlalu terkompresi. | Tingkatkan DPI dengan memanggil `ocrEngine.getImageProcessingOptions().setDpi(300)` sebelum `recognizeDocument`. | +| **Lisensi Tidak Ditemukan** | Path salah atau file hilang. | Gunakan path absolut atau letakkan file `.lic` di classpath dan panggil `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory pada PDF besar** | Semua halaman dimuat ke memori sekaligus. | Proses halaman dalam batch: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Memperluas Contoh + +- **Jalankan OCR pada PDF dengan bahasa tertentu** – set `ocrEngine.getLanguage().setLanguage(Language.English)` atau muat paket bahasa khusus. +- **Ekspor setiap halaman ke file JSON terpisah** – iterasi `ocrPages` dan panggil `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrasikan dengan mesin pencari** – masukkan JSON ke dalam processor `attachment` Elasticsearch untuk pencarian full‑text. + +--- + +## Kesimpulan + +Anda kini memiliki solusi lengkap, siap produksi untuk **bagaimana cara OCR PDF** menggunakan Aspose OCR untuk Java. Dengan menginisialisasi mesin, memuat PDF, menjalankan OCR, dan mengekspor baik **JSON** maupun **XML**, Anda dapat mengintegrasikan OCR ke dalam alur kerja backend apa pun—baik Anda perlu **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, atau sekadar **load PDF for OCR**. + +Cobalah, sesuaikan DPI atau pengaturan bahasa, dan saksikan PDF yang sebelumnya tidak dapat dibaca menjadi aset yang dapat dicari. Ingin melangkah lebih jauh? Coba indeks JSON ke Elasticsearch, atau pasca‑proses XML dengan XSLT untuk menghasilkan laporan khusus. + +Selamat coding, semoga PDF Anda selalu dapat dibaca! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/indonesian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..cbe77985e --- /dev/null +++ b/ocr/indonesian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'cara menjalankan OCR dengan cepat: pelajari cara mengekstrak teks dari + gambar dan mengenali teks dari formulir menggunakan Aspose OCR Java. Langkah sederhana + untuk membaca gambar untuk OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: id +og_description: 'cara menjalankan OCR dengan cepat: pelajari cara mengekstrak teks + dari gambar dan mengenali teks dari formulir menggunakan Aspose OCR Java. langkah + sederhana untuk membaca gambar untuk OCR.' +og_title: cara menjalankan OCR pada formulir – mengekstrak teks dari gambar +tags: +- ocr +- java +- image-processing +title: cara menjalankan OCR pada formulir – mengekstrak teks dari gambar +url: /id/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# cara menjalankan ocr pada formulir – mengekstrak teks dari gambar + +Pernah bertanya-tanya **cara menjalankan ocr** pada dokumen yang dipindai tanpa menghabiskan berjam‑jam bermain‑main dengan perpustakaan yang tidak jelas? Anda tidak sendirian. Dalam banyak proyek—baik itu mendigitalkan faktur, mengarsipkan kontrak, atau mengambil data dari formulir tulisan tangan—kemampuan **mengekstrak teks dari gambar** menjadi titik sakit harian. + +Begini: Aspose OCR untuk Java membuat seluruh alur kerja hampir tanpa rasa sakit. Dalam tutorial ini kami akan menelusuri setiap baris kode yang Anda perlukan untuk **mengenali teks dari formulir**, menjelaskan mengapa setiap langkah penting, dan menunjukkan cara **membaca gambar untuk ocr** dengan skor kepercayaan. Pada akhir tutorial Anda akan memiliki kelas Java siap‑jalankan yang dapat Anda masukkan ke proyek Maven atau Gradle mana pun. + +## Apa yang Akan Anda Pelajari + +- Menyiapkan mesin Aspose OCR dan menerapkan lisensi Anda. +- Memuat JPEG, PNG, atau TIFF ke dalam memori. +- Menjalankan OCR dan mengiterasi setiap baris teks yang dikenali. +- Menemukan baris dengan kepercayaan rendah untuk ditinjau secara manual. +- Memperluas contoh ke PDF multi‑halaman atau format gambar lainnya. + +Tidak diperlukan pengalaman sebelumnya dengan Aspose, cukup lingkungan pengembangan Java dasar (JDK 11+ dan IDE pilihan Anda). Mari kita mulai. + +![how to run ocr example](/images/ocr-demo.png){alt="contoh cara menjalankan ocr pada formulir yang dipindai"} + +## Langkah 1: Inisialisasi Mesin OCR – **cara menjalankan ocr** + +Hal pertama yang harus Anda lakukan sebelum operasi OCR apa pun adalah membuat instance `OcrEngine` dan melampirkan lisensi yang valid. Tanpa lisensi, perpustakaan berjalan dalam mode demo, yang membatasi jumlah halaman yang dapat diproses. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Mengapa ini penting:** +`OcrEngine` menyimpan semua konfigurasi—bahasa, mode deteksi, dan penyesuaian kinerja. Dengan menetapkan lisensi di awal, Anda menghindari fallback diam‑diam ke mode percobaan yang akan memotong output Anda. + +## Langkah 2: Memuat Gambar – **mengekstrak teks dari gambar** + +Selanjutnya kita memerlukan objek `Image` yang menunjuk ke file yang ingin Anda pindai. Aspose mendukung berbagai format, sehingga Anda dapat memasukkan halaman PDF yang sudah dipindai dan dikonversi ke PNG, JPEG mentah, atau bahkan TIFF multi‑halaman. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Mengapa ini penting:** +Memuat gambar sebagai objek `Image` memberi mesin akses ke data piksel, informasi DPI, dan kedalaman warna—semua faktor yang memengaruhi akurasi OCR. Jika Anda melewatkan langkah ini dan langsung memberikan array byte mentah, Anda akan kehilangan petunjuk berguna tersebut. + +## Langkah 3: Menjalankan OCR – **mengenali teks dari formulir** + +Sekarang bagian yang menyenangkan: benar‑benarnya mengenali karakter. Metode `recognize` mengembalikan `RecognitionResult` yang berisi koleksi objek `Line`, masing‑masing dengan skor kepercayaan sendiri. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Mengapa ini penting:** +Memanggil `recognize` memicu rangkaian proses internal—pra‑pemrosesan (deskew, penghilangan noise), segmentasi, klasifikasi karakter, dan pasca‑pemrosesan (pemeriksaan ejaan, model bahasa). Objek hasil menyederhanakan semua kompleksitas itu. + +## Langkah 4: Memproses Hasil – **membaca gambar untuk ocr** output + +Setelah Anda memiliki `RecognitionResult`, Anda dapat mengiterasi setiap baris, memutuskan apa yang disimpan secara otomatis, dan menandai apa pun yang tampak tidak pasti. Ambang kepercayaan 85 % adalah titik awal yang baik untuk kebanyakan formulir cetak. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Output yang diharapkan (contoh):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +Pada contoh di atas mesin tidak yakin tentang digit terakhir dari total jumlah, sehingga kami mencetak peringatan. Anda dapat mengalirkan baris‑baris tersebut ke UI untuk koreksi manual atau mencatatnya untuk ditinjau nanti. + +### Kasus Tepi & Tips + +- **Beberapa halaman:** Jika Anda memiliki PDF multi‑halaman, lakukan loop pada setiap indeks halaman dan panggil `Image.fromPdf(pdfPath, pageIndex)`. +- **Berbagai bahasa:** Tetapkan `engine.getLanguage().setLanguage(Language.Spanish);` sebelum memanggil `recognize`. +- **Kualitas gambar:** Pemindaian beresolusi rendah (< 150 DPI) sering menghasilkan kepercayaan di bawah 80 %. Upscaling dengan `image.resize(300, 300)` dapat membantu, tetapi perbaikan terbaik adalah pemindaian yang lebih baik. +- **Kinerja:** Menggunakan kembali instance `OcrEngine` yang sama untuk banyak gambar mengurangi overhead dibandingkan membuat yang baru setiap kali. + +## Pertanyaan yang Sering Diajukan + +**Apakah saya dapat menjalankannya di server tanpa tampilan (headless)?** +Tentu saja. Perpustakaan tidak memiliki ketergantungan GUI, sehingga berjalan baik di dalam kontainer Docker atau pipeline CI. + +**Bagaimana jika saya belum memiliki lisensi?** +Anda masih dapat memanggil `engine.recognize`, tetapi mode demo akan berhenti setelah 2 halaman pertama dan menambahkan watermark pada output. Ini cocok untuk percobaan cepat. + +**Apakah ada cara mengekstrak data terstruktur (misalnya tabel)?** +Aspose OCR menyediakan kelas `TableRecognizer`, tetapi itu berada di luar cakupan panduan pemula ini. Setelah Anda menguasai dasar‑dasarnya, lihat dokumentasi resmi untuk `TableRecognizer`. + +## Menyimpulkan Semua – **cara menjalankan ocr** secara singkat + +Kami telah membahas semua yang Anda perlukan untuk **cara menjalankan ocr** pada formulir yang dipindai: inisialisasi mesin, memuat gambar, mengeksekusi pengenalan, dan menangani hasil secara cerdas. Dengan hanya beberapa baris Java, Anda dapat **mengekstrak teks dari gambar**, **mengenali teks dari formulir**, dan **membaca gambar untuk ocr** dengan skor kepercayaan yang memungkinkan Anda memutuskan kapan tinjauan manusia diperlukan. + +Langkah selanjutnya? Coba ganti JPEG dengan TIFF multi‑halaman, bereksperimen dengan ambang kepercayaan yang berbeda, atau integrasikan output ke basis data untuk entri data otomatis. Kemungkinannya seluas dokumen yang harus Anda proses. + +Ada pertanyaan lebih lanjut tentang OCR, pra‑pemrosesan gambar, atau lisensi? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/indonesian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..b7df76bf8 --- /dev/null +++ b/ocr/indonesian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-05-03 +description: Cara menggunakan OCR untuk mengekstrak teks dari file PDF di Java. Pelajari + cara mengenali teks dari PDF, mengonversi PDF ke teks, dan menangani OCR PDF multi + halaman secara efisien. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: id +og_description: Cara menggunakan OCR untuk mengekstrak teks dari file PDF di Java. + Panduan ini menunjukkan cara mengenali teks dari PDF, mengonversi PDF ke teks, dan + memproses OCR pada PDF multi halaman. +og_title: Cara Menggunakan OCR di Java – Ekstrak Teks dari PDF Multi‑Halaman +tags: +- ocr +- java +- pdf +- aspose +title: Cara Menggunakan OCR di Java – Ekstrak Teks dari PDF Multi‑Halaman +url: /id/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menggunakan OCR di Java – Ekstrak Teks dari PDF Multi‑Halaman + +**Bagaimana cara menggunakan OCR** dalam proyek Java? Jika Anda pernah perlu mengekstrak teks dari file PDF tanpa mengandalkan lapisan teks internal PDF, Anda berada di tempat yang tepat. Tutorial ini memandu Anda melalui solusi lengkap yang dapat dijalankan yang **mengenali teks dari PDF**, mengonversi PDF ke teks, dan bahkan menangani **PDF multi halaman dengan OCR** dalam satu panggilan. + +Bayangkan Anda menerima kontrak yang dipindai — sebuah TIFF 12‑halaman di dalam PDF. Anda menginginkan teks yang dapat dicari untuk pengindeksan, tetapi file tersebut tidak memiliki karakter yang disematkan. Tidak masalah; kami akan menunjukkan cara melakukannya, langkah demi langkah. + +> **Apa yang akan Anda dapatkan:** potongan kode Java siap‑jalankan menggunakan Aspose.OCR, penjelasan mengapa setiap baris penting, tips untuk jebakan umum, dan contoh output yang dapat Anda verifikasi secara instan. + +--- + +## Apa yang Anda Butuhkan + +Sebelum kita mulai, pastikan Anda memiliki: + +* **Java 17** (atau JDK terbaru lainnya) – kode ini bekerja dengan versi lebih lama juga, tetapi 17 adalah pilihan yang tepat. +* **Aspose OCR for Java** library – Anda dapat mengunduh JAR dari situs Aspose atau menambahkannya melalui Maven/Gradle. +* Sebuah **PDF multi‑halaman** (atau TIFF) yang ingin Anda proses. Dalam contoh kami akan menggunakan `contract_multipage.pdf` yang ditempatkan di folder bernama `YOUR_DIRECTORY`. +* File lisensi **Aspose OCR** yang valid (`Aspose.OCR.Java.lic`). Tanpa itu library berjalan dalam mode evaluasi, yang cukup untuk pengujian cepat tetapi akan menambahkan watermark. + +Itu saja—tidak ada mesin OCR tambahan, tidak ada binary native, hanya satu JAR dan lisensi. + +--- + +![contoh cara menggunakan ocr](https://example.com/ocr-demo.png "Cara menggunakan OCR di Java – gambaran visual prosesnya") + +*Teks alt gambar: cara menggunakan OCR di Java – gambaran visual pemuatan, pengenalan, dan output teks.* + +--- + +## Langkah 1: Siapkan Mesin OCR – **Cara Menggunakan OCR** dengan Benar + +Hal pertama yang harus Anda lakukan adalah membuat instance mesin OCR dan menerapkan lisensi Anda. Tanpa lisensi mesin tetap akan berfungsi, tetapi Anda akan melihat watermark percobaan pada output. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Mengapa ini penting:** +`OcrEngine` adalah objek inti yang mengatur analisis gambar, deteksi bahasa, dan ekstraksi teks. Menetapkan lisensi lebih awal mencegah mesin kembali ke mode percobaan nanti, yang dapat memengaruhi akurasi. + +--- + +## Langkah 2: Muat Dokumen – **Ekstrak Teks dari PDF** secara Efisien + +Aspose OCR dapat membaca langsung kontainer PDF dan TIFF. Di sini kami memuat PDF multi‑halaman yang berisi gambar yang dipindai. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Mengapa ini penting:** +`PdfDocument.fromFile` mengurai kontainer dan memberi Anda akses ke setiap halaman sebagai gambar. Abstraksi ini memungkinkan mesin OCR memperlakukan setiap halaman secara seragam, terlepas dari format aslinya. + +**Tip:** Jika file sumber Anda adalah TIFF, panggilan yang sama bekerja—Aspose secara otomatis mendeteksi formatnya. Tidak diperlukan kode tambahan. + +--- + +## Langkah 3: Kenali Semua Halaman Sekaligus – **Kenali Teks dari PDF** dengan Mulus + +Alih-alih melakukan loop pada halaman secara manual, Anda dapat meminta mesin untuk memproses seluruh dokumen dalam satu panggilan. Ini adalah cara paling efisien untuk **mengonversi PDF ke teks** ketika menangani **PDF multi halaman dengan OCR**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Mengapa ini penting:** +Memanggil `recognizeDocument` sekali mengurangi overhead yang disebabkan oleh inisialisasi mesin berulang kali. Ini juga menjamin pengaturan bahasa yang konsisten di seluruh halaman, yang penting untuk dokumen hukum yang sering mencampur jenis huruf. + +--- + +## Langkah 4: Output Teks yang Dikenali – **Konversi PDF ke Teks** untuk Pengindeksan + +Sekarang semua halaman telah diproses, kami cukup mengiterasi hasil dan mencetak string yang diekstrak. Anda juga dapat menuliskannya ke file, basis data, atau memasukkannya ke indeks pencarian. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Output yang diharapkan (dipotong):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Jika PDF berisi 12 halaman, Anda akan melihat dua belas bagian `--- Page X ---`, masing‑masing diikuti oleh teks yang diekstrak oleh OCR. + +--- + +## Tips Lanjutan untuk **PDF Multi Halaman dengan OCR** + +### 1. Sesuaikan Pengaturan Bahasa + +Secara default Aspose mencoba mendeteksi bahasa secara otomatis, tetapi Anda dapat mempercepat proses dengan menyebutkannya: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Kontrol Pra‑Pemrosesan Gambar + +Kontrak yang dipindai sering memiliki noise. Anda dapat mengaktifkan deskewing dan binarisasi: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Tangani File Besar dengan Elegan + +Jika Anda memproses PDF yang lebih besar dari 100 MB, pertimbangkan untuk streaming halaman alih-alih memuat seluruh dokumen sekaligus: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Pola ini mengurangi tekanan memori dan berguna untuk pekerjaan batch. + +### 4. Ekspor ke Format Terstruktur + +Selain teks biasa, Anda dapat mengekspor ke JSON atau XML untuk pemrosesan selanjutnya: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Kesalahan Umum & Cara Menghindarinya + +| Masalah | Mengapa Terjadi | Solusi | +|---------|----------------|--------| +| **Output kosong** | Lisensi tidak diterapkan atau jalur file salah. | Verifikasi jalur `setLicense` dan pastikan file ada. | +| **Karakter sampah** | Pengaturan bahasa salah atau sumber beresolusi rendah. | Atur `Language` yang benar dan pastikan gambar sumber ≥300 dpi. | +| **Kesalahan kehabisan memori** | Memuat PDF besar sekaligus. | Gunakan pendekatan streaming yang ditunjukkan di atas. | +| **Pengakuan halaman parsial** | PDF berisi lapisan raster/vektor campuran. | Flatten PDF terlebih dahulu: `pdfDoc.flatten();` sebelum OCR. | + +--- + +## Ringkasan – Apa yang Telah Dibahas + +* **Cara menggunakan OCR** dengan Aspose di Java. +* **Ekstrak teks dari PDF** (atau TIFF) dalam satu panggilan. +* **Kenali teks dari PDF** di semua halaman tanpa loop manual. +* **Konversi PDF ke teks** dan output dengan bersih. +* Tips untuk menangani **PDF multi halaman dengan OCR**, termasuk penyesuaian bahasa dan streaming yang ramah memori. + +Anda kini memiliki potongan kode lengkap yang siap produksi yang dapat Anda masukkan ke proyek Java mana pun. Jangan ragu untuk menyesuaikan opsi pemrosesan gambar, mengganti tujuan output, atau mengintegrasikan hasil ke indeks pencarian. + +--- + +## Langkah Selanjutnya + +* **Jelajahi fitur lanjutan Aspose OCR** – seperti pengenalan tulisan tangan atau kepatuhan PDF/A. +* **Gabungkan OCR dengan manipulasi PDF** (mis., tambahkan lapisan teks tersembunyi kembali ke PDF untuk PDF yang dapat dicari). +* **Otomatisasi pemrosesan batch** dengan membaca folder PDF dan menuliskan setiap hasil ke file `.txt` yang bersesuaian. + +Jika Anda mengalami kendala, forum Aspose adalah tempat yang bagus untuk meminta bantuan, dan referensi API menyediakan detail lengkap tentang setiap metode yang digunakan di sini. + +Selamat coding, dan nikmati mengubah pemindaian yang membandel menjadi teks 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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/indonesian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..f93621ad0 --- /dev/null +++ b/ocr/indonesian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-05-03 +description: Baca file biner Java untuk memuat lisensi Aspose OCR. Pelajari penggunaan + FileInputStream, penanganan data biner, dan tips praktis dalam panduan langkah demi + langkah ini. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: id +og_description: Baca file biner Java untuk memuat lisensi Aspose OCR. Ikuti panduan + lengkap ini untuk menguasai FileInputStream dan penanganan data biner di Java. +og_title: Baca File Biner Java – Muat Byte Lisensi untuk Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Baca File Biner Java – Muat Byte Lisensi untuk Aspose OCR +url: /id/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Baca File Biner Java – Muat Byte Lisensi untuk Aspose OCR + +Pernah perlu **read binary file Java** saat menangani lisensi untuk perpustakaan pihak ketiga? Anda tidak sendirian. Kebanyakan pengembang Java mengalami masalah ini ketika mereka mencoba memasukkan file `.lic` ke dalam mesin OCR, dan trik file teks biasa tidak cukup. + +Di tutorial ini kami akan membahas contoh lengkap yang dapat dijalankan yang menunjukkan secara tepat cara membuka file lisensi biner, mengambil byte-nya ke memori, dan memberikan byte tersebut ke Aspose OCR untuk Java. Sepanjang jalan Anda akan melihat mengapa `FileInputStream` adalah alat yang tepat, cara menangani kemungkinan `IOException`, dan beberapa tip profesional yang mungkin tidak Anda temukan di dokumentasi resmi. + +Pada akhir panduan Anda akan dapat **read binary file Java** dengan gaya, membuat objek `License`, dan menetapkannya ke `OcrEngine` tanpa kesulitan. + +## Apa yang Dibahas dalam Panduan Ini + +- Prasyarat: Java 17+, Maven (atau Gradle), dan perpustakaan Aspose OCR untuk Java. +- Kode langkah‑demi‑langkah yang membaca file `.lic` biner menggunakan `FileInputStream`. +- Penjelasan setiap baris sehingga Anda memahami *mengapa* di balik *bagaimana*. +- Penanganan kasus tepi (file tidak ada, byte rusak) dan tip debugging praktis. +- Potongan kode akhir yang mandiri yang dapat Anda salin‑tempel ke IDE dan jalankan langsung. + +Jika Anda pernah bertanya-tanya apakah Anda memerlukan API khusus untuk membaca file lisensi, jawabannya adalah **tidak**—hanya I/O biner klasik. Mari kita mulai. + +## Langkah 1: Baca File Biner Java dengan FileInputStream + +Hal pertama yang kita butuhkan adalah cara yang dapat diandalkan untuk mengambil byte mentah dari file lisensi di disk. Di Java, `FileInputStream` adalah alat utama untuk itu. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Mengapa ini berhasil:** `Files.readAllBytes` secara internal membuat `FileInputStream`, membaca seluruh aliran, dan menutupnya untuk Anda. Ini aman, ringkas, dan menghindari jebakan klasik “lupa menutup aliran”. Jika Anda lebih suka pola klasik, Anda dapat menggantinya dengan blok try‑with‑resources yang menggunakan `FileInputStream` secara langsung. + +### Tip Pro + +Jika file lisensi sangat besar (tidak mungkin, tapi mungkin), pertimbangkan untuk men-stream dalam potongan alih-alih memuat semuanya sekaligus. Untuk kebanyakan file lisensi OCR—biasanya di bawah beberapa kilobyte—pendekatan satu kali sudah cukup baik. + +## Langkah 2: Buat Objek License untuk Aspose OCR + +Sekarang setelah kita memiliki byte mentah, kita perlu mengubahnya menjadi instance `License` yang kompatibel dengan Aspose. Perpustakaan menyediakan kelas `License` yang menerima array byte. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Mengapa ini penting:** Dengan memberikan byte secara langsung, Anda menghindari masalah terkait jalur (seperti kebingungan relatif‑ke‑direktori‑kerja) dan menjaga penyebaran Anda tetap portabel—cukup bundel file `.lic` di mana pun aplikasi Anda dijalankan. + +## Langkah 3: Tetapkan License ke OCR Engine + +Dengan objek `License` siap, langkah terakhir adalah menempelkannya ke `OcrEngine`. Langkah ini memastikan komponen OCR berjalan dalam mode berlisensi bukan sandbox evaluasi. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Catatan:** Beberapa versi Aspose yang lebih lama mengekspos field publik `license` alih-alih setter. Sesuaikan kode sesuai (`ocrEngine.license = license;`) jika Anda menemui error kompilasi. + +## Langkah 4: Verifikasi License Berhasil Dimuat (Opsional namun Membantu) + +Pemeriksaan cepat dapat menghemat jam debugging di kemudian hari. Kelas `License` tidak melempar error pada keberhasilan, tetapi Anda dapat mencoba operasi OCR yang tidak berbahaya untuk mengonfirmasi. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Jika Anda melihat pesan “License applied successfully”, Anda siap melanjutkan. Jika tidak, periksa kembali jalur file, integritas byte, dan pastikan Anda menggunakan versi Aspose yang tepat. + +## Contoh Lengkap yang Berfungsi + +Menggabungkan semua bagian menghasilkan program yang ringkas dan siap disalin‑tempel. Silakan letakkan ini ke dalam file `Main.java` dan jalankan. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Output yang diharapkan (asumsi gambar dummy ada):** + +``` +License applied successfully – OCR engine is ready. +``` + +Jika file lisensi tidak ada atau rusak, Anda akan melihat pesan error yang jelas seperti: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Kesalahan Umum & Cara Menghindarinya + +- **Kebingungan jalur:** Jalur relatif diselesaikan terhadap direktori kerja JVM, bukan lokasi file sumber. Gunakan jalur absolut atau letakkan file `.lic` di samping JAR dan referensikan dengan `getResourceAsStream`. +- **Urutan byte salah:** Jangan pernah mencoba membaca file biner dengan `Reader` (berorientasi karakter). Itu akan merusak data. Gunakan API berbasis `FileInputStream`. +- **Versi tidak cocok:** Beberapa rilis Aspose yang lebih lama mengharapkan `license.setLicense("path/to/file")` alih-alih `setLicenseBytes`. Periksa catatan rilis perpustakaan jika Anda menemukan `NoSuchMethodError`. +- **Lupa menutup aliran:** Jika Anda kembali ke pendekatan klasik `FileInputStream`, bungkus dalam blok try‑with‑resources untuk menjamin penutupan. + +## Kesimpulan + +Anda sekarang tahu cara **read binary file Java** untuk memuat lisensi Aspose OCR, membuat objek `License`, dan menghubungkannya ke `OcrEngine`. Proses ini bergantung pada penanganan data biner yang tepat dengan `FileInputStream` (atau `Files.readAllBytes` yang lebih modern), serta beberapa pemanggilan API yang sederhana. + +Dari sini Anda dapat melanjutkan ke tugas OCR sebenarnya—mengekstrak teks dari PDF, gambar, atau bahkan dokumen yang dipindai—dengan yakin bahwa lapisan lisensi tidak akan menghalangi Anda. Jika Anda penasaran dengan topik terkait, lihat tutorial tentang **Java FileInputStream**, **binary data handling Java**, dan **read license file Java** untuk perpustakaan lain. + +Selamat coding, semoga hasil OCR Anda jernih seperti kristal! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/indonesian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..b77b298b5 --- /dev/null +++ b/ocr/indonesian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Pelajari cara mengenali teks dari gambar dan mengonversi gambar menjadi + teks menggunakan Aspose OCR untuk Java. Termasuk tips untuk meningkatkan akurasi + OCR dan menjalankan OCR pada file PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: id +og_description: Panduan langkah demi langkah untuk mengenali teks dari gambar menggunakan + Aspose OCR untuk Java. Pelajari cara mengonversi gambar menjadi teks, meningkatkan + akurasi OCR, dan menjalankan OCR pada PNG. +og_title: Mengenali teks dari gambar dengan Aspose OCR – Tutorial Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Mengenali teks dari gambar dengan Aspose OCR – Panduan Lengkap Java +url: /id/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# mengenali teks dari gambar dengan Aspose OCR – Panduan Lengkap Java + +Pernah perlu **mengenali teks dari gambar** tetapi tidak yakin pustaka mana yang akan memberikan hasil yang dapat diandalkan? Anda tidak sendirian—banyak pengembang mengalami kebuntuan saat pertama kali mencoba mengekstrak data dari PDF yang dipindai, kwitansi, atau laporan laboratorium. Kabar baiknya, Aspose OCR untuk Java membuat seluruh proses menjadi sangat mudah, dan Anda bahkan dapat **mengonversi gambar ke teks** hanya dengan beberapa baris kode. + +Dalam tutorial ini kami akan membahas semua yang perlu Anda ketahui: mulai dari memuat gambar untuk OCR, menyesuaikan pengaturan untuk **meningkatkan akurasi OCR**, hingga akhirnya **menjalankan OCR pada PNG** dan mencetak teks yang diekstrak. Tanpa basa‑basi, hanya contoh praktis yang dapat langsung dijalankan dalam proyek Anda hari ini. + +--- + +## Apa yang Anda Butuhkan + +Sebelum kita mulai, pastikan Anda memiliki hal‑hal berikut di mesin Anda: + +| Prasyarat | Alasan | +|--------------|--------| +| Java 17 (atau lebih baru) | Aspose OCR mendukung Java 8+, tetapi JDK terbaru memberikan kinerja yang lebih baik. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | Mesin inti yang melakukan semua pekerjaan berat. | +| File lisensi Aspose OCR yang valid (`Aspose.OCR.Java.lic`) | Mengaktifkan semua fitur; jika tidak, Anda akan mendapatkan watermark percobaan. | +| File gambar (PNG, JPEG, TIFF, dll.) yang berisi teks jelas | Kami akan menggunakan `lab_report.png` sebagai contoh konkret. | +| Kamus khusus (opsional) | Meningkatkan pengenalan untuk istilah khusus domain seperti “hemoglobin”. | + +Jika ada yang terdengar asing, jangan panik—menginstal JAR dan membuat file teks sederhana adalah tugas trivial yang akan kami bahas sebentar lagi. + +--- + +## Langkah 1 – Siapkan Proyek dan Impor Dependensi + +Pertama, buat proyek Maven (atau Gradle) baru dan tambahkan dependensi Aspose OCR. Pengguna Maven dapat menempelkan cuplikan ini ke dalam `pom.xml` mereka: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Jika Anda lebih suka Gradle, setaraannya adalah: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** Perhatikan nomor versi; rilis terbaru sering berisi perbaikan bug yang secara langsung memengaruhi **meningkatkan akurasi OCR**. + +Sekarang, buat kelas Java bernama `OcrDemo.java`. Di bagian atas file, impor kelas‑kelas yang diperlukan: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Langkah 2 – Inisialisasi Mesin OCR dan Terapkan Lisensi Anda + +Anda tidak dapat **menjalankan OCR pada PNG** tanpa terlebih dahulu memberi tahu mesin bahwa ia telah dilisensikan. Begini caranya: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Mengapa perlu objek `License` tambahan? Aspose memisahkan penanganan lisensi dari mesin agar Anda dapat mengganti lisensi secara dinamis, yang berguna dalam skenario SaaS multi‑tenant. + +--- + +## Langkah 3 – Muat Kamus Khusus (Opsional namun Kuat) + +Jika Anda berurusan dengan terminologi medis, formula kimia, atau nama merek, kamus khusus dapat **meningkatkan akurasi OCR** secara dramatis. Kamus tersebut adalah file teks biasa dengan satu kata per baris: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Mengapa ini berhasil:** Mesin OCR menggunakan kamus untuk memihak model bahasa ke kata‑kata yang Anda butuhkan, mengurangi kesalahan pengenalan seperti “hemo­globin” → “hemoglobin”. + +Jika Anda tidak memiliki kamus, cukup lewati baris ini—Aspose tetap bekerja dengan baik menggunakan paket bahasa bawaan. + +--- + +## Langkah 4 – Muat Gambar yang Ingin Diproses + +Sekarang kita benar‑benar **memuat gambar untuk OCR**. Aspose mendukung banyak format, tetapi PNG khususnya lossless, menjadikannya pilihan aman untuk dokumen yang dipindai. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Kasus khusus:** Jika gambar Anda sangat besar (lebih dari 5 MB), pertimbangkan untuk memperkecilnya terlebih dahulu agar pemrosesan lebih cepat. Kelas `Image` menyediakan metode `resize` yang dapat dipanggil sebelum pengenalan. + +--- + +## Langkah 5 – Jalankan Proses OCR dan Dapatkan Teksnya + +Setelah semuanya siap, jalankan mesin OCR. Metode `recognize` mengembalikan objek `OcrResult` yang berisi string hasil ekstraksi, skor kepercayaan, dan bahkan kotak pembatas jika Anda memerlukan informasi tata letak. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Saat Anda menjalankan program, Anda akan melihat sesuatu seperti ini: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Itu saja—Anda telah berhasil **mengenali teks dari gambar** dan **mengonversi gambar ke teks** menggunakan Aspose OCR. + +--- + +## Langkah 6 – Masalah Umum dan Cara Mengatasinya + +Meskipun menggunakan pustaka yang solid, beberapa kendala kecil dapat menghambat Anda: + +| Gejala | Penyebab Kemungkinan | Solusi | +|---------|----------------------|--------| +| Output kosong | Lisensi tidak diterapkan atau sudah kedaluwarsa | Periksa jalur ke `Aspose.OCR.Java.lic` dan pastikan cocok dengan versi. | +| Karakter kacau | Gambar beresolusi rendah atau terlalu terkompresi | Gunakan sumber beresolusi lebih tinggi atau pra‑proses gambar (binarisasi, deskew). | +| Kata‑kata domain tidak muncul | Tidak ada kamus khusus | Tambahkan file kamus dengan istilah yang hilang, satu per baris. | +| Pemrosesan lambat pada batch besar | Tidak ada multithreading | Buat pool instance `OcrEngine` (aman untuk thread) dan proses gambar secara paralel. | + +--- + +## Langkah 7 – Memperluas Contoh: Menyimpan Hasil ke File + +Jika Anda perlu menyimpan teks yang diekstrak untuk analisis selanjutnya, cukup tulis ke file: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Sekarang Anda memiliki pipeline yang dapat digunakan kembali yang **memuat gambar untuk OCR**, mengekstrak kontennya, dan menyimpannya ke mana pun Anda inginkan. + +--- + +## Bonus: Menjalankan OCR pada Banyak File PNG dalam Folder + +Proyek dunia nyata sering harus memproses puluhan pemindaian. Berikut loop singkat yang mengambil setiap `.png` dalam sebuah direktori: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Ingat untuk menggunakan kembali instance `ocrEngine` yang sama—membuat yang baru untuk setiap file menambah beban yang tidak perlu. + +--- + +## Kesimpulan + +Anda kini memiliki solusi lengkap, end‑to‑end yang **mengenali teks dari gambar** menggunakan Aspose OCR untuk Java. Mulai dari memuat gambar, secara opsional memperkaya mesin dengan kamus khusus untuk **meningkatkan akurasi OCR**, hingga **menjalankan OCR pada PNG** dan menyimpan output, kode ini siap disisipkan ke dalam proyek Java mana pun. + +Apa selanjutnya? Cobalah mengalirkan teks yang diekstrak ke pipeline pemrosesan bahasa alami, atau bereksperimen dengan OCR pada catatan tulisan tangan (Aspose juga menyediakan mode tulisan tangan). Kemungkinannya tak terbatas, dan Anda baru saja membuka langkah pertama. + +Selamat coding! Jika Anda mengalami kendala, silakan tinggalkan komentar di bawah—mari kita selesaikan bersama. + +![Screenshot hasil OCR di konsol – mengenali teks dari gambar](/images/ocr_console_result.png "contoh mengenali teks dari gambar") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/italian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..d2e0a11a7 --- /dev/null +++ b/ocr/italian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Estrai tabelle da un'immagine usando Aspose OCR Java. Impara a caricare + l'immagine per l'OCR, estrarre la tabella da un PNG, convertire il testo della tabella + dell'immagine e riconoscere rapidamente l'immagine di una ricevuta. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: it +og_description: Estrai tabelle da un'immagine con Aspose OCR Java. Questa guida mostra + come caricare l'immagine per l'OCR, estrarre la tabella da un PNG, convertire il + testo della tabella dell'immagine e riconoscere l'immagine della ricevuta. +og_title: Estrai tabelle dall'immagine – Tutorial Java OCR di Aspose +tags: +- Aspose OCR +- Java +- Image Processing +title: Estrai tabelle dall'immagine – Guida completa Aspose OCR Java +url: /it/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Estrai tabelle da immagine – Guida completa Aspose OCR Java + +Ti è mai capitato di dover **estrarre tabelle da immagine** ma di scontrarti con un ostacolo? Forse hai una ricevuta scansionata o una fattura fotografata e i dati tabulari sono sepolti in un PNG. In questo tutorial vedrai esattamente come *caricare immagine per OCR*, trasformare quell’immagine in righe strutturate e **convertire il testo della tabella dell'immagine** in qualcosa con cui puoi lavorare in Java. + +Passeremo in rassegna ogni passaggio, dalla licenza del motore Aspose OCR alla stampa di ogni cella delle tabelle rilevate. Alla fine sarai in grado di **riconoscere immagini di ricevute** e estrarre le loro tabelle senza alcuno sforzo. + +## Cosa imparerai + +- Come inizializzare il motore Aspose OCR e applicare la tua licenza. +- Perché abilitare il rilevamento delle tabelle è la chiave per **estrarre tabelle da immagine**. +- Il codice esatto necessario per **caricare immagine per OCR** ed eseguire il riconoscimento su un PNG. +- Modi per gestire tabelle multiple, scansioni a bassa risoluzione e problemi comuni. +- Come **convertire il testo della tabella dell’immagine** in un formato stampabile (o pronto per il database). + +Nessuna documentazione esterna necessaria—tutto ciò che ti serve è qui. + +## Prerequisiti + +- Java 17 o superiore (il codice utilizza il moderno sistema di moduli). +- Un file di licenza Aspose OCR per Java (`Aspose.OCR.Java.lic`). Se stai solo sperimentando, anche una chiave di valutazione temporanea funziona. +- Un’immagine PNG che contiene una tabella chiara (ad es., `receipt_with_table.png`). +- Maven o Gradle per scaricare la dipendenza Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Consiglio professionale:** Mantieni il file di licenza accanto alla cartella `src/main/resources` in modo che il percorso rimanga stabile tra gli ambienti. + +--- + +## Passo 1 – Inizializza il motore OCR per **estrarre tabelle da immagine** + +Prima che il motore possa fare qualcosa, deve sapere che sei un utente legittimo. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Perché è importante:* Senza una licenza valida il motore OCR funziona in modalità di prova, il che può troncare i risultati o aggiungere filigrane indesiderate—rendendo l'estrazione delle tabelle inaffidabile. + +--- + +## Passo 2 – Abilita il rilevamento delle tabelle (**estrarre tabella da png**) + +Il rilevamento delle tabelle non è attivo per impostazione predefinita; devi attivarlo. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Abilitare questo flag indica ad Aspose OCR di trattare gruppi di testo allineato come righe e colonne, che è esattamente ciò di cui hai bisogno quando vuoi **estrarre tabelle da immagine** in file PNG. + +--- + +## Passo 3 – **Caricare immagine per OCR** e **riconoscere immagine di ricevuta** + +Ora carichiamo effettivamente l’immagine nel motore. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Se ti trovi in uno scenario di **riconoscere immagine di ricevuta**, potresti voler pre‑processare l’immagine (raddrizzare, aumentare il contrasto). Questo è al di fuori dello scopo di questa breve guida, ma vale la pena esplorarlo per scansioni rumorose. + +--- + +## Passo 4 – Elabora il risultato OCR e **converti il testo della tabella dell’immagine** + +L'oggetto `OcrResult` può contenere una o più tabelle. Iteriamo su di esse e stampiamo ogni cella. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Cosa fa:** + +- Verifica se sono state trovate tabelle; in caso contrario, suggerisce una regolazione della qualità. +- Per ogni tabella, stampa le righe con celle separate da tabulazioni, un formato comodo per le importazioni CSV. +- La chiamata `Cell::getText` è il cuore di **convertire il testo della tabella dell’immagine** – estrae la stringa OCR grezza da ogni cella. + +### Output previsto + +Assumendo che `receipt_with_table.png` contenga una semplice tabella 3 × 2, vedrai qualcosa del genere: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Se l’immagine contiene più tabelle, ciascuna sarà separata da una riga vuota. + +--- + +## Passo 5 – Verifica le tabelle estratte e gestisci i casi limite + +### Problemi comuni + +| Problema | Perché succede | Soluzione rapida | +|----------|----------------|------------------| +| **Nessuna tabella rilevata** | Immagine troppo sfocata o a basso contrasto | Applicare la binarizzazione (`ImageProcessing.applyThreshold`) prima di OCR | +| **Celle unite** | Le linee della tabella sono deboli, OCR le tratta come un unico blocco | Aumentare `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Ordine colonne errato** | Immagine inclinata che causa disallineamento | Usare `ImageProcessing.deskew` o ruotare l’immagine di 90° | + +### Cosa fare dopo + +- **Esporta in CSV** – sostituisci `System.out.println(line);` con un `FileWriter` per salvare i dati. +- **Inserisci in un database** – mappa ogni riga a un POJO e usa JPA per la persistenza. +- **Combina con altre API** – per l’elaborazione delle ricevute potresti anche estrarre i totali usando espressioni regolari sul testo OCR. + +--- + +## Esempio completo funzionante (pronto per copia‑incolla) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Esegui questo programma, puntalo a un PNG che contiene una tabella chiara, e osserva la console riempirsi di righe formattate ordinatamente. + +--- + +## Conclusione + +Ora disponi di una soluzione solida, end‑to‑end, per **estrarre tabelle da immagine** usando Aspose OCR per Java. Dalla licenza a **caricare immagine per OCR**, abilitando **estrarre tabella da png**, e infine **convertire il testo della tabella dell’immagine**, ogni passaggio è coperto da spiegazioni e consigli pratici. + +Successivamente, prova a concatenare l’output in un file CSV, inserire le righe in un database relazionale, o combinare il passaggio OCR con una routine di estrazione del totale della ricevuta. Lo stesso schema funziona per fatture, listini prezzi e qualsiasi documento scansionato che nasconde dati dietro una griglia. + +Hai domande su come gestire ricevute a bassa risoluzione o scalare questo a elaborazioni batch? Lascia un commento qui sotto, e buona programmazione! + +![Esempio di estrazione tabelle da immagine](https://example.com/assets/extract-tables-from-image.png "Estrai tabelle da immagine – output di esempio") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/italian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..6b73aecc9 --- /dev/null +++ b/ocr/italian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Estrai testo da un'immagine con Python usando Aspose OCR. Impara un tutorial + passo‑passo di OCR in Python con supporto misto latino‑cirillico. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: it +og_description: Estrai rapidamente il testo da un'immagine con Python. Questa guida + mostra come utilizzare Aspose OCR in Python per immagini miste Latino‑Cirillico. +og_title: Estrai testo da immagine con Python – Guida completa all'OCR di Aspose +tags: +- OCR +- Python +- Aspose +title: Estrai testo da immagine con Python – Guida completa a Aspose OCR +url: /it/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Estrai testo da immagine Python – Guida completa Aspose OCR + +Hai mai avuto bisogno di **extract text from image python** ma non eri sicuro quale libreria potesse gestire un mix di caratteri latini e cirillici? Non sei l'unico—gli sviluppatori si imbattono costantemente in questo problema quando fanno OCR su screenshot multilingue. + +La buona notizia è che Aspose OCR per Python rende l'intero processo quasi indolore. In questo tutorial vedremo come installare il pacchetto, applicare la licenza, caricare un'immagine multilingue e infine estrarre il testo riconosciuto in poche righe di codice. Alla fine avrai uno script pronto all'uso da inserire in qualsiasi progetto. + +## Cosa imparerai + +- Come configurare **Aspose OCR Python** in un ambiente virtuale. +- Perché indicare le lingue (come Latino e Cirillico) velocizza il rilevamento. +- Il codice esatto necessario per **extract text from image python** con una singola chiamata di funzione. +- Problemi comuni quando si lavora con OCR multilingue e come evitarli. + +### Prerequisiti + +- Python 3.8 o versioni successive installato sulla tua macchina. +- Un file di licenza Aspose OCR (`Aspose.OCR.Java.lic`). La versione di prova gratuita funziona per i test, ma un file con licenza rimuove le filigrane. +- Un'immagine PNG/JPEG che contiene sia caratteri latini che cirillici (la chiameremo `mixed_latin_cyrillic.png`). + +Se hai spuntato queste caselle, sei pronto per partire—non servono framework aggiuntivi né dipendenze pesanti. + +--- + +## Passo 1 – Extract Text from Image Python: Installa Aspose OCR + +Prima di tutto: scarica la libreria da PyPI e assicurati che il tuo ambiente possa trovare il file di licenza. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Suggerimento:** Se incontri un errore di permessi, aggiungi `--user` al comando `pip install` o esegui il terminale come amministratore. + +Ora che il pacchetto è sul tuo sistema, lo importeremo e indicheremo al motore la nostra licenza. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Perché abbiamo bisogno di una licenza a questo punto? Senza di essa il motore funziona in **modalità di valutazione**, che limita il numero di pagine e aggiunge una filigrana all'output. Fornire la licenza in anticipo garantisce che la successiva chiamata `recognize` restituisca testo pulito. + +--- + +## Passo 2 – Carica la tua immagine con contenuto misto Latino‑Cirillico + +Successivamente, carichiamo l'immagine in memoria. Aspose OCR utilizza la propria classe `Image`, che astrae il formato di file sottostante. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Se ti chiedi se altri formati funzionano—sì, JPEG, BMP, TIFF e persino PDF sono supportati. Basta cambiare l'estensione del file e il metodo `from_file` gestirà il resto. + +--- + +## Passo 3 – Indica le lingue per un rilevamento più veloce (Opzionale ma utile) + +Quando conosci le lingue presenti nell'immagine, puoi dare al motore un avviso. Non è obbligatorio, ma **riduce significativamente il tempo di elaborazione** e migliora la precisione per OCR multilingue. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +L'elenco di suggerimenti accetta qualsiasi lingua supportata da Aspose OCR (ad es., `"Arabic"`, `"Japanese"`). Se salti questo passo, il motore proverà tutte le lingue integrate, il che può essere più lento su grandi batch. + +--- + +## Passo 4 – Esegui il motore OCR ed estrai il testo + +Ecco il momento della verità: riconoscere effettivamente i caratteri. Il metodo `recognize` restituisce un oggetto `OcrResult` che contiene il testo semplice, i punteggi di confidenza e persino le bounding box se ti servono in seguito. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Perché funziona:** Internamente Aspose OCR combina un rilevatore di testo basato su rete neurale con classificatori specifici per lingua. Fornendogli un oggetto `Image`, eviti qualsiasi necessità di pre‑elaborazione manuale come la binarizzazione. + +--- + +## Passo 5 – Visualizza il testo estratto + +Infine, stampiamo il risultato sulla console. In un'applicazione reale potresti scriverlo su un file, inviarlo a un database o passarne il contenuto a un'API di traduzione. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Quando esegui lo script, dovresti vedere qualcosa del genere: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Quell'output conferma che abbiamo estratto con successo **extract text from image python**, gestendo sia i caratteri latini che cirillici in un'unica passata. + +--- + +## Esempio completo funzionante + +Di seguito trovi lo script completo che puoi copiare‑incollare in un file chiamato `extract_ocr.py`. Sostituisci i percorsi segnaposto con le tue directory reali. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Salva il file, attiva il tuo ambiente virtuale ed esegui: + +```bash +python extract_ocr.py +``` + +Dovresti vedere il testo riconosciuto stampato, confermando che lo script funziona da inizio a fine. + +--- + +## Domande frequenti & casi particolari + +**Cosa succede se l'immagine è sfocata?** +Aspose OCR include la correzione di inclinazione e la riduzione del rumore integrate, ma per foto gravemente degradate potresti voler pre‑elaborare con OpenCV (ad es., applicare una sfocatura gaussiana e una soglia). La classe `Image` può anche accettare un array NumPy, così puoi concatenare filtri personalizzati prima di chiamare `recognize`. + +**Posso elaborare un'intera cartella di immagini?** +Assolutamente. Avvolgi la logica in un ciclo `for`, cambia `from_file` per leggere ogni nome file e memorizza i risultati in un dizionario. Ricorda di rispettare i limiti di velocità dell'API se usi la versione cloud. + +**Ho bisogno di una licenza separata per ogni lingua?** +No, una singola licenza Aspose OCR copre tutte le lingue supportate. L'elenco `language_hints` è solo un suggerimento di prestazioni. + +**E per l'input PDF?** +Sostituisci `Image.from_file` con `ocr.Image.from_file("document.pdf")`. Il motore OCR rasterizzerà automaticamente ogni pagina e restituirà il testo concatenato. + +--- + +## Conclusione + +Abbiamo appena mostrato un modo conciso e pronto per la produzione di **extract text from image python** usando Aspose OCR. I passaggi—installazione, licenza, caricamento, indicazione delle lingue, riconoscimento e visualizzazione—coprono tutto ciò di cui hai bisogno per ottenere risultati affidabili su contenuti misti Latino‑Cirillico. + +Da qui potresti esplorare argomenti avanzati come **image to text conversion** per l'elaborazione batch, integrare l'output con un **Python OCR tutorial** sull'elaborazione del linguaggio naturale, o sperimentare altri suggerimenti di lingua per documenti multilingue. Il cielo è il limite, e il codice è già nelle tue mani. + +Hai un caso d'uso diverso o hai riscontrato un problema? Lascia un commento, condividi la tua esperienza e continuiamo la conversazione. Buon coding! + +![Esempio di estrazione testo da immagine python](/images/extract-text-from-image-python.png "Screenshot che mostra l'output OCR – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/italian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..eb88953cc --- /dev/null +++ b/ocr/italian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Estrai il testo dall'immagine istantaneamente usando Aspose OCR. Impara + a definire la regione di interesse, caricare l'immagine per l'OCR e estrarre il + testo dalla fattura in pochi minuti. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: it +og_description: Estrai il testo da un'immagine usando Aspose OCR. Questa guida mostra + come definire la regione di interesse, caricare l'immagine per l'OCR ed estrarre + il testo dalla fattura in modo efficiente. +og_title: Estrai il testo da un'immagine con Aspose OCR – Tutorial completo +tags: +- ocr +- python +- image-processing +title: Estrai il testo da un'immagine con Aspose OCR – Guida passo passo +url: /it/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Estrai testo da immagine con Aspose OCR – Guida passo‑passo + +Hai bisogno di **estrarre testo da immagine** rapidamente? Non sei solo—gli sviluppatori lottano costantemente con scansioni rumorose, ricevute e fatture. In questo tutorial percorreremo una soluzione completa che non solo mostra come *estrarre testo da immagine* ma dimostra anche come **definire la regione di interesse**, **caricare immagine per OCR**, e recuperare la riga esatta di cui hai bisogno da una fattura. + +Copriamo tutto, dall'installazione della libreria Aspose OCR alla gestione di casi particolari come pagine ruotate. Alla fine avrai uno script eseguibile che estrae il testo desiderato con una singola chiamata—senza necessità di ritagli manuali. + +## Cosa imparerai + +- Come **caricare immagine per OCR** usando l'API Python di Aspose. +- Il modo migliore per **definire la regione di interesse** (ROI) così elabori solo la parte dell'immagine che importa. +- Come **estrarre testo da fattura** senza includere l'intera pagina. +- Suggerimenti per **processare immagine con OCR** in modo efficiente ed evitare gli errori più comuni. + +**Prerequisiti** – un ambiente Python 3.9+ recente, un file di licenza Aspose OCR valido e un'immagine (ad es., un PNG di fattura). Non sono richiesti altri strumenti esterni. + +--- + +## Passo 1 – Inizializza il motore OCR (Configurazione primaria) + +Prima di poter **processare immagine con OCR**, ti serve un'istanza del motore che contenga la tua licenza. Questo passaggio è cruciale perché un motore non licenziato restituisce solo un set di risultati limitato. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Perché è importante*: l'oggetto `OcrEngine` è il cuore della libreria; gestisce i modelli linguistici, il pre‑processing dell'immagine e la licenza. Impostare la licenza fin da subito garantisce la massima precisione e nessun watermark. + +--- + +## Passo 2 – Caricare immagine per OCR + +Ora che il motore è pronto, dobbiamo **caricare immagine per OCR**. Aspose supporta molti formati (PNG, JPEG, TIFF), ma usare `Image.from_file` garantisce che l'immagine venga decodificata correttamente. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: mantieni i file immagine sotto i 5 MB per la massima velocità di elaborazione. File più grandi possono essere ridimensionati con `image.resize(width, height)` prima dell'OCR. + +--- + +## Passo 3 – Definire la regione di interesse (ROI) + +La maggior parte delle fatture contiene molto testo irrilevante—blocchi di indirizzo, piè di pagina, ecc. Con **definire la regione di interesse** indichiamo al motore di guardare solo dove si trovano l'importo o la data, migliorando velocità e precisione. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Come funziona*: la classe `Rectangle` ritaglia l'immagine virtualmente; il motore OCR non vede pixel al di fuori del rettangolo, quindi il rumore fuori dalla ROI viene ignorato. + +--- + +## Passo 4 – Riconoscere testo all'interno della ROI + +Con motore, immagine e ROI pronti, finalmente **estraiamo testo da immagine**. Il metodo `recognize` restituisce un oggetto `OcrResult` contenente la stringa rilevata e i punteggi di confidenza. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Output previsto** (esempio per una tipica riga di totale fattura): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Se la ROI è posizionata correttamente, vedrai solo la riga di cui hai bisogno—nulla più. + +--- + +## Passo 5 – Esempio completo funzionante (pronto per copia‑incolla) + +Di seguito lo script completo che collega tutti i passaggi precedenti. Salvalo come `extract_invoice_roi.py` ed esegui `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Esegui lo script e dovresti vedere la riga mirata stampata sulla console. Se ottieni una stringa vuota, ricontrolla le coordinate della ROI—anche qualche pixel di scostamento può escludere completamente il testo. + +--- + +## Passo 6 – Varianti comuni e casi particolari + +### a) Layout di fattura diversi +Le fatture di fornitori differenti spesso spostano il riquadro dell'importo totale. Per **processare immagine con OCR** su più layout, considera: + +- **Multiple ROI**: esegui il motore sequenzialmente con diversi rettangoli e scegli il risultato con la più alta confidenza. +- **Rilevamento ROI dinamico**: usa una libreria leggera di elaborazione immagini (ad es., OpenCV) per individuare prima l'etichetta “Total”, poi calcola la ROI relativa ad essa. + +### b) Immagini ruotate o inclinate +Se la scansione è inclinata, chiama `image.rotate(angle)` prima del riconoscimento: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR offre anche l'auto‑deskew, ma la rotazione manuale ti dà un controllo più preciso. + +### c) Caratteri non latini +Il modello linguistico predefinito è l'inglese. Per **estrarre testo da fattura** scritta in un'altra lingua, imposta la lingua prima del riconoscimento: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) PDF di grandi dimensioni +Quando lavori con PDF multi‑pagina, estrai prima ogni pagina come immagine (Aspose PDF → Image) e poi applica la stessa logica ROI per pagina. + +--- + +## Passo 7 – Consigli sulle prestazioni e pro‑tips + +- **Cache del motore**: creare `OcrEngine` ripetutamente in un ciclo rallenta. Istanzialo una sola volta e riutilizzalo. +- **Elaborazione batch**: se hai dozzine di fatture, avvolgi la chiamata OCR in un `ThreadPoolExecutor` per parallelizzare il lavoro I/O‑bound. +- **Controllo di confidenza**: `ocr_result.confidence` restituisce un float tra 0 e 1. Scarta i risultati sotto 0,85 e ricorri a una ROI più ampia o a una revisione manuale. + +> **Attenzione**: impostare una ROI troppo piccola può tagliare i caratteri, generando output illeggibile. Testa sempre con qualche fattura di esempio prima di scalare. + +--- + +## Conclusione + +Ora disponi di un metodo solido, pronto per la produzione, per **estrarre testo da immagine** usando Aspose OCR, completo di una modalità per **definire la regione di interesse**, **caricare immagine per OCR** e **estrarre testo da fattura** in modo affidabile. Limitando l'OCR a una ROI ristretta aumenti sia la velocità sia la precisione—perfetto per l'elaborazione batch di migliaia di ricevute. + +Pronto per il passo successivo? Prova a integrare questo script in un'API Flask così la tua web app può caricare una fattura e restituire immediatamente l'importo totale. Oppure sperimenta con ROI multiple per estrarre data, numero fattura e nome del fornitore in un unico passaggio. Le possibilità sono infinite, e con le basi illustrate qui sei pronto ad affrontare qualsiasi sfida OCR. + +Buon coding, e che il tuo testo estratto sia sempre pulito! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Workflow to extract text from image using Aspose 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/italian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/italian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..b06b03de8 --- /dev/null +++ b/ocr/italian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Estrai il testo da un'immagine usando l'OCR asincrono di Python. Scopri + come convertire i file tif in testo, caricare l'immagine per l'OCR e riconoscere + il testo dall'immagine in modo efficiente. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: it +og_description: Estrai il testo da un'immagine usando OCR asincrono in Python. Questa + guida mostra come convertire un file tif in testo, caricare l'immagine per l'OCR + e riconoscere il testo dall'immagine. +og_title: Estrai testo da un'immagine con OCR asincrono in Python – Guida completa +tags: +- OCR +- Python +- AsyncIO +title: Estrai testo da un'immagine con Python Async OCR – Guida completa +url: /it/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Estrai Testo da Immagine con Python Async OCR – Guida Completa + +Hai bisogno di **estrarre testo da immagine** rapidamente? Con l'OCR asincrono di Python puoi farlo in poche righe di codice. Che tu stia gestendo una scansione .tif massiccia o una manciata di JPEG, questo tutorial ti mostra come convertire tif in testo, caricare l'immagine per l'OCR e infine riconoscere il testo dall'immagine senza bloccare il tuo event loop. + +Ecco il punto: la maggior parte degli sviluppatori ricorre a una libreria sincrona, per poi rimanere con un’interfaccia bloccata mentre il motore elabora i pixel. In questa guida ribaltiamo lo scenario usando l'API asincrona di Aspose OCR Cloud, così la tua applicazione rimane reattiva. Alla fine avrai uno script eseguibile che estrae testo da qualsiasi formato immagine supportato, e comprenderai il perché di ogni passaggio. + +## Cosa Imparerai + +- Come configurare l'Aspose OCR Cloud SDK per Python. +- Il codice esatto necessario per **caricare immagine per OCR** e avviare un task di riconoscimento asincrono. +- Consigli per gestire file .tif di grandi dimensioni e particolarità di licenza. +- Modi per **estrarre testo da immagine** in modo sicuro, anche quando il servizio restituisce errori. +- Un esempio completo, pronto al copia‑incolla, da inserire nel tuo progetto. + +> **Prerequisito**: Python 3.8+ e un file di licenza Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Non sono richiesti altri pacchetti di terze parti. + +--- + +![estrazione testo da immagine workflow](workflow.png){: .align-center alt="flusso di lavoro per estrarre testo da immagine"} + +## Estrarre Testo da Immagine – Panoramica Async OCR + +Prima di immergerci nel codice, analizziamo il flusso. Quando chiami `recognize_async` l'SDK invia l'immagine al cloud di Aspose, avvia un job in background e ti restituisce un oggetto `Task`. Attendere quel task restituisce un `OcrResult` contenente la rappresentazione in plain‑text dell’immagine. Poiché la chiamata è asincrona, puoi lanciare più job in parallelo—perfetto per l'elaborazione batch di grandi archivi di documenti scansionati. + +### Perché Usare Async? + +- **I/O non bloccante** – Il tuo event loop resta libero di gestire altri compiti (es. richieste HTTP). +- **Scalabilità** – Avvia decine di riconoscimenti contemporaneamente; il cloud si occupa del carico pesante. +- **Reattività** – Le applicazioni UI non si bloccheranno in attesa del motore OCR. + +Ora che il “perché” è chiaro, vediamo il **come**. + +## Convertire TIF in Testo Usando Aspose OCR + +Un ostacolo comune è presumere che ogni libreria OCR supporti nativamente .tif. Aspose lo fa, ma è comunque necessario fornire un oggetto `Image`. L'SDK astrae il formato, così puoi semplicemente indicare il percorso del file. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Spiegazione delle righe chiave** + +- `ocr_engine.license = ...` – Senza una licenza valida il cloud restituisce un errore 403. Assicurati che il file `.lic` sia accessibile dalla directory di lavoro dello script. +- `ocr.Image.from_file(image_path)` – Questo passaggio **carica immagine per OCR**; l'SDK rileva automaticamente il formato, quindi non è necessario convertire il .tif in anticipo. +- `recognize_async` – Restituisce un task compatibile con le coroutine. Puoi lanciare diversi di questi in una chiamata `gather` se hai un batch. + +> **Consiglio professionale**: Se elabori TIFF di dimensioni gigabyte, considera di suddividerli in pagine prima. `Image.from_file` di Aspose può accettare un indice di pagina, riducendo la pressione sulla memoria. + +## Riconoscere Testo da Immagine in Modo Asincrono + +Vediamo come chiamare la funzione da uno script tipico. Il punto di ingresso `asyncio.run` è il modo più semplice per avviare la coroutine quando non sei già dentro un event loop (es. uno strumento CLI semplice). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Cosa aspettarsi** + +Eseguire lo script su una scansione chiara e ad alta risoluzione restituisce tipicamente una stringa multilinea che corrisponde alla pagina stampata. Se l’immagine è rumorosa, Aspose tenta comunque di pulirla, ma potresti vedere caratteri distorti. In tal caso, valuta un pre‑processing con OpenCV (es. sogliatura) prima di passare il file al motore OCR. + +### Gestire gli Errori in Modo Elegante + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Catturare `OcrException` garantisce che il programma non vada in crash quando il cloud restituisce un errore—un problema comune per i neofiti che dimenticano le possibili interruzioni di rete. + +## Caricare Immagine per OCR – Consigli Pratici + +1. **Percorso File vs. Bytes** – L'SDK accetta un percorso file, ma puoi anche caricare da un oggetto `bytes` se l’immagine è in memoria (`ocr.Image.from_bytes`). Questo è utile quando hai già recuperato il file da S3 o da un database. +2. **Formati Supportati** – Oltre a .tif, Aspose gestisce PDF, BMP, GIF e anche TIFF multi‑pagina. Usa `Image.from_file("doc.pdf")` per OCRare direttamente i PDF. +3. **Performance** – Per job batch, riutilizza la stessa istanza `OcrEngine`; creare un nuovo engine per ogni file aggiunge overhead non necessario. + +## Esempio Completo (Tutti i Passaggi in Un Solo Script) + +Di seguito lo script completo, pronto all’esecuzione, che incorpora licenza, gestione errori e un semplice parser di argomenti da linea di comando. Copialo, regola il percorso della licenza e sei pronto. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Output previsto** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Se l’immagine contiene un semplice paragrafo, la console mostrerà le stesse righe, preservando le interruzioni di linea. Per TIFF multi‑pagina, l'SDK concatena le pagine nell’ordine corretto. + +## Domande Frequenti (FAQ) + +**D: Funziona con altri framework async come FastAPI?** +R: Assolutamente. Sostituisci la chiamata `asyncio.run` con `await async_ocr(path)` all’interno del tuo endpoint, e FastAPI gestirà l’event loop per te. + +**D: E se devo processare centinaia di file contemporaneamente?** +R: Usa `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**D: Posso estrarre testo da un PDF protetto da password?** +R: Non direttamente. Devi prima sbloccare il PDF (es. con `pikepdf`) e poi passare i byte decrittati a `ocr.Image.from_bytes`. + +**D: Come gestisco lingue diverse dall'inglese?** +R: Imposta la lingua prima del riconoscimento: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose supporta oltre 60 lingue; consulta la documentazione per gli identificatori esatti. + +## Conclusione + +Ora disponi di una solida soluzione per **estrarre testo da immagine** che sfrutta `asyncio` di Python e l'API asincrona di Aspose OCR Cloud. Seguendo i passaggi sopra potrai **convertire tif in testo**, **caricare immagine per OCR** e **riconoscere testo da immagine** in modo non bloccante—perfetto sia per utility da riga di comando sia per servizi web ad alto traffico. + +Qual è il prossimo passo? Prova a batchare una cartella di scansioni, sperimenta le impostazioni linguistiche o indirizza l'output OCR verso una pipeline NLP a valle. Il cielo è + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/italian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..e2cc99e1f --- /dev/null +++ b/ocr/italian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Estrai rapidamente il testo OCR usando Aspose OCR. Scopri come migliorare + l'accuratezza OCR, caricare l'immagine OCR, pre‑elaborare l'immagine OCR e eseguire + la scansione OCR in Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: it +og_description: Estrai rapidamente il testo OCR usando Aspose OCR. Impara come migliorare + l'accuratezza OCR, caricare l'immagine OCR, pre‑elaborare l'immagine OCR e eseguire + la scansione OCR in Python. +og_title: Estrai testo OCR – Guida completa con Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Estrai testo OCR – Guida completa con Aspose OCR +url: /it/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# estrarre testo OCR – Guida completa con Aspose OCR + +Hai mai avuto bisogno di **estrarre testo OCR** da una scansione traballante ma non eri sicuro del perché i risultati sembrassero incomprensibili? Non sei solo—molti sviluppatori incontrano questo ostacolo quando l'immagine è inclinata, rumorosa o semplicemente a basso contrasto. La buona notizia è che qualche piccolo aggiustamento di configurazione può trasformare un'immagine confusa in testo pulito e ricercabile. In questo tutorial percorreremo un esempio completo, end‑to‑end, che ti mostra come **migliorare la precisione OCR**, **caricare immagine OCR**, **pre‑elaborare immagine OCR**, e infine **eseguire la scansione OCR** con Aspose OCR per Python. + +Alla fine di questa guida avrai uno script eseguibile che legge un JPEG scansionato, lo pulisce automaticamente e stampa il testo estratto sulla console. Nessun misterioso link “vedi la documentazione”—tutto ciò di cui hai bisogno è qui. + +## Di cosa avrai bisogno + +- **Python 3.8+** (l'ultima versione stabile funziona meglio) +- **Aspose.OCR for Python via .NET** – installa con `pip install aspose-ocr` +- Un **file di licenza** (`Aspose.OCR.Java.lic`) se ne hai acquistato uno (la versione di prova gratuita funziona per i test) +- Un'immagine che desideri elaborare (ad es. `skewed_scanned_doc.jpg`) + +È tutto. Se hai questi elementi, possiamo passare direttamente al codice. + +## Passo 1: Estrarre testo OCR con il motore OCR di Aspose + +La prima cosa da fare è avviare il motore OCR e applicare la tua licenza. Pensa al motore come al cervello che leggerà l'immagine; senza licenza rifiuterà di funzionare oltre un piccolo limite demo. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Perché è importante:** Applicare la licenza in anticipo evita un fallimento silenzioso in seguito. Se salti questo passo, il motore tornerà a una modalità limitata e otterrai solo una manciata di caratteri—definitivamente non quello che ti aspetti quando provi a **estrarre testo OCR**. + +## Passo 2: Migliorare la precisione OCR con la pre‑elaborazione + +Le scansioni storte o granulose sono la rovina di qualsiasi progetto OCR. Aspose ti permette di attivare una serie di impostazioni utili che ruotano, rimuovono il rumore e aumentano il contrasto automaticamente. Questo è il cuore di **migliorare la precisione OCR**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – ruota l'immagine nuovamente in orizzontale, fondamentale quando il documento originale non era perfettamente piatto. +- **remove_noise** – elimina le macchie casuali che spesso appaiono nei JPEG a bassa risoluzione. +- **enhance_contrast** – rende il testo scuro più scuro e lo sfondo chiaro più chiaro, aiutando il motore a distinguere i caratteri. +- **binarization = "Otsu"** – un algoritmo classico che decide la soglia migliore per la conversione in bianco‑nero. + +> **Consiglio professionale:** Se sai che le tue immagini di origine sono già pulite, puoi disattivare queste opzioni per velocizzare l'elaborazione. Ma per la maggior parte delle scansioni reali, lasciarle attive è la scelta più sicura. + +## Passo 3: Caricare immagine OCR per la scansione + +Ora che il motore è pronto, dobbiamo **caricare immagine OCR**. Il metodo `Image.from_file` di Aspose supporta JPEG, PNG, TIFF e alcuni altri formati. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Sostituisci `YOUR_DIRECTORY` con il percorso reale sul tuo computer. Se stai lavorando con uno stream di byte in memoria (ad es. da un upload web), puoi anche usare `ocr.Image.from_bytes(byte_data)`—lo stesso motore lo gestirà. + +> **Caso limite:** I file TIFF di grandi dimensioni possono consumare molta memoria. Se incontri un `MemoryError`, considera di ridurre la risoluzione dell'immagine prima o di usare `ocr_engine.config.max_image_size` per limitare le dimensioni. + +## Passo 4: Eseguire la scansione OCR e ottenere i risultati + +Con l'immagine caricata e la pre‑elaborazione attiva, l'ultimo passo è **eseguire la scansione OCR**. Questa chiamata gestisce tutto il lavoro pesante dietro le quinte. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +L'oggetto `ocr_result` contiene diverse proprietà utili: + +- `ocr_result.text` – la stringa semplice di cui hai bisogno. +- `ocr_result.confidence` – un punteggio numerico (0‑100) che indica l'affidabilità complessiva. +- `ocr_result.words` – una lista di oggetti parola con coordinate del riquadro di delimitazione, utile per evidenziare. + +## Passo 5: Stampare il testo estratto + +Infine, restituiamo il risultato. In un'applicazione reale potresti scrivere il testo su un file, un database o inviarlo a un indice di ricerca. Per questo tutorial, un semplice `print` è sufficiente. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Output previsto** (esempio per una fattura semplice): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Se la confidenza è bassa (< 80), potresti voler rivedere le opzioni di pre‑elaborazione o provare un metodo di binarizzazione diverso come `"Sauvola"`. + +## Bonus: Visualizzare la pipeline di pre‑elaborazione (Opzionale) + +A volte è utile vedere cosa ha fatto il motore all'immagine. Aspose ti permette di esportare il bitmap elaborato: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Potresti quindi inserire l'immagine nella documentazione: + +diagramma del flusso di estrarre testo OCR che mostra i passaggi di pre‑elaborazione + +> **Perché potresti farlo:** Quando il risultato OCR sembra sbagliato, uno sguardo veloce a `processed_debug.png` spesso rivela se l'immagine era ancora troppo scura, ancora inclinata, o aveva rumore residuo. + +## Domande frequenti e problemi comuni + +- **E se il mio documento è multi‑pagina?** + Aspose OCR funziona pagina per pagina. Cicla su ogni immagine di pagina e concatena `ocr_result.text`. + +- **Posso riconoscere lingue diverse dall'inglese?** + Sì—imposta `ocr_engine.config.language = "fra"` (o qualsiasi codice ISO‑639‑2) prima di chiamare `recognize`. + +- **C'è un limite alle dimensioni dell'immagine?** + Il motore limita a 10 MP per impostazione predefinita. Aumenta `ocr_engine.config.max_image_size` se ti servono scansioni più grandi, ma controlla l'uso della memoria. + +- **Ho bisogno di un motore OCR separato per i PDF?** + Per i PDF puoi prima estrarre ogni pagina come immagine (usando Aspose.PDF) o utilizzare la funzione OCR PDF integrata. I passaggi mostrati qui rimangono gli stessi dopo aver ottenuto un'immagine. + +## Riepilogo + +Abbiamo coperto come **estrarre testo OCR** usando Aspose OCR per Python, dalla licenza del motore alla regolazione delle impostazioni che **migliorano la precisione OCR**, al caricamento del file sorgente, e infine **eseguire la scansione OCR** per ottenere testo pulito. Lo script completo è pronto per il copia‑incolla, e ora comprendi perché ogni flag di configurazione è importante. + +## Cosa fare dopo? + +- **Sperimenta con diversi metodi di binarizzazione** (`"Sauvola"`, `"Bradley"`). Alcuni caratteri rispondono meglio a soglie adattive. +- **Integra con un motore di ricerca** (ad es. Elasticsearch) usando il punteggio di confidenza per ordinare i risultati. +- **Combina con librerie di post‑elaborazione OCR** come `pyspellchecker` per pulire le comuni errate riconoscimenti. +- **Esplora l'elaborazione batch** per centinaia di scansioni—incapsula i passaggi in una funzione e fornisci una cartella di immagini. + +Sentiti libero di modificare il codice, aggiungere i tuoi log, o integrarlo in una pipeline di gestione documenti più ampia. Se incontri problemi, lascia un commento qui sotto—buona programmazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/italian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..9e8fdc757 --- /dev/null +++ b/ocr/italian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Come eseguire l'OCR su PDF con Aspose OCR Java. Scopri come avviare l'OCR + su PDF, riconoscere il testo dei PDF, convertire PDF in JSON e caricare PDF per + l'OCR in poche righe di codice. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: it +og_description: Come eseguire l'OCR su PDF con Aspose OCR Java. Questa guida mostra + come effettuare l'OCR su PDF, riconoscere il testo del PDF, convertire PDF in JSON + e caricare PDF per l'OCR rapidamente. +og_title: Come eseguire OCR su PDF con Aspose OCR – Tutorial completo di programmazione +tags: +- Aspose OCR +- Java +- PDF processing +title: Come eseguire l'OCR di PDF con Aspose OCR – Guida completa passo passo +url: /it/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come eseguire OCR su PDF con Aspose OCR – Guida completa passo‑passo + +Ti sei mai chiesto **come fare OCR su PDF** senza impazzire con strumenti da riga di comando o pagare costosi SaaS? Non sei l’unico. In molti progetti—automazione fatture, archiviazione di contratti scansionati o creazione di un knowledge base ricercabile—ti troverai a dover estrarre testo da PDF in modo rapido e affidabile. + +La buona notizia? Con Aspose OCR per Java puoi **eseguire OCR su PDF**, riconoscere testo in pagine PDF, **convertire PDF in JSON** e persino **caricare PDF per OCR** in poche righe di codice. In questo tutorial percorreremo l’intero flusso di lavoro, spiegheremo perché ogni passaggio è importante e ti forniremo un esempio di codice pronto all’uso da inserire nel tuo progetto. + +## Cosa imparerai + +- Come configurare il motore Aspose OCR e applicare la tua licenza. +- Il modo esatto per **caricare PDF per OCR** e passarli al riconoscitore. +- Come **riconoscere testo PDF** su tutte le pagine in una sola chiamata. +- Esportare il risultato completo dell’OCR in un file **JSON** (perfetto per API downstream) e una singola pagina in **XML**. +- Suggerimenti, insidie e varianti utili quando si lavora con PDF multi‑pagina o pacchetti linguistici personalizzati. + +> **Prerequisiti** – Hai bisogno di Java 8 o superiore, di un file di licenza valido per Aspose OCR for Java (`Aspose.OCR.Java.lic`) e del JAR Aspose OCR nel classpath. Non sono richieste altre librerie esterne. + +--- + +## Come eseguire OCR su PDF – Inizializzare il motore Aspose OCR + +La prima cosa da fare è creare un’istanza di `OcrEngine` e collegare la tua licenza. Questo passaggio sblocca l’intero set di funzionalità e rimuove la filigrana di valutazione. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Perché è importante:** +Senza licenza, Aspose OCR funziona in modalità “trial” limitata, che impone un massimo di pagine e aggiunge una filigrana all’output. Applicare la licenza fin dall’inizio garantisce che il resto della pipeline funzioni senza restrizioni inattese. + +--- + +## Eseguire OCR su PDF – Caricare il documento e riconoscere il testo + +Ora **carichiamo PDF per OCR**. Aspose OCR tratta i PDF come un tipo speciale `PdfDocument`, che internamente estrae ogni pagina come immagine prima di passarla al riconoscitore. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Cosa succede dietro le quinte?** +`recognizeDocument` itera su ogni pagina, la rasterizza alla DPI ottimale e poi avvia il motore OCR. Il risultato è un array di `OcrPage` dove ogni elemento contiene il testo rilevato, i punteggi di confidenza e le informazioni di layout. Questo approccio è molto più affidabile rispetto al passare i byte grezzi del PDF a una libreria OCR generica. + +--- + +## Convertire il risultato OCR in JSON – Esportare il report completo + +La maggior parte dei sistemi downstream preferisce JSON perché è facile da deserializzare in Java, JavaScript, Python o anche PowerShell. Aspose OCR fornisce un helper `JsonExport` che serializza l’intero array `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Quando lo utilizzeresti?** +Se devi inviare l’output OCR a un indice di ricerca (Elasticsearch, Solr) o a una pipeline di dati, il formato JSON ti offre una rappresentazione strutturata di ogni pagina, riga e parola, completa di valori di confidenza. + +--- + +## Esportare la prima pagina in XML – Salvare una pagina singola + +A volte ti interessa solo una singola pagina—magari la prima contiene il titolo o il numero della fattura. La classe `XmlExport` ti permette di salvare un singolo `OcrPage` in un file XML ordinato. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Perché XML?** +Sistemi legacy o alcuni workflow aziendali si basano ancora su schemi XML per l’ingestione. Il file generato segue lo schema proprietario di Aspose, rendendo la validazione semplice. + +--- + +## Verificare l’output – Controllare i file JSON e XML + +Al termine dell’esecuzione, dovresti vedere due file nella cartella `YOUR_DIRECTORY`: + +- `report_ocr.json` – Contiene un array di oggetti pagina. Un breve snippet potrebbe apparire così: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Contiene le stesse informazioni per la pagina 1, racchiuse nei tag ``. + +Aprili con qualsiasi editor; vedrai le stringhe OCR grezze, i punteggi di confidenza e le coordinate dei bounding‑box. Se il JSON sembra vuoto, verifica che il PDF di input contenga effettivamente contenuto rasterizzato (immagini scansionate) e non testo selezionabile—Aspose OCR funziona solo su immagini. + +--- + +## Problemi comuni & Pro Tips + +| Problema | Perché accade | Soluzione | +|----------|----------------|-----------| +| **JSON vuoto** | Il PDF contiene testo nativo, non immagini. | Usa `PdfDocument.fromFile(..., true)` per forzare la rasterizzazione, o pre‑converti le pagine in immagini. | +| **Bassa confidenza** | Il PDF di origine è a bassa risoluzione o fortemente compresso. | Aumenta la DPI chiamando `ocrEngine.getImageProcessingOptions().setDpi(300)` prima di `recognizeDocument`. | +| **Licenza non trovata** | Percorso errato o file mancante. | Usa un percorso assoluto o posiziona il file `.lic` nel classpath e chiama `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory su PDF enormi** | Tutte le pagine vengono caricate in memoria contemporaneamente. | Processa le pagine a blocchi: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Estendere l’esempio + +- **Eseguire OCR su PDF con una lingua specifica** – imposta `ocrEngine.getLanguage().setLanguage(Language.English)` o carica un pacchetto linguistico personalizzato. +- **Esportare ogni pagina in file JSON separati** – itera su `ocrPages` e chiama `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrare con un motore di ricerca** – invia il JSON al processore `attachment` di Elasticsearch per la ricerca full‑text. + +--- + +## Conclusione + +Ora disponi di una soluzione completa, pronta per la produzione, su **come fare OCR su PDF** usando Aspose OCR per Java. Inizializzando il motore, caricando il PDF, eseguendo l’OCR e esportando sia **JSON** che **XML**, puoi integrare l’OCR in qualsiasi workflow backend—che tu debba **eseguire OCR su PDF**, **riconoscere testo PDF**, **convertire PDF in JSON**, o semplicemente **caricare PDF per OCR**. + +Provalo, modifica DPI o impostazioni della lingua, e guarda i tuoi PDF precedentemente opachi trasformarsi in risorse ricercabili. Vuoi andare oltre? Prova a indicizzare il JSON in Elasticsearch, o a post‑processare l’XML con XSLT per generare report personalizzati. + +Buon coding, e che i tuoi PDF siano sempre leggibili! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/italian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..86e686899 --- /dev/null +++ b/ocr/italian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'come eseguire OCR rapidamente: impara a estrarre il testo da un''immagine + e a riconoscere il testo da un modulo usando Aspose OCR Java. Passaggi semplici + per leggere l''immagine per OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: it +og_description: 'come eseguire OCR rapidamente: impara a estrarre testo da un''immagine + e a riconoscere il testo da un modulo usando Aspose OCR Java. Passaggi semplici + per leggere l''immagine per OCR.' +og_title: come eseguire OCR su un modulo – estrarre testo dall'immagine +tags: +- ocr +- java +- image-processing +title: come eseguire OCR su un modulo – estrarre testo dall'immagine +url: /it/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# come eseguire OCR su un modulo – estrarre testo da immagine + +Ti sei mai chiesto **come eseguire OCR** su un documento scansionato senza passare ore a armeggiare con librerie oscure? Non sei solo. In molti progetti—che si tratti di digitalizzare fatture, archiviare contratti o estrarre dati da moduli scritti a mano—essere in grado di **estrarre testo da immagine** è un problema quotidiano. + +Ecco la questione: Aspose OCR for Java rende l'intera pipeline quasi indolore. In questo tutorial passeremo in rassegna ogni riga di codice necessaria per **riconoscere testo da modulo** file, spiegheremo perché ogni passaggio è importante e ti mostreremo come **leggere immagine per OCR** risultati con punteggi di confidenza. Alla fine avrai una classe Java pronta‑da‑eseguire che potrai inserire in qualsiasi progetto Maven o Gradle. + +## Cosa imparerai + +- Configurare il motore Aspose OCR e applicare la licenza. +- Caricare un JPEG, PNG o TIFF in memoria. +- Eseguire OCR e iterare su ogni riga di testo riconosciuto. +- Individuare righe a bassa confidenza per la revisione manuale. +- Estendere l'esempio a PDF multi‑pagina o a diversi formati immagine. + +Non è necessaria alcuna esperienza precedente con Aspose, basta un ambiente di sviluppo Java di base (JDK 11+ e qualsiasi IDE ti piaccia). Iniziamo. + +![how to run ocr example](/images/ocr-demo.png){alt="esempio di come eseguire OCR su un modulo scansionato"} + +## Passo 1: Inizializzare il motore OCR – **come eseguire OCR** + +La prima cosa da fare prima di qualsiasi operazione OCR è creare un'istanza di `OcrEngine` e collegare una licenza valida. Senza licenza la libreria funziona in modalità demo, che limita il numero di pagine che puoi elaborare. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Perché è importante:** +`OcrEngine` contiene tutta la configurazione—lingua, modalità di rilevamento e ottimizzazioni delle prestazioni. Impostando la licenza in anticipo eviti il passaggio silenzioso alla modalità di prova che altrimenti troncherebbe il tuo output. + +## Passo 2: Caricare l'immagine – **estrarre testo da immagine** + +Ora abbiamo bisogno di un oggetto `Image` che punti al file che vuoi scansionare. Aspose supporta un'ampia gamma di formati, così puoi fornire una pagina PDF scansionata che hai già convertito in PNG, un JPEG grezzo o anche un TIFF multi‑pagina. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Perché è importante:** +Caricare l'immagine come oggetto `Image` fornisce al motore l'accesso ai dati dei pixel, alle informazioni DPI e alla profondità di colore—tutti fattori che influenzano l'accuratezza dell'OCR. Se salti questo passaggio e passi un array di byte grezzo, perderai questi utili indizi. + +## Passo 3: Eseguire OCR – **riconoscere testo da modulo** + +Ora la parte divertente: riconoscere effettivamente i caratteri. Il metodo `recognize` restituisce un `RecognitionResult` che contiene una collezione di oggetti `Line`, ognuno con il proprio punteggio di confidenza. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Perché è importante:** +Chiamare `recognize` avvia una cascata di processi interni—pre‑processing (raddrizzamento, rimozione del rumore), segmentazione, classificazione dei caratteri e post‑processing (correzione ortografica, modello linguistico). L'oggetto risultato astrae tutta questa complessità. + +## Passo 4: Elaborare i risultati – **leggere immagine per OCR** output + +Una volta ottenuto il `RecognitionResult`, puoi iterare su ogni riga, decidere cosa mantenere automaticamente e segnalare tutto ciò che appare incerto. Una soglia di confidenza dell'85 % è un buon punto di partenza per la maggior parte dei moduli stampati. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Output previsto (esempio):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +Nell'esempio sopra il motore non era sicuro dell'ultima cifra dell'importo totale, quindi abbiamo stampato un avviso. Potresti inviare quelle righe a un'interfaccia UI per la correzione manuale o registrarli per una revisione successiva. + +### Casi limite e consigli + +- **Multiple pages:** Se hai un PDF multi‑pagina, itera su ogni indice di pagina e chiama `Image.fromPdf(pdfPath, pageIndex)`. +- **Different languages:** Imposta `engine.getLanguage().setLanguage(Language.Spanish);` prima di chiamare `recognize`. +- **Image quality:** Scansioni a bassa risoluzione (< 150 DPI) spesso producono una confidenza inferiore all'80 %. L'upscaling con `image.resize(300, 300)` può aiutare, ma la soluzione migliore è una scansione migliore. +- **Performance:** Riutilizzare la stessa istanza di `OcrEngine` per molte immagini riduce l'overhead rispetto a crearne una nuova ogni volta. + +## Domande frequenti + +**Posso eseguirlo su un server headless?** +Assolutamente. La libreria non ha dipendenze GUI, quindi funziona bene all'interno di container Docker o pipeline CI. + +**E se non ho ancora una licenza?** +Puoi comunque chiamare `engine.recognize`, ma la modalità demo si fermerà dopo le prime 2 pagine e aggiungerà una filigrana all'output. È perfetta per test rapidi. + +**Esiste un modo per estrarre dati strutturati (ad esempio tabelle)?** +Aspose OCR fornisce una classe `TableRecognizer`, ma è fuori dallo scopo di questa guida per principianti. Una volta padroneggiati i concetti base, consulta la documentazione ufficiale per `TableRecognizer`. + +## Conclusioni – **come eseguire OCR** in poche parole + +Abbiamo coperto tutto ciò di cui hai bisogno per **come eseguire OCR** su un modulo scansionato: inizializzare il motore, caricare l'immagine, eseguire il riconoscimento e gestire i risultati in modo intelligente. Con poche righe di Java, puoi **estrarre testo da immagine** file, **riconoscere testo da modulo** documenti e **leggere immagine per OCR** output con punteggi di confidenza che ti permettono di decidere quando è necessaria una revisione umana. + +Prossimi passi? Prova a sostituire il JPEG con un TIFF multi‑pagina, sperimenta diverse soglie di confidenza o integra l'output in un database per l'inserimento dati automatizzato. Le possibilità sono ampie quanto i documenti che devi elaborare. + +Hai altre domande su OCR, pre‑processing delle immagini o licenze? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/italian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..570fec80e --- /dev/null +++ b/ocr/italian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-05-03 +description: Come utilizzare l'OCR per estrarre testo da file PDF in Java. Impara + a riconoscere il testo da PDF, convertire PDF in testo e gestire efficientemente + PDF multi‑pagina con OCR. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: it +og_description: Come usare l'OCR per estrarre testo da file PDF in Java. Questa guida + mostra come riconoscere il testo da PDF, convertire PDF in testo e processare PDF + multi‑pagina con OCR. +og_title: Come usare l'OCR in Java – Estrarre testo da PDF multipagina +tags: +- ocr +- java +- pdf +- aspose +title: Come usare l'OCR in Java – Estrarre testo da PDF multi‑pagina +url: /it/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come usare OCR in Java – Estrarre testo da PDF multi‑pagina + +**Come usare OCR** in un progetto Java? Se hai mai dovuto estrarre testo da file PDF senza fare affidamento sul livello di testo interno del PDF, sei nel posto giusto. Questo tutorial ti guida attraverso una soluzione completa e eseguibile che **riconosce il testo da PDF**, converte PDF in testo e gestisce anche un **OCR multi page PDF** con una singola chiamata. + +Immagina di ricevere un contratto scansionato — un TIFF di 12 pagine all’interno di un PDF. Vuoi il testo ricercabile per l’indicizzazione, ma il file non contiene caratteri incorporati. Nessun problema; ti mostreremo esattamente come farlo, passo dopo passo. + +> **Ciò che otterrai:** uno snippet Java pronto all’uso con Aspose.OCR, spiegazioni sul perché ogni riga è importante, consigli per le difficoltà più comuni e un output di esempio che potrai verificare immediatamente. + +--- + +## Cosa ti serve + +Prima di iniziare, assicurati di avere: + +* **Java 17** (o qualsiasi JDK recente) – il codice funziona anche con versioni più vecchie, ma 17 è l’ideale. +* Libreria **Aspose OCR for Java** – puoi scaricare il JAR dal sito Aspose o aggiungerlo via Maven/Gradle. +* Un **PDF multi‑pagina** (o TIFF) che desideri elaborare. Nei nostri esempi useremo `contract_multipage.pdf` collocato in una cartella chiamata `YOUR_DIRECTORY`. +* Un valido **file di licenza Aspose OCR** (`Aspose.OCR.Java.lic`). Senza di esso la libreria funziona in modalità valutazione, il che va bene per un test rapido ma aggiunge una filigrana. + +Tutto qui—nessun motore OCR aggiuntivo, nessun binario nativo, solo un singolo JAR e una licenza. + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "Come usare OCR in Java – panoramica visiva del processo") + +*Testo alternativo immagine: come usare OCR in Java – panoramica visiva del caricamento, riconoscimento e output del testo.* + +--- + +## Passo 1: Configurare il motore OCR – **Come usare OCR** correttamente + +La prima cosa da fare è creare un’istanza del motore OCR e applicare la licenza. Senza licenza il motore funzionerà comunque, ma vedrai una filigrana di prova nell’output. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Perché è importante:** +`OcrEngine` è l’oggetto centrale che orchestra l’analisi dell’immagine, il rilevamento della lingua e l’estrazione del testo. Impostare la licenza subito evita che il motore torni in modalità trial più tardi, il che potrebbe influire sulla precisione. + +--- + +## Passo 2: Caricare il documento – **Estrarre testo da PDF** in modo efficiente + +Aspose OCR può leggere direttamente contenitori PDF e TIFF. Qui carichiamo un PDF multi‑pagina che contiene immagini scansionate. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Perché è importante:** +`PdfDocument.fromFile` analizza il contenitore e ti dà accesso a ciascuna pagina come immagine. Questa astrazione permette al motore OCR di trattare ogni pagina in modo uniforme, indipendentemente dal formato originale. + +**Consiglio:** Se il tuo file di origine è un TIFF, la stessa chiamata funziona—Aspose rileva automaticamente il formato. Nessun codice aggiuntivo necessario. + +--- + +## Passo 3: Riconoscere tutte le pagine in un’unica operazione – **Riconoscere testo da PDF** senza intoppi + +Invece di iterare manualmente sulle pagine, puoi chiedere al motore di elaborare l’intero documento con una singola chiamata. Questo è il modo più efficiente per **convertire PDF in testo** quando si tratta di un **OCR multi page PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Perché è importante:** +Chiamare `recognizeDocument` una sola volta riduce l’overhead causato dall’inizializzazione ripetuta del motore. Garantisce inoltre impostazioni linguistiche coerenti tra le pagine, fondamentale per documenti legali che spesso mescolano caratteri. + +--- + +## Passo 4: Output del testo riconosciuto – **Convertire PDF in testo** per l’indicizzazione + +Ora che ogni pagina è stata elaborata, iteriamo semplicemente sui risultati e stampiamo le stringhe estratte. Puoi anche scriverle su un file, su un database o inviarle a un indice di ricerca. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Output previsto (troncato):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Se il PDF contiene 12 pagine, vedrai dodici sezioni `--- Page X ---`, ognuna seguita dal testo estratto tramite OCR. + +--- + +## Suggerimenti avanzati per un **OCR Multi Page PDF** + +### 1. Regolare le impostazioni della lingua + +Per impostazione predefinita Aspose tenta di rilevare automaticamente la lingua, ma puoi velocizzare il processo specificandola: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Controllare la pre‑elaborazione dell’immagine + +I contratti scansionati spesso hanno rumore. Puoi abilitare la correzione di inclinazione e la binarizzazione: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Gestire file di grandi dimensioni in modo efficiente + +Se elabori PDF più grandi di 100 MB, considera lo streaming delle pagine invece di caricare l’intero documento in una volta: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Questo schema riduce la pressione sulla memoria ed è utile per lavori batch. + +### 4. Esportare in formati strutturati + +Oltre al testo semplice, puoi esportare in JSON o XML per elaborazioni successive: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Problemi comuni e come evitarli + +| Problema | Perché accade | Soluzione | +|----------|----------------|-----------| +| **Output vuoto** | Licenza non applicata o percorso file errato. | Verifica il percorso di `setLicense` e conferma che il file esista. | +| **Caratteri spazzatura** | Impostazione della lingua errata o sorgente a bassa risoluzione. | Imposta la `Language` corretta e assicurati che le immagini sorgente siano ≥300 dpi. | +| **Errori di out‑of‑memory** | Caricamento di un PDF enorme tutto in una volta. | Usa l’approccio di streaming mostrato sopra. | +| **Riconoscimento parziale della pagina** | Il PDF contiene strati raster/vector misti. | Appiattisci il PDF prima: `pdfDoc.flatten();` prima dell’OCR. | + +--- + +## Riepilogo – Cosa abbiamo coperto + +* **Come usare OCR** con Aspose in Java. +* **Estrarre testo da PDF** (o TIFF) con una singola chiamata. +* **Riconoscere testo da PDF** su tutte le pagine senza loop manuali. +* **Convertire PDF in testo** e stamparlo in modo chiaro. +* Suggerimenti per gestire un **OCR multi page PDF**, inclusi aggiustamenti di lingua e streaming a basso consumo di memoria. + +Ora disponi di uno snippet completo, pronto per la produzione, da inserire in qualsiasi progetto Java. Sentiti libero di modificare le opzioni di pre‑elaborazione dell’immagine, cambiare la destinazione dell’output o integrare il risultato in un indice di ricerca. + +--- + +## Prossimi passi + +* **Esplora le funzionalità avanzate di Aspose OCR** – come il riconoscimento della scrittura a mano o la conformità PDF/A. +* **Combina OCR con la manipolazione PDF** (ad esempio, aggiungi un livello di testo nascosto al PDF per creare PDF ricercabili). +* **Automatizza l’elaborazione batch** leggendo una cartella di PDF e scrivendo ogni risultato in un file `.txt` corrispondente. + +Se incontri difficoltà, i forum di Aspose sono un ottimo posto per chiedere aiuto, e il riferimento API fornisce dettagli esaustivi su ogni metodo usato qui. + +Buona programmazione e divertiti a trasformare quelle scansioni ostinate in testo ricercabile! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/italian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..49e27df32 --- /dev/null +++ b/ocr/italian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-05-03 +description: Leggi un file binario in Java per caricare una licenza Aspose OCR. Scopri + l'uso di FileInputStream, la gestione dei dati binari e consigli pratici in questa + guida passo‑passo. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: it +og_description: Leggi un file binario in Java per caricare una licenza Aspose OCR. + Segui questa guida completa per padroneggiare FileInputStream e la gestione dei + dati binari in Java. +og_title: Leggere file binario Java – Caricare i byte della licenza per Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Leggere un file binario in Java – Caricare i byte della licenza per Aspose + OCR +url: /it/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Leggere un File Binario in Java – Caricare i Byte di Licenza per Aspose OCR + +Hai mai dovuto **leggere un file binario Java** quando gestisci una licenza per una libreria di terze parti? Non sei l’unico. La maggior parte degli sviluppatori Java incappa in questo problema quando cerca di fornire un file `.lic` a un motore OCR, e i soliti trucchi per i file di testo non funzionano. + +In questo tutorial percorreremo un esempio completo, eseguibile, che mostra esattamente come aprire un file di licenza binario, estrarne i byte in memoria e passarli ad Aspose OCR per Java. Lungo il percorso vedrai perché `FileInputStream` è lo strumento giusto, come gestire possibili `IOException` e alcuni consigli professionali che potresti non trovare nella documentazione ufficiale. + +Alla fine della guida sarai in grado di **leggere un file binario Java**, creare un oggetto `License` e assegnarlo a un `OcrEngine` senza alcuna difficoltà. + +## Cosa Copre Questa Guida + +- Prerequisiti: Java 17+, Maven (o Gradle) e la libreria Aspose OCR per Java. +- Codice passo‑passo che legge un file `.lic` binario usando `FileInputStream`. +- Spiegazione di ogni riga così da comprendere il *perché* dietro il *come*. +- Gestione dei casi limite (file mancante, byte corrotti) e consigli pratici per il debug. +- Uno snippet finale, autonomo, che puoi copiare‑incollare nel tuo IDE e eseguire subito. + +Se ti sei mai chiesto se sia necessario un'API speciale per leggere i file di licenza, la risposta è un sonoro **no**—basta il buon vecchio I/O binario. Immergiamoci. + +## Passo 1: Leggere un File Binario in Java con FileInputStream + +La prima cosa di cui abbiamo bisogno è un modo affidabile per estrarre i byte grezzi dal file di licenza sul disco. In Java, `FileInputStream` è lo strumento ideale per questo compito. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Perché funziona:** `Files.readAllBytes` crea internamente un `FileInputStream`, legge l’intero flusso e lo chiude per te. È sicuro, conciso e evita il classico errore “dimenticare di chiudere lo stream”. Se preferisci il pattern classico, puoi sostituirlo con un blocco try‑with‑resources che utilizza direttamente `FileInputStream`. + +### Consiglio professionale + +Se il file di licenza è molto grande (improbabile, ma possibile), considera di leggerlo a blocchi invece di caricarlo tutto in una volta. Per la maggior parte dei file di licenza OCR—di solito meno di qualche kilobyte—l’approccio “tutto in una volta” è perfettamente adeguato. + +## Passo 2: Creare l'Oggetto License per Aspose OCR + +Ora che abbiamo i byte grezzi, dobbiamo trasformarli in un’istanza `License` compatibile con Aspose. La libreria fornisce una classe `License` che accetta un array di byte. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Perché è importante:** Passando direttamente i byte, eviti problemi legati ai percorsi (come confusione tra percorso relativo e directory di lavoro) e mantieni la tua distribuzione portabile—basta includere il file `.lic` dove gira la tua applicazione. + +## Passo 3: Assegnare la Licenza al Motore OCR + +Con l’oggetto `License` pronto, l’ultimo passo è collegarlo a un `OcrEngine`. Questo passaggio garantisce che il componente OCR funzioni in modalità licenziata anziché nella sandbox di valutazione. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Nota:** Alcune versioni più vecchie di Aspose espongono un campo pubblico `license` invece di un setter. Modifica il codice di conseguenza (`ocrEngine.license = license;`) se incontri un errore di compilazione. + +## Passo 4: Verificare che la Licenza sia Stato Caricata Correttamente (Opzionale ma Utile) + +Un rapido controllo di sanità salva ore di debug in seguito. La classe `License` non lancia eccezioni in caso di successo, ma puoi provare un’operazione OCR innocua per confermare. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Se vedi il messaggio “License applied successfully”, sei a posto. In caso contrario, ricontrolla il percorso del file, l’integrità dei byte e che tu stia usando la versione corretta di Aspose. + +## Esempio Completo Funzionante + +Unire tutti i pezzi produce un programma compatto, pronto per il copia‑incolla. Sentiti libero di inserirlo in un file `Main.java` e di eseguirlo. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Output previsto (supponendo che l’immagine di esempio esista):** + +``` +License applied successfully – OCR engine is ready. +``` + +Se il file di licenza è mancante o corrotto, vedrai un messaggio d’errore chiaro come: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Problemi Comuni & Come Evitarli + +- **Confusione sui percorsi:** I percorsi relativi sono risolti rispetto alla directory di lavoro della JVM, non rispetto al file sorgente. Usa un percorso assoluto o posiziona il file `.lic` accanto al JAR e riferiscilo con `getResourceAsStream`. +- **Ordine dei byte errato:** Non tentare mai di leggere un file binario con un `Reader` (orientato ai caratteri). Corromperà i dati. Rimani su API basate su `FileInputStream`. +- **Mancata corrispondenza di versione:** Alcune versioni più vecchie di Aspose richiedono `license.setLicense("path/to/file")` invece di `setLicenseBytes`. Controlla le note di rilascio della libreria se incontri un `NoSuchMethodError`. +- **Dimenticare di chiudere gli stream:** Se torni all’approccio classico con `FileInputStream`, avvolgilo in un blocco try‑with‑resources per garantire la chiusura. + +## Conclusione + +Ora sai come **leggere un file binario Java** per caricare una licenza Aspose OCR, creare un oggetto `License` e collegarlo a un `OcrEngine`. Il processo si basa sulla corretta gestione dei dati binari con `FileInputStream` (o con il più moderno `Files.readAllBytes`) e su poche chiamate API semplici. + +Da qui puoi passare alle attività OCR reali—estrarre testo da PDF, immagini o documenti scansionati—avendo la certezza che lo strato di licenza non ti darà problemi. Se sei curioso di approfondire, dai un’occhiata ai tutorial su **Java FileInputStream**, **binary data handling Java** e **read license file Java** per altre librerie. + +Buon coding, e che i risultati del tuo OCR siano cristallini! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/italian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/italian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..119a9cf8e --- /dev/null +++ b/ocr/italian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-05-03 +description: Scopri come riconoscere il testo da un'immagine e convertire l'immagine + in testo usando Aspose OCR per Java. Include consigli per migliorare l'accuratezza + dell'OCR e per eseguire l'OCR su file PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: it +og_description: Guida passo‑passo per riconoscere il testo da un'immagine usando Aspose + OCR per Java. Impara a convertire l'immagine in testo, migliorare l'accuratezza + dell'OCR ed eseguire l'OCR su PNG. +og_title: Riconoscere il testo da un'immagine con Aspose OCR – Tutorial Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Riconoscere il testo da un'immagine con Aspose OCR – Guida completa Java +url: /it/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# riconoscere testo da immagine con Aspose OCR – Guida completa Java + +Hai mai avuto bisogno di **recognize text from image** ma non eri sicuro quale libreria ti avrebbe fornito risultati affidabili? Non sei solo—molti sviluppatori si trovano di fronte a questo ostacolo quando provano per la prima volta a estrarre dati da PDF scansionati, ricevute o referti di laboratorio. La buona notizia è che Aspose OCR per Java rende l'intero processo un gioco da ragazzi, e puoi persino **convert image to text** con poche righe di codice. + +In questo tutorial ti guideremo attraverso tutto ciò che devi sapere: dal caricare un'immagine per l'OCR, alla regolazione delle impostazioni per **improve OCR accuracy**, fino a **run OCR on PNG** file e stampare il testo estratto. Nessuna perdita di tempo, solo un esempio pratico e eseguibile che puoi inserire nel tuo progetto subito. + +--- + +## Cosa ti servirà + +Prima di immergerci, assicurati di avere quanto segue sulla tua macchina: + +| Prerequisite | Reason | +|--------------|--------| +| Java 17 (or newer) | Aspose OCR supporta Java 8+, ma l'ultima JDK offre migliori prestazioni. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | Il motore principale che esegue il lavoro pesante. | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | Abilita l'intero set di funzionalità; altrimenti otterrai una filigrana di prova. | +| An image file (PNG, JPEG, TIFF, etc.) containing clear text | Un file immagine (PNG, JPEG, TIFF, ecc.) contenente testo chiaro. Useremo `lab_report.png` come esempio concreto. | +| A custom dictionary (optional) | Un dizionario personalizzato (opzionale) – Migliora il riconoscimento per termini specifici del dominio come “hemoglobin”. | + +Se qualcuno di questi ti è sconosciuto, non farti prendere dal panico—installare un JAR e creare un semplice file di testo sono operazioni banali che tratteremo a breve. + +## Passo 1 – Configura il progetto e importa le dipendenze + +Per prima cosa, crea un nuovo progetto Maven (o Gradle) e aggiungi la dipendenza Aspose OCR. Gli utenti Maven possono incollare questo frammento nel loro `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Se preferisci Gradle, l'equivalente è: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** Tieni d'occhio il numero di versione; le versioni più recenti spesso contengono correzioni di bug che influenzano direttamente **improve OCR accuracy**. + +Ora, crea una classe Java chiamata `OcrDemo.java`. All'inizio del file, importa le classi necessarie: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## Passo 2 – Inizializza il motore OCR e applica la tua licenza + +Non puoi **run OCR on PNG** file senza prima informare il motore che è licenziato. Ecco come fare: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Perché l'oggetto `License` aggiuntivo? Aspose separa la gestione della licenza dal motore per permetterti di cambiare licenza al volo, il che può essere utile in scenari SaaS multi‑tenant. + +## Passo 3 – Carica un dizionario personalizzato (opzionale ma potente) + +Se lavori con terminologia medica, formule chimiche o nomi di marca, un dizionario personalizzato può **improve OCR accuracy** in modo drastico. Il dizionario è un file di testo semplice con una parola per riga: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Why it works:** Il motore OCR utilizza il dizionario per orientare il suo modello linguistico verso le parole di tuo interesse, riducendo i riconoscimenti errati come “hemo­globin” → “hemoglobin”. + +Se non hai un dizionario, salta semplicemente questa riga—Aspose funziona comunque bene con i pacchetti linguistici integrati. + +## Passo 4 – Carica l'immagine da elaborare + +Ora carichiamo effettivamente **load image for OCR**. Aspose supporta molti formati, ma PNG è particolarmente lossless, rendendolo una scelta sicura per documenti scansionati. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** Se la tua immagine è enorme (oltre 5 MB), considera di ridimensionarla prima per velocizzare l'elaborazione. La classe `Image` fornisce un metodo `resize` che puoi chiamare prima del riconoscimento. + +## Passo 5 – Esegui il processo OCR e recupera il testo + +Con tutto impostato, avvia il motore OCR. Il metodo `recognize` restituisce un oggetto `OcrResult` che contiene la stringa estratta, i punteggi di confidenza e anche i bounding box se ti servono informazioni sul layout. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Quando esegui il programma, dovresti vedere qualcosa del genere: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Ecco fatto—hai **recognize text from image** e **convert image to text** con successo usando Aspose OCR. + +## Passo 6 – Problemi comuni e come risolverli + +Anche con una libreria solida, qualche intoppo può ostacolarti: + +| Symptom | Likely Cause | Fix | +|---------|--------------|-----| +| Output vuoto | Licenza non applicata o scaduta | Verifica il percorso di `Aspose.OCR.Java.lic` e assicurati che corrisponda alla versione. | +| Caratteri illeggibili | L'immagine è a bassa risoluzione o fortemente compressa | Usa una sorgente ad alta risoluzione o pre‑elabora l'immagine (binarizzazione, correzione di inclinazione). | +| Parole specifiche del dominio mancanti | Nessun dizionario personalizzato | Aggiungi un file dizionario con i termini mancanti, uno per riga. | +| Elaborazione lenta su grandi batch | Nessun multi‑threading | Crea un pool di istanze `OcrEngine` (sono thread‑safe) ed elabora le immagini in parallelo. | + +## Passo 7 – Estendere l'esempio: salvare i risultati su file + +Se hai bisogno di conservare il testo estratto per analisi successive, scrivilo semplicemente su un file: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Ora hai una pipeline riutilizzabile che **load image for OCR**, estrae il contenuto e lo salva dove preferisci. + +## Bonus: Eseguire OCR su più file PNG in una cartella + +I progetti reali spesso devono elaborare decine di scansioni. Ecco un rapido ciclo che prende ogni `.png` in una directory: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Ricorda di riutilizzare la stessa istanza `ocrEngine`—crearne una nuova per ogni file aggiunge un sovraccarico inutile. + +## Conclusione + +Ora hai una soluzione completa, end‑to‑end, che **recognize text from image** usando Aspose OCR per Java. Dal caricare l'immagine, opzionalmente arricchire il motore con un dizionario personalizzato per **improve OCR accuracy**, fino a **run OCR on PNG** file e salvare l'output, il codice è pronto per essere inserito in qualsiasi progetto Java. + +Cosa fare dopo? Prova a inserire il testo estratto in una pipeline di elaborazione del linguaggio naturale, o sperimenta l'OCR su note scritte a mano (Aspose offre anche una modalità handwriting). Le possibilità sono infinite, e hai appena sbloccato il primo passo. + +Buon coding! Se hai incontrato problemi, sentiti libero di lasciare un commento qui sotto—risolviamo insieme. + +![Screenshot del risultato OCR nella console – recognize text from image](/images/ocr_console_result.png "esempio di recognize text from image") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/japanese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..0045c6ff7 --- /dev/null +++ b/ocr/japanese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java を使用して画像からテーブルを抽出します。OCR 用に画像を読み込む方法、png からテーブルを抽出する方法、画像のテーブルテキストを変換する方法、そして領収書画像をすばやく認識する方法を学びましょう。 +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: ja +og_description: Aspose OCR Javaを使用して画像からテーブルを抽出します。このガイドでは、OCR用に画像を読み込む方法、PNGからテーブルを抽出する方法、画像テーブルのテキストに変換する方法、そして領収書画像を認識する方法を示します。 +og_title: 画像からテーブルを抽出 – Aspose OCR Java チュートリアル +tags: +- Aspose OCR +- Java +- Image Processing +title: 画像からテーブルを抽出 – 完全な Aspose OCR Java ガイド +url: /ja/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 画像からテーブルを抽出 – 完全な Aspose OCR Java ガイド + +画像からテーブルを抽出する必要があったのに、うまくいかなかったことはありませんか?スキャンしたレシートや撮影した請求書があり、表形式のデータが PNG に埋もれているかもしれません。このチュートリアルでは、*load image for OCR* の方法、画像を構造化された行に変換する方法、そして **convert image table text** を Java で扱える形に変換する方法を正確に示します。 + +Aspose OCR エンジンのライセンス設定から検出されたテーブルの各セルを出力するまで、すべての手順を順に説明します。最後まで読めば、**recognize receipt image** ファイルを認識し、テーブルを簡単に抽出できるようになります。 + +## 学習できること + +- Aspose OCR エンジンを初期化し、ライセンスを適用する方法。 +- テーブル検出を有効にすることが **extract tables from image** の鍵である理由。 +- **load image for OCR** に必要な正確なコードと PNG での認識実行方法。 +- 複数テーブル、低解像度スキャン、一般的な落とし穴への対処方法。 +- **convert image table text** を印刷可能(またはデータベース準備済み)な形式に変換する方法。 + +外部ドキュメントは不要です—必要なものはすべてここにあります。 + +## 前提条件 + +- Java 17 以上(コードは最新のモジュールシステムを使用)。 +- Aspose OCR for Java のライセンスファイル(`Aspose.OCR.Java.lic`)。試用だけなら一時的な評価キーでも動作します。 +- 明瞭なテーブルを含む PNG 画像(例:`receipt_with_table.png`)。 +- Maven または Gradle で Aspose OCR の依存関係を取得するために: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** ライセンスファイルを `src/main/resources` フォルダーの隣に置くと、環境間でパスが安定します。 + +--- + +## Step 1 – OCR エンジンを **extract tables from image** 用に初期化する + +エンジンが何かを行う前に、正規ユーザーであることを認識させる必要があります。 + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Why this matters:* 有効なライセンスがないと OCR エンジンはトライアルモードで動作し、結果が切り取られたり不要な透かしが付加されたりします—テーブル抽出の信頼性が低下します。 + +--- + +## Step 2 – テーブル検出を有効にする (**extract table from png**) + +テーブル検出はデフォルトでは無効です。スイッチをオンにする必要があります。 + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +このフラグを有効にすると、Aspose OCR は整列したテキストのグループを行と列として扱うようになり、PNG の **extract tables from image** ファイルからテーブルを抽出したい場合にまさに必要な動作です。 + +--- + +## Step 3 – **Load image for OCR** と **recognize receipt image** + +ここで実際に画像をエンジンに渡します。 + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +**recognize receipt image** のシナリオに取り組む場合、画像の前処理(デスキュー、コントラスト増加)を行うと良いでしょう。これはこの簡易ガイドの範囲外ですが、ノイズの多いスキャンでは検討に値します。 + +--- + +## Step 4 – OCR 結果を処理し **convert image table text** + +`OcrResult` オブジェクトには 1 つ以上のテーブルが含まれる可能性があります。テーブルを走査し、各セルを出力しましょう。 + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**What this does:** + +- テーブルが検出されたかを確認し、見つからない場合は品質調整を提案します。 +- 各テーブルについて、タブ区切りのセルで行を出力します。これは CSV インポートに便利な形式です。 +- `Cell::getText` 呼び出しが **convert image table text** の核心で、各セルから生の OCR 文字列を取得します。 + +### 期待される出力 + +`receipt_with_table.png` にシンプルな 3 × 2 テーブルが含まれていると仮定すると、以下のような出力が得られます。 + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +画像に複数のテーブルがある場合、各テーブルは空行で区切られます。 + +--- + +## Step 5 – 抽出されたテーブルを検証し、エッジケースに対処する + +### よくある落とし穴 + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **テーブルが検出されません** | 画像がぼやけている、またはコントラストが低い | OCR 前に二値化(`ImageProcessing.applyThreshold`)を適用 | +| **結合セル** | テーブルの線が薄く、OCR が1つのブロックとして扱う | `ocrEngine.getConfig()` の `TableDetectionSensitivity` を上げる | +| **列順序が正しくない** | 画像が歪んでいて整列がずれる | `ImageProcessing.deskew` を使用するか、画像を 90° 回転させる | + +### 次にすべきこと + +- **Export to CSV** – `System.out.println(line);` を `FileWriter` に置き換えてデータを永続化します。 +- **Feed into a database** – 各行を POJO にマッピングし、JPA を使って永続化します。 +- **Combine with other APIs** – レシート処理の場合、OCR テキストに正規表現を適用して合計金額を抽出することもできます。 + +--- + +## 完全動作例(コピー&ペースト可能) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +このプログラムを実行し、明瞭なテーブルを含む PNG を指定すると、コンソールに整然とした行が表示されます。 + +--- + +## 結論 + +これで、Aspose OCR for Java を使用して **extract tables from image** ファイルを処理する、堅牢なエンドツーエンドのソリューションが手に入りました。ライセンス設定から **load image for OCR**、**extract table from png** の有効化、そして最終的な **convert image table text** まで、すべてのステップが解説と実用的なヒントと共に網羅されています。 + +次のステップとして、出力を CSV ファイルに連結したり、行をリレーショナルデータベースに投入したり、OCR ステップをレシート合計抽出のフローと組み合わせてみてください。同じパターンは請求書、価格表、グリッドの背後にデータが隠れたあらゆるスキャン文書でも機能します。 + +低解像度のレシート処理やバッチ処理へのスケールに関する質問があれば、下のコメント欄に投稿してください。ハッピーコーディング! + +![画像からテーブルを抽出する例](https://example.com/assets/extract-tables-from-image.png "画像からテーブルを抽出 – サンプル出力") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/japanese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..b0f3e41b2 --- /dev/null +++ b/ocr/japanese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR を使用して Python で画像からテキストを抽出します。ラテン文字とキリル文字が混在するサポートを備えた、ステップバイステップの + Python OCR チュートリアルを学びましょう。 +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: ja +og_description: 画像からテキストをPythonで迅速に抽出する。このガイドでは、ラテン文字とキリル文字が混在する画像に対して、PythonでAspose + OCRを使用する方法を示します。 +og_title: Pythonで画像からテキストを抽出 – 完全なAspose OCRウォークスルー +tags: +- OCR +- Python +- Aspose +title: Pythonで画像からテキストを抽出 – 完全なAspose OCRガイド +url: /ja/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 画像からテキストを抽出する Python – 完全 Aspose OCR ガイド + +**画像からテキストを抽出する Python** が必要だったけど、ラテン文字とキリル文字が混在した画像を扱えるライブラリが分からない、ということはありませんか? 同じ悩みを抱える開発者は多く、マルチリンガルなスクリーンショットの OCR でつまずくことが頻繁にあります。 + +朗報です。Aspose OCR for Python を使えば、ほぼ手間なく処理できます。このチュートリアルでは、パッケージのインストール、ライセンスの適用、混在言語画像の読み込み、そして数行のコードで認識結果を取得する手順を解説します。最後まで読めば、どのプロジェクトにもすぐに組み込めるスクリプトが手に入ります。 + +## 学べること + +- 仮想環境で **Aspose OCR Python** をセットアップする方法 +- 言語ヒント(ラテン文字・キリル文字など)を付けると検出が高速になる理由 +- **画像からテキストを抽出する Python** を単一関数呼び出しで実現する正確なコード +- 混在言語 OCR の典型的な落とし穴と回避策 + +### 前提条件 + +- Python 3.8 以上がインストールされていること +- Aspose OCR のライセンスファイル (`Aspose.OCR.Java.lic`)。無料トライアルでもテストは可能ですが、ライセンスを適用すると透かしが除去されます。 +- ラテン文字とキリル文字が混在した PNG/JPEG 画像(例: `mixed_latin_cyrillic.png`) + +上記が揃っていれば、追加のフレームワークや重い依存関係は不要です。 + +--- + +## Step 1 – 画像からテキストを抽出する Python: Aspose OCR のインストール + +まずは PyPI からライブラリを取得し、ライセンスファイルが参照できるように環境を整えます。 + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **プロのコツ:** 権限エラーが出た場合は `pip install` に `--user` を付けるか、ターミナルを管理者として実行してください。 + +パッケージがインストールできたら、ライブラリをインポートし、ライセンスをエンジンに設定します。 + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +なぜこの段階でライセンスが必要かというと、ライセンスが無いとエンジンは **評価モード** で動作し、ページ数が制限されたり出力に透かしが入ったりします。事前にライセンスを設定しておくことで、後の `recognize` 呼び出しがクリーンなテキストを返すようになります。 + +--- + +## Step 2 – ラテン‑キリル混在画像をロードする + +次に画像をメモリに読み込みます。Aspose OCR は独自の `Image` クラスを使用し、基になるファイル形式を抽象化します。 + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +他の形式が使えるか気になる場合は、JPEG、BMP、TIFF、さらには PDF もサポートされています。拡張子を変えて `from_file` メソッドを呼び出すだけで自動的に処理されます。 + +--- + +## Step 3 – 言語ヒントで検出を高速化(任意だが推奨) + +画像に含まれる言語が分かっている場合、エンジンにヒントを与えることができます。必須ではありませんが、**処理時間が大幅に短縮** され、混在言語 OCR の精度も向上します。 + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +ヒントリストには Aspose OCR がサポートする任意の言語(例: `"Arabic"`、`"Japanese"`)を指定できます。このステップを省略すると、エンジンはすべての組み込み言語を試すため、大量の画像を処理する際は遅くなることがあります。 + +--- + +## Step 4 – OCR エンジンを実行してテキストを抽出 + +いよいよ本番です。文字認識を実行します。`recognize` メソッドは `OcrResult` オブジェクトを返し、プレーンテキスト、信頼度スコア、必要に応じてバウンディングボックスも取得できます。 + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **なぜ動くのか:** 背後では Aspose OCR がニューラルネットワークベースのテキスト検出器と、言語別の分類器を組み合わせています。`Image` オブジェクトを渡すだけで、二値化などの前処理は不要です。 + +--- + +## Step 5 – 抽出結果を表示 + +最後に結果をコンソールに出力します。実際のアプリではファイルへ書き出したり、データベースに保存したり、翻訳 API に渡したりすることも考えられます。 + +```python +print("Recognised text:") +print(extracted_text) +``` + +スクリプトを実行すると、次のような出力が得られるはずです。 + +``` +Recognised text: +Hello мир! This is a test. +``` + +この出力は、**画像からテキストを抽出する Python** がラテン文字とキリル文字の両方を一度に正しく処理できたことを示しています。 + +--- + +## 完全動作サンプル + +以下は `extract_ocr.py` というファイルに貼り付けてそのまま使えるフルスクリプトです。プレースホルダーのパスは実際の環境に合わせて置き換えてください。 + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +ファイルを保存し、仮想環境を有効化した上で次のコマンドを実行します。 + +```bash +python extract_ocr.py +``` + +認識されたテキストがコンソールに表示され、エンドツーエンドで動作することが確認できます。 + +--- + +## FAQ とエッジケース + +**画像がぼやけている場合は?** +Aspose OCR には自動デスキューやノイズ除去機能がありますが、極端に劣化した写真は OpenCV で前処理(例: ガウシアンブラーと閾値処理)した方が効果的です。`Image` クラスは NumPy 配列も受け取れるので、カスタムフィルタを適用した後に `recognize` を呼び出せます。 + +**フォルダ内の画像を一括処理できるか?** +可能です。`for` ループでロジックを回し、`from_file` に各ファイル名を渡して結果を辞書に格納すれば完了です。クラウド版を利用する場合は API のレートリミットに注意してください。 + +**言語ごとに別ライセンスが必要か?** +不要です。単一の Aspose OCR ライセンスでサポートされているすべての言語が利用可能です。`language_hints` はあくまでパフォーマンス向上のためのヒントです。 + +**PDF 入力はどう扱う?** +`Image.from_file` を `ocr.Image.from_file("document.pdf")` に置き換えるだけです。OCR エンジンが自動的に各ページをラスタライズし、結合されたテキストを返します。 + +--- + +## 結論 + +本稿では Aspose OCR を用いた **画像からテキストを抽出する Python** のシンプルかつ本番環境向けの手順を示しました。インストール、ライセンス設定、画像読み込み、言語ヒント、認識、表示という流れで、ラテン‑キリル混在コンテンツに対して信頼性の高い結果が得られます。 + +ここからは、バッチ処理向けの **画像からテキストへの変換**、自然言語処理向けの **Python OCR チュートリアル** への統合、あるいは多言語文書向けに別の言語ヒントを試すなど、応用範囲は無限です。コードはすでに手元にあるので、ぜひ活用してください。 + +別のユースケースや問題に直面したらコメントでシェアしてください。皆で情報を共有し、会話を続けましょう。Happy coding! + +![画像からテキストを抽出する Python の例](/images/extract-text-from-image-python.png "OCR 出力を示すスクリーンショット – 画像からテキストを抽出する Python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/japanese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..f75a0fe98 --- /dev/null +++ b/ocr/japanese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR を使用して画像からテキストを瞬時に抽出します。関心領域の定義方法、OCR 用に画像を読み込む手順、そして数分で請求書からテキストを抽出する方法を学びましょう。 +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: ja +og_description: Aspose OCR を使用して画像からテキストを抽出します。このガイドでは、関心領域の定義、OCR 用の画像の読み込み、そして請求書からのテキスト抽出を効率的に行う方法を示します。 +og_title: Aspose OCRで画像からテキストを抽出する – 完全チュートリアル +tags: +- ocr +- python +- image-processing +title: Aspose OCRで画像からテキストを抽出する – ステップバイステップガイド +url: /ja/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR を使用した画像からのテキスト抽出 – ステップバイステップガイド + +画像からテキストを**迅速に抽出**したいですか? あなたは一人ではありません—開発者は常にノイズの多いスキャン、領収書、請求書と格闘しています。このチュートリアルでは、*画像からテキストを抽出*する方法だけでなく、**関心領域(ROI)を定義**し、**OCR 用に画像をロード**し、請求書から必要な行を正確に取得する方法を示す完全なソリューションを順を追って説明します。 + +Aspose OCR ライブラリのインストールから、回転したページなどのエッジケースの処理まで、すべてカバーします。最後までに、手動でのトリミングは不要で、1 回の呼び出しで目的のテキストを抽出できる実行可能なスクリプトが手に入ります。 + +## 学習内容 + +- Aspose の Python API を使用して **OCR 用に画像をロード**する方法。 +- 重要な部分だけを処理できるように **関心領域(ROI)を定義**する最適な方法。 +- ページ全体を取得せずに **請求書からテキストを抽出**する方法。 +- **OCR で画像を処理**する際の効率的なヒントと一般的な落とし穴の回避策。 + +**前提条件** – 最近の Python 3.9+ 環境、正当な Aspose OCR ライセンスファイル、そして画像(例: 請求書 PNG)。他の外部ツールは必要ありません。 + +--- + +## ステップ 1 – OCR エンジンの初期化(基本設定) + +**OCR で画像を処理**する前に、ライセンスを保持するエンジンインスタンスが必要です。このステップは重要で、ライセンス未取得のエンジンは限定された結果しか返しません。 + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*重要な理由*: `OcrEngine` オブジェクトはライブラリの中核であり、言語モデル、画像前処理、ライセンス管理を行います。事前にライセンスを設定することで、完全な精度と透かしなしの結果が得られます。 + +--- + +## ステップ 2 – OCR 用に画像をロード + +エンジンの準備ができたので、**OCR 用に画像をロード**する必要があります。Aspose は多数のフォーマット(PNG、JPEG、TIFF)をサポートしていますが、`Image.from_file` を使用すると画像が正しくデコードされることが保証されます。 + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **プロのコツ**: 画像ファイルは 5 MB 未満に保つと処理が最速です。大きなファイルは OCR 前に `image.resize(width, height)` で縮小できます。 + +--- + +## ステップ 3 – 関心領域(ROI)の定義 + +ほとんどの請求書には、住所ブロックやフッターなどの不要なテキストが多数含まれます。**関心領域(ROI)を定義**することで、金額や日付がある部分だけをエンジンに見せ、速度と精度を向上させます。 + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*動作原理*: `Rectangle` クラスは画像を仮想的に切り取ります。OCR エンジンは矩形外のピクセルを一切見ないため、ROI 外のノイズは無視されます。 + +--- + +## ステップ 4 – ROI 内のテキストを認識 + +エンジン、画像、ROI の準備ができたら、ついに **画像からテキストを抽出**します。`recognize` メソッドは検出された文字列と信頼度スコアを含む `OcrResult` オブジェクトを返します。 + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**期待される出力**(典型的な請求書の合計行の例): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +ROI が正しく位置していれば、必要な行だけが表示されます—他のものは表示されません。 + +--- + +## ステップ 5 – 完全動作例(コピー&ペースト可能) + +以下は、これまでのすべてのステップを結びつけた完全なスクリプトです。`extract_invoice_roi.py` として保存し、`python extract_invoice_roi.py` を実行してください。 + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +スクリプトを実行すると、対象の行がコンソールに出力されます。空文字列が返った場合は、ROI の座標を再確認してください—数ピクセルのずれでもテキストが完全に除外されることがあります。 + +--- + +## ステップ 6 – 一般的なバリエーションとエッジケース + +### a) 異なる請求書レイアウト +ベンダーごとに請求書のレイアウトが異なり、合計金額のボックスがずれることがあります。複数のレイアウトで **OCR で画像を処理**するには、次を検討してください: + +- **複数の ROI**: 複数の矩形でエンジンを順次実行し、最も信頼度の高い結果を選択します。 +- **動的 ROI 検出**: 軽量な画像処理ライブラリ(例: OpenCV)を使用してまず “Total” ラベルを検出し、それに対して ROI を計算します。 + +### b) 回転または歪んだ画像 +スキャンが傾いている場合、認識前に `image.rotate(angle)` を呼び出します: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR には自動デスケュー機能もありますが、手動回転の方が細かい制御が可能です。 + +### c) ラテン文字以外の文字 +デフォルトの言語モデルは英語です。別の言語で書かれた **請求書からテキストを抽出**するには、認識前に言語を設定します: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) 大きな PDF +マルチページ PDF を扱う場合、まず各ページを画像として抽出します(Aspose PDF → Image)、その後各ページに同じ ROI ロジックを適用します。 + +--- + +## ステップ 7 – パフォーマンスのヒントとプロのコツ + +- **エンジンをキャッシュ**: ループ内で `OcrEngine` を繰り返し作成すると遅くなります。一度インスタンス化して再利用してください。 +- **バッチ処理**: 複数の請求書がある場合、OCR 呼び出しを `ThreadPoolExecutor` でラップして I/O バウンドの作業を並列化します。 +- **信頼度チェック**: `ocr_result.confidence` は 0 から 1 の浮動小数点数です。0.85 未満の結果は拒否し、より大きな ROI または手動レビューにフォールバックします。 + +> **注意**: ROI を小さくしすぎると文字が切れ、出力が乱れる可能性があります。スケールする前に、必ずいくつかのサンプル請求書でテストしてください。 + +--- + +## 結論 + +これで、Aspose OCR を使用して **画像からテキストを抽出**するための堅牢で本番環境向けの手法が手に入りました。**関心領域(ROI)を定義**し、**OCR 用に画像をロード**し、請求書のフィールドから確実に **テキストを抽出**する方法が含まれています。OCR を狭い ROI に限定することで、速度と精度の両方が向上し、何千件もの領収書のバッチ処理に最適です。 + +次のステップに進む準備はできましたか?このスクリプトを Flask API に統合し、ウェブアプリが請求書をアップロードして即座に合計金額を返すようにしてみてください。また、複数の ROI を試して日付、請求書番号、ベンダー名を一度に抽出することもできます。可能性は無限で、ここで紹介した基礎を押さえていれば、どんな OCR の課題にも対応できるでしょう。 + +コーディングを楽しんで、抽出したテキストが常にきれいでありますように! + +![画像からテキストを抽出する方法を示すワークフローダイアグラム](workflow.png){: .center-image alt="画像からテキストを抽出するワークフロー"} + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/japanese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..345362deb --- /dev/null +++ b/ocr/japanese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-05-03 +description: Python の非同期 OCR を使用して画像からテキストを抽出します。tif をテキストに変換する方法、OCR 用に画像を読み込む方法、そして画像からテキストを効率的に認識する方法を学びましょう。 +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: ja +og_description: Pythonの非同期OCRを使用して画像からテキストを抽出します。このガイドでは、tif をテキストに変換する方法、OCR 用に画像を読み込む方法、画像からテキストを認識する方法を示します。 +og_title: Python非同期OCRで画像からテキストを抽出する完全ガイド +tags: +- OCR +- Python +- AsyncIO +title: Python非同期OCRで画像からテキストを抽出する完全ガイド +url: /ja/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python Async OCRで画像からテキストを抽出 – 完全ガイド + +Need to **画像からテキストを抽出** quickly? With Python's async OCR you can do it in just a few lines of code. Whether you're dealing with a massive .tif scan or a handful of JPEGs, this tutorial shows you how to convert tif to text, load image for OCR, and finally recognize text from image without blocking your event loop. + +Here's the thing—most developers reach for a synchronous library, then stare at a frozen UI while the engine crunches pixels. In this guide we’ll flip that script by using Aspose OCR Cloud's asynchronous API, so your application stays responsive. By the end you’ll have a runnable script that pulls text out of any supported image format, and you’ll understand the why behind each step. + +## 学べること + +- How to set up the Aspose OCR Cloud SDK for Python. +- The exact code needed to **load image for OCR** and start an async recognition task. +- Tips for handling large .tif files and licensing quirks. +- Ways to **extract image text** safely, even when the service returns errors. +- A complete, copy‑paste‑ready example you can drop into your own project. + +> **Prerequisite**: Python 3.8+ and an Aspose OCR Cloud license file (`Aspose.OCR.Java.lic`). No other third‑party packages are required. + +--- + +![画像からテキストを抽出するワークフロー](workflow.png){: .align-center alt="画像からテキストを抽出するワークフロー"} + +## 画像からテキスト抽出 – Async OCR の概要 + +Before we dive into code, let’s unpack the flow. When you call `recognize_async` the SDK sends the image to Aspose’s cloud, spins up a background job, and hands you a `Task` object. Awaiting that task yields an `OcrResult` containing the plain‑text representation of the picture. Because the call is asynchronous, you can fire off multiple jobs in parallel—perfect for batch processing large archives of scanned documents. + +### 非同期を使う理由 + +- **Non‑blocking I/O** – Your event loop stays free to handle other work (e.g., serving HTTP requests). +- **Scalability** – Spin up dozens of recognitions at once; the cloud does the heavy lifting. +- **Responsiveness** – UI applications won’t freeze while waiting for the OCR engine. + +Now that the “why” is clear, let’s see the **how**. + +## Convert TIF to Text Using Aspose OCR + +A common stumbling block is assuming every OCR library natively supports .tif. Aspose does, but you still need to feed it an `Image` object. The SDK abstracts the format, so you can simply point it at the file path. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**重要な行の説明** + +- `ocr_engine.license = ...` – Without a valid license the cloud returns a 403 error. Make sure the `.lic` file is accessible from your script’s working directory. +- `ocr.Image.from_file(image_path)` – This step **loads image for OCR**; the SDK automatically detects the format, so you don’t have to convert the .tif beforehand. +- `recognize_async` – Returns a coroutine‑compatible task. You could launch several of these in a `gather` call if you have a batch. + +> **Pro tip**: If you’re processing gigabyte‑size TIFFs, consider splitting them into pages first. Aspose’s `Image.from_file` can accept a page index, which reduces memory pressure. + +## Recognize Text from Image Asynchronously + +Let’s see how you’d call the function from a typical script. The `asyncio.run` entry point is the simplest way to fire off the coroutine when you’re not already inside an event loop (e.g., a plain CLI tool). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**What to expect** + +Running the script against a clear, high‑resolution scan typically yields a multi‑line string matching the printed page. If the image is noisy, Aspose still attempts to clean it up, but you may see garbled characters. In that case, consider pre‑processing with OpenCV (e.g., thresholding) before feeding the file to the OCR engine. + +### エラーを優雅に処理する + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Catching `OcrException` ensures your program doesn’t crash when the cloud returns an error—something that often trips newcomers who forget about network hiccups. + +## Load Image for OCR – Practical Tips + +1. **File Path vs. Bytes** – The SDK accepts a file path, but you can also load from a `bytes` object if the image lives in memory (`ocr.Image.from_bytes`). This is handy when you’ve already fetched the file from S3 or a database. +2. **Supported Formats** – Besides .tif, Aspose handles PDF, BMP, GIF, and even multi‑page TIFFs. Use `Image.from_file("doc.pdf")` to OCR PDFs directly. +3. **Performance** – For batch jobs, reuse the same `OcrEngine` instance; creating a new engine for each file adds unnecessary overhead. + +## Full Working Example (All Steps in One Script) + +Below is the complete, ready‑to‑run script that incorporates licensing, error handling, and a simple command‑line argument parser. Copy‑paste it, adjust the license path, and you’re set. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Expected output** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +If the image contains a simple paragraph, the console will display the same lines, preserving line breaks. For multi‑page TIFFs, the SDK concatenates the pages in order. + +## Frequently Asked Questions (FAQ) + +**Q: 他の非同期フレームワーク(例: FastAPI)でも動作しますか?** +A: Absolutely. Replace the `asyncio.run` call with `await async_ocr(path)` inside your endpoint, and FastAPI will handle the event loop for you。 + +**Q: 数百のファイルを一度に処理したい場合は?** +A: Use `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: パスワードで保護された PDF からテキストを抽出できますか?** +A: Not directly. You’ll need to unlock the PDF first (e.g., with `pikepdf`) and then feed the decrypted bytes to `ocr.Image.from_bytes`。 + +**Q: 英語以外の言語を扱うには?** +A: Set the language before recognition: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose supports over 60 languages; check the docs for the exact identifiers. + +## Conclusion + +You now have a solid, **extract text from image** solution that leverages Python’s `asyncio` and Aspose OCR Cloud’s asynchronous API. By following the steps above you can **convert tif to text**, **load image for OCR**, and **recognize text from image** in a non‑blocking fashion—perfect for both command‑line utilities and high‑traffic web services. + +What’s next? Try batching a folder of scans, experiment with language settings, or pipe the OCR output into a downstream NLP pipeline. The sky’s + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/japanese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..6472d3132 --- /dev/null +++ b/ocr/japanese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR を使用してテキストを迅速に抽出します。OCR の精度向上方法、画像の OCR 読み込み、画像の前処理、そして Python + での OCR スキャン実行方法を学びましょう。 +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: ja +og_description: Aspose OCR を使用してテキストを迅速に抽出します。OCR の精度向上、画像の OCR 読み込み、画像の前処理、Python + での OCR スキャンの実行方法をマスターしましょう。 +og_title: テキスト抽出 OCR – Aspose OCR を使った完全ガイド +tags: +- OCR +- Python +- Aspose +title: テキスト抽出 OCR – Aspose OCR を使った完全ガイド +url: /ja/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Aspose OCR を使用した完全ガイド + +スキャン画像が歪んでいて、結果が意味不明な文字列になってしまったことはありませんか?同じ壁にぶつかる開発者は多いです。画像が傾いていたり、ノイズが多かったり、コントラストが低いだけで OCR の精度は大きく低下します。幸い、いくつかの設定を調整するだけで、乱れた画像をきれいな検索可能テキストに変換できます。このチュートリアルでは、OCR の精度向上、画像の OCR 読み込み、前処理、そして最終的に Aspose OCR for Python でスキャンを実行するまでのフルエンドツーエンド例を順を追って解説します。 + +このガイドが終わる頃には、スキャンした JPEG を自動でクリーンアップし、抽出したテキストをコンソールに出力する実行可能スクリプトが手に入ります。「ドキュメントを見る」リンクは不要です。必要なものはすべてここにあります。 + +## 必要なもの + +- **Python 3.8+**(最新の安定版がベストです) +- **Aspose.OCR for Python via .NET** – `pip install aspose-ocr` でインストール +- 購入済みの場合は **ライセンスファイル**(`Aspose.OCR.Java.lic`)※無料トライアルでもテスト可能 +- 処理したい画像(例:`skewed_scanned_doc.jpg`) + +以上です。これらが揃っていれば、すぐにコードに取り掛かれます。 + +## Step 1: Extract Text OCR with Aspose OCR Engine + +最初に OCR エンジンを起動し、ライセンスを適用します。エンジンは画像を読む「脳」のようなものです。ライセンスが無いと、デモ制限を超えて動作しません。 + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **ポイント:** 事前にライセンスを適用しておかないと、後で静かな失敗が起きます。このステップを省くと、エンジンは制限モードに入り、数文字しか取得できません。テキスト OCR を抽出したいときに期待する結果にはなりません。 + +## Step 2: Improve OCR Accuracy with Pre‑processing + +歪んだり粒状になったスキャンは OCR プロジェクトの最大の障害です。Aspose では、デスクュー、ノイズ除去、コントラスト強化といった便利な設定を簡単に切り替えられます。これが **improve ocr accuracy** の核心です。 + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – 画像を水平に回転させます。元の文書が完全に平坦でない場合に必須です。 +- **remove_noise** – 低解像度 JPEG によく見られるランダムな斑点を除去します。 +- **enhance_contrast** – 暗い文字をさらに暗く、背景を明るくして、文字と背景の区別をしやすくします。 +- **binarization = "Otsu"** – 黒白変換の最適閾値を決定する古典的アルゴリズムです。 + +> **プロのコツ:** ソース画像がすでにクリアであることが分かっている場合は、これらのオプションをオフにして処理速度を上げられます。ただし、実務のスキャンではオンのままが安全です。 + +## Step 3: Load Image OCR for Scanning + +エンジンの準備ができたら、**load image ocr** を行います。Aspose の `Image.from_file` メソッドは JPEG、PNG、TIFF など複数のフォーマットに対応しています。 + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +`YOUR_DIRECTORY` を実際のパスに置き換えてください。Web アップロードなどでメモリ上のバイトストリームから読み込む場合は、`ocr.Image.from_bytes(byte_data)` も使用可能です。同じエンジンが処理します。 + +> **エッジケース:** 大きな TIFF ファイルはメモリを大量に消費します。`MemoryError` が出たら、まず画像をダウンサンプリングするか、`ocr_engine.config.max_image_size` でサイズ上限を設定してください。 + +## Step 4: Run OCR Scan and Get Results + +画像のロードと前処理が完了したら、最後に **run OCR scan** を実行します。この呼び出しが裏で重い処理をすべて行います。 + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +`ocr_result` オブジェクトには便利なプロパティがいくつかあります: + +- `ocr_result.text` – 取得したプレーンテキスト +- `ocr_result.confidence` – 0〜100 の数値スコアで全体的な信頼度を示します +- `ocr_result.words` – バウンディングボックス座標を持つ単語オブジェクトのリスト。ハイライト表示に便利です + +## Step 5: Print the Extracted Text + +最後に結果を出力します。実際のアプリではテキストをファイルやデータベースに保存したり、検索インデックスに流し込んだりしますが、このチュートリアルではシンプルに `print` で表示します。 + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**期待される出力**(シンプルな請求書の例): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +信頼度が低い(< 80)場合は、前処理オプションを見直すか、`"Sauvola"` など別の二値化手法を試してください。 + +## Bonus: Visualizing the Pre‑processing Pipeline (Optional) + +エンジンが画像に対して何をしたかを確認したくなることがあります。Aspose は処理後のビットマップをエクスポートできます: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +この画像をドキュメントに埋め込むことも可能です: + +extract text ocr workflow diagram showing preprocessing steps + +> **なぜやるのか:** OCR 結果が期待外れの場合、`processed_debug.png` をざっと見るだけで、画像がまだ暗すぎる、傾いている、ノイズが残っているなどの原因が分かります。 + +## Common Questions & Gotchas + +- **文書が複数ページの場合は?** + Aspose OCR はページ単位で処理します。各ページ画像をループし、`ocr_result.text` を結合してください。 + +- **英語以外の言語は認識できますか?** + はい。`ocr_engine.config.language = "fra"`(または任意の ISO‑639‑2 コード)を `recognize` 呼び出し前に設定します。 + +- **画像サイズに上限はありますか?** + デフォルトで 10 MP が上限です。より大きなスキャンが必要な場合は `ocr_engine.config.max_image_size` を増やしますが、メモリ使用量に注意してください。 + +- **PDF 用に別の OCR エンジンが必要ですか?** + PDF の場合は、Aspose.PDF で各ページを画像に変換してから本手順を実行するか、組み込みの PDF OCR 機能を使用します。画像が得られれば手順は同じです。 + +## Recap + +Aspose OCR for Python を使って **extract text ocr** を行う方法を、ライセンス適用から **improve ocr accuracy** の設定、画像の読み込み、最終的な **run OCR scan** まで網羅しました。完全なスクリプトはそのままコピー&ペースト可能で、各設定フラグの意味も理解できたはずです。 + +## What’s Next? + +- **異なる二値化手法**(`"Sauvola"`、`"Bradley"`)を試す。フォントによっては適応閾値の方が効果的です。 +- **検索エンジン**(例:Elasticsearch)と統合し、信頼度スコアで結果をランク付けする。 +- **OCR 後処理** ライブラリ(`pyspellchecker` など)を組み合わせて、一般的な認識ミスを修正する。 +- **バッチ処理** を実装し、数百枚のスキャンを一括処理できるように関数化し、フォルダ単位で画像を渡す。 + +コードを自由にカスタマイズし、ロギングを追加したり、ドキュメント管理パイプラインに組み込んだりしてください。問題があればコメントで教えてください。Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/japanese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..e1130bb30 --- /dev/null +++ b/ocr/japanese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java を使用した PDF の OCR 方法。PDF に対して OCR を実行し、テキストを認識し、PDF を JSON + に変換し、数行のコードで OCR 用に PDF をロードする方法を学びましょう。 +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: ja +og_description: Aspose OCR Java を使用して PDF を OCR する方法。このガイドでは、PDF に OCR を実行し、テキストを認識し、PDF + を JSON に変換し、OCR 用に PDF をすばやくロードする方法を示します。 +og_title: Aspose OCRでPDFをOCRする方法 – 完全プログラミングチュートリアル +tags: +- Aspose OCR +- Java +- PDF processing +title: Aspose OCRでPDFをOCRする方法 – 完全ステップバイステップガイド +url: /ja/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR で PDF を OCR する方法 – 完全ステップバイステップガイド + +コマンドラインツールに悩まされたり、高額な SaaS に支払ったりせずに **PDF を OCR する方法** を知りたくありませんか? あなただけではありません。請求書の自動化、スキャンされた契約書のアーカイブ、検索可能なナレッジベースの構築など、さまざまなプロジェクトで PDF からテキストを高速かつ確実に抽出する必要に直面します。 + +朗報です! Aspose OCR for Java を使えば **PDF 上で OCR を実行** でき、PDF ページのテキストを認識し、**PDF を JSON に変換** でき、さらには数行のコードで **PDF を OCR 用にロード** できます。このチュートリアルでは、全体のワークフローを順を追って解説し、各ステップの重要性を説明し、すぐにプロジェクトに組み込めるサンプルコードを提供します。 + +## 学べること + +- Aspose OCR エンジンのセットアップとライセンスの適用方法 +- **PDF を OCR 用にロード** して認識器に渡す正確な手順 +- すべてのページを一括で **テキスト PDF を認識** する方法 +- 完全な OCR 結果を **JSON** ファイル(下流 API に最適)と、単一ページを **XML** にエクスポートする方法 +- マルチページ PDF やカスタム言語パックを扱う際のヒント、落とし穴、バリエーション + +> **前提条件** – Java 8 以上、 有効な Aspose OCR for Java ライセンスファイル (`Aspose.OCR.Java.lic`) と、クラスパスに配置した Aspose OCR JAR が必要です。その他の外部ライブラリは不要です。 + +--- + +## PDF を OCR する – Aspose OCR エンジンの初期化 + +最初に行うべきことは `OcrEngine` のインスタンスを作成し、ライセンスを添付することです。このステップでフル機能が解放され、評価版の透かしが除去されます。 + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**なぜ重要か:** +ライセンスがないと Aspose OCR はページ数が制限され、出力に透かしが付く「トライアル」モードで動作します。事前にライセンスを適用しておくことで、パイプライン全体が予期せぬ制限なしに動作します。 + +--- + +## PDF 上で OCR を実行 – ドキュメントをロードしてテキストを認識 + +次に **PDF を OCR 用にロード** します。Aspose OCR は PDF を特殊な `PdfDocument` 型として扱い、内部で各ページを画像に変換してから認識器に渡します。 + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**内部で何が起きているか?** +`recognizeDocument` はすべてのページを走査し、最適な DPI でラスタライズした後に OCR エンジンを実行します。結果は `OcrPage` 配列となり、各要素に検出されたテキスト、信頼度スコア、レイアウト情報が格納されます。このアプローチは、生の PDF バイト列を汎用 OCR ライブラリに渡すよりもはるかに信頼性が高いです。 + +--- + +## OCR 結果を JSON に変換 – 完全レポートのエクスポート + +下流システムの多くは JSON を好みます。JSON は Java、JavaScript、Python、PowerShell などで簡単にデシリアライズできるからです。Aspose OCR には `JsonExport` ヘルパーが同梱されており、`OcrPage[]` 配列全体をシリアライズできます。 + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**いつ使うべきか?** +OCR 出力を検索インデックス(Elasticsearch、Solr)やデータパイプラインに流し込む場合、JSON 形式は各ページ・行・単語を構造化された形で提供し、信頼度も含めて扱いやすくなります。 + +--- + +## 最初のページを XML にエクスポート – 個別ページの保存 + +場合によっては単一ページだけが必要になることがあります。たとえば最初のページにタイトルや請求書番号がある場合です。`XmlExport` クラスを使えば、単一の `OcrPage` を整然とした XML ファイルに書き出せます。 + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**なぜ XML?** +レガシーシステムや一部のエンタープライズワークフローは、取り込み用に XML スキーマを前提としています。生成されるファイルは Aspose 独自のスキーマに準拠しているため、バリデーションが容易です。 + +--- + +## 出力の検証 – JSON と XML ファイルを確認 + +プログラムが終了すると、`YOUR_DIRECTORY` に以下の 2 ファイルが生成されます。 + +- `report_ocr.json` – ページオブジェクトの配列が格納されています。例としては次のようなスニペットが出力されます: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – 1 ページ目の情報が `` タグでラップされた形で格納されています。 + +任意のエディタで開くと、生の OCR 文字列、信頼度スコア、バウンディングボックス座標が確認できます。JSON が空の場合は、入力 PDF がラスタライズされた画像(スキャン画像)ではなく選択可能なテキストで構成されていないか確認してください。Aspose OCR は画像に対してのみ機能します。 + +--- + +## よくある落とし穴とプロ向けのコツ + +| 問題 | 発生理由 | 対策 | +|------|----------|------| +| **JSON が空** | PDF がネイティブテキストであり画像が含まれていない | `PdfDocument.fromFile(..., true)` で強制ラスタライズするか、事前にページを画像に変換 | +| **信頼度が低い** | 元 PDF の解像度が低い、または過度に圧縮されている | `ocrEngine.getImageProcessingOptions().setDpi(300)` で DPI を上げてから `recognizeDocument` を呼び出す | +| **ライセンスが見つからない** | パスが間違っている、またはファイルが欠如している | 絶対パスを使用するか、`.lic` ファイルをクラスパスに配置し `lic.setLicense("Aspose.OCR.Java.lic")` を呼び出す | +| **大容量 PDF でメモリ不足** | すべてのページを一度にメモリへロードしている | バッチ処理でページを分割: `recognizeDocument(pdfDoc, startPage, endPage)` | + +--- + +## サンプルの拡張例 + +- **特定言語で PDF を OCR** – `ocrEngine.getLanguage().setLanguage(Language.English)` またはカスタム言語パックをロード +- **各ページを個別の JSON ファイルにエクスポート** – `ocrPages` をイテレートし `JsonExport.save(page, "page" + page.getPageNumber() + ".json")` を呼び出す +- **検索エンジンと統合** – JSON を Elasticsearch の `attachment` プロセッサに渡して全文検索を実現 + +--- + +## 結論 + +これで **Aspose OCR for Java** を使った **PDF の OCR 方法** が完全にマスターできました。エンジンの初期化、PDF のロード、OCR の実行、そして **JSON** と **XML** の両方へのエクスポートという一連の手順により、任意のバックエンドワークフローに OCR を組み込めます。**PDF 上で OCR を実行**、**テキスト PDF を認識**、**PDF を JSON に変換**、あるいは **PDF を OCR 用にロード** したいシナリオすべてに対応可能です。 + +ぜひ試してみて、DPI や言語設定を調整し、これまで読めなかった PDF を検索可能な資産へと変換してください。さらに踏み込むなら、JSON を Elasticsearch にインデックスしたり、XML を XSLT で加工してカスタムレポートを生成したりできます。 + +Happy coding, and may your PDFs always be readable! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/japanese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..5118e6b43 --- /dev/null +++ b/ocr/japanese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,156 @@ +--- +category: general +date: 2026-05-03 +description: OCRを迅速に実行する方法:Aspose OCR Javaを使用して画像からテキストを抽出し、フォームからテキストを認識する方法を学びます。OCR用に画像を読み取る簡単な手順。 +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: ja +og_description: OCR を素早く実行する方法:Aspose OCR Java を使用して画像からテキストを抽出し、フォームからテキストを認識する方法を学びます。OCR + 用の画像読み取りのシンプルな手順。 +og_title: フォームでOCRを実行する方法 – 画像からテキストを抽出 +tags: +- ocr +- java +- image-processing +title: フォームでOCRを実行する方法 – 画像からテキストを抽出 +url: /ja/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# フォームで OCR を実行する方法 – 画像からテキストを抽出 + +スキャンしたドキュメントで **how to run ocr** を、時間をかけてマニアックなライブラリをいじることなく実行できたらと思ったことはありませんか? あなたは一人ではありません。請求書のデジタル化、契約書のアーカイブ、手書きフォームからのデータ抽出など、多くのプロジェクトで **extract text from image** ファイルを扱えることは日々の課題です。 + +実は、Aspose OCR for Java を使えば、全体のパイプラインがほぼ手間なく実行できます。このチュートリアルでは、**recognize text from form** ファイルに必要なコードを一行ずつ解説し、各ステップの重要性を説明し、**read image for ocr** の結果と信頼度スコアの取得方法を示します。最後まで読めば、Maven や Gradle プロジェクトにすぐ組み込める実行可能な Java クラスが手に入ります。 + +## 学べること + +- Aspose OCR エンジンのセットアップとライセンスの適用方法 +- JPEG、PNG、TIFF をメモリに読み込む手順 +- OCR を実行し、認識されたテキストの各行を反復処理する方法 +- 信頼度の低い行を手動レビュー用に検出する方法 +- サンプルを拡張してマルチページ PDF や別の画像形式に対応させる方法 + +Aspose の事前知識は不要です。基本的な Java 開発環境(JDK 11 以上)とお好きな IDE があれば始められます。さあ、始めましょう。 + +![how to run ocr on a scanned form example](/images/ocr-demo.png){alt="スキャンしたフォームで OCR を実行する例"} + +## Step 1: Initialize the OCR Engine – **how to run ocr** + +OCR 操作を行う前に最初にすべきことは、`OcrEngine` インスタンスを作成し、有効なライセンスを添付することです。ライセンスがない場合、ライブラリはデモモードで動作し、処理できるページ数が制限されます。 + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Why this matters:** +`OcrEngine` は言語、検出モード、パフォーマンス調整などすべての設定を保持します。ライセンスを事前に設定しておかないと、出力が途中で切れるトライアルモードに自動的に切り替わってしまいます。 + +## Step 2: Load the Image – **extract text from image** + +次に、スキャンしたいファイルを指す `Image` オブジェクトが必要です。Aspose は幅広いフォーマットに対応しているため、既に PNG に変換した PDF ページや、生の JPEG、さらにはマルチページ TIFF でも読み込めます。 + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Why this matters:** +画像を `Image` オブジェクトとして読み込むことで、エンジンはピクセルデータ、DPI 情報、カラーデプスといった OCR 精度に影響する情報へアクセスできます。生のバイト配列だけを渡すと、これらのヒントが失われます。 + +## Step 3: Run OCR – **recognize text from form** + +いよいよ本番です:文字認識を実行します。`recognize` メソッドは `RecognitionResult` を返し、各行を表す `Line` オブジェクトのコレクションとそれぞれの信頼度スコアが含まれます。 + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Why this matters:** +`recognize` を呼び出すと、内部で前処理(デスキュー、ノイズ除去)、セグメンテーション、文字分類、後処理(スペルチェック、言語モデル)といった一連のプロセスが実行されます。結果オブジェクトはその複雑さを抽象化して提供します。 + +## Step 4: Process the Results – **read image for ocr** output + +`RecognitionResult` を取得したら、各行を反復処理し、自動的に保持すべきものを決め、信頼度が低いものをフラグ付けします。多くの印刷フォームでは、信頼度 85 % を基準にすると良い出発点になります。 + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Expected output (sample):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +上記の例では、合計金額の最後の桁の認識にエンジンが自信を持てなかったため、警告を出力しています。これらの行を UI に渡して手動で修正したり、後でレビューできるようにログに残すことができます。 + +### Edge Cases & Tips + +- **Multiple pages:** マルチページ PDF がある場合は、各ページインデックスをループし `Image.fromPdf(pdfPath, pageIndex)` を呼び出します。 +- **Different languages:** `engine.getLanguage().setLanguage(Language.Spanish);` を `recognize` 前に設定します。 +- **Image quality:** 低解像度スキャン(150 DPI 未満)は信頼度が 80 % 以下になることが多いです。`image.resize(300, 300)` で拡大すると改善する場合がありますが、根本的な解決策は高品質なスキャンです。 +- **Performance:** 多数の画像を処理する場合は、毎回新しいインスタンスを作るよりも同じ `OcrEngine` インスタンスを再利用した方がオーバーヘッドが減ります。 + +## Frequently Asked Questions + +**Can I run this on a headless server?** +もちろんです。ライブラリは GUI 依存がないため、Docker コンテナや CI パイプライン内でも問題なく動作します。 + +**What if I don’t have a license yet?** +`engine.recognize` は呼び出せますが、デモモードでは最初の 2 ページまでしか処理せず、出力に透かしが入ります。簡単なテストには最適です。 + +**Is there a way to extract structured data (e.g., tables)?** +Aspose OCR には `TableRecognizer` クラスがありますが、こちらは初心者向けガイドの範囲外です。基本をマスターしたら、公式ドキュメントで `TableRecognizer` の使用方法を確認してください。 + +## Wrapping It All Up – **how to run ocr** in a nutshell + +スキャンしたフォームで **how to run ocr** するために必要なすべての手順を網羅しました:エンジンの初期化、画像の読み込み、認識の実行、結果のインテリジェントな処理。数行の Java コードで **extract text from image** ファイル、**recognize text from form** ドキュメント、そして **read image for ocr** の出力と信頼度スコアを取得でき、人手によるレビューが必要かどうかを判断できます。 + +次のステップは? JPEG をマルチページ TIFF に置き換えてみる、信頼度閾値を調整してみる、あるいは出力をデータベースに保存して自動データ入力に統合してみる。処理すべき文書が増えるほど、可能性は広がります。 + +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/japanese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/japanese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..6127ac620 --- /dev/null +++ b/ocr/japanese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-05-03 +description: JavaでOCRを使用してPDFファイルからテキストを抽出する方法。PDFからテキストを認識し、PDFをテキストに変換し、OCRによるマルチページPDFを効率的に処理する方法を学びます。 +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: ja +og_description: JavaでOCRを使用してPDFファイルからテキストを抽出する方法。このガイドでは、PDFからテキストを認識し、PDFをテキストに変換し、OCRでマルチページPDFを処理する方法を示します。 +og_title: JavaでOCRを使用する方法 – 複数ページPDFからテキストを抽出 +tags: +- ocr +- java +- pdf +- aspose +title: JavaでOCRを使用する方法 – 複数ページのPDFからテキストを抽出する +url: /ja/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# JavaでOCRを使用する方法 – マルチページPDFからテキストを抽出 + +**JavaプロジェクトでOCRを使用する** 方法は? PDFの内部テキスト層に依存せずにテキストを抽出する必要がある場合は、ここが正解です。このチュートリアルでは、**PDFからテキストを認識**し、PDFをテキストに変換し、さらに **OCRマルチページPDF** をワンコールで処理できる、完全に実行可能なソリューションをステップバイステップで解説します。 + +たとえば、スキャンされた契約書 — 12ページのTIFFがPDFに埋め込まれているとします。インデックス作成のために検索可能なテキストが必要ですが、ファイルには文字情報が埋め込まれていません。問題ありません。手順通りにやってみましょう。 + +> **得られるもの:** Aspose.OCR を使用したすぐに実行できる Java スニペット、各行が重要な理由の解説、一般的な落とし穴への対策、そして即座に確認できるサンプル出力。 + +--- + +## 必要なもの + +作業を始める前に、以下を用意してください。 + +* **Java 17**(または最近の JDK) – 古いバージョンでも動作しますが、17 が推奨です。 +* **Aspose OCR for Java** ライブラリ – Aspose のサイトから JAR をダウンロードするか、Maven/Gradle で追加してください。 +* 処理したい **マルチページ PDF**(または TIFF)。例では `contract_multipage.pdf` を `YOUR_DIRECTORY` フォルダーに配置します。 +* 有効な **Aspose OCR ライセンスファイル**(`Aspose.OCR.Java.lic`)。ライセンスがない場合は評価モードで動作し、透かしが入りますが、簡単なテストには問題ありません。 + +以上です—追加の OCR エンジンやネイティブバイナリは不要、JAR とライセンスだけで完結します。 + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "JavaでOCRを使用する方法 – 処理フローのビジュアル概要") + +*画像代替テキスト: JavaでOCRを使用する方法 – 読み込み、認識、テキスト出力のビジュアル概要。* + +--- + +## 手順 1: OCR エンジンのセットアップ – **OCR の正しい使い方** + +最初に行うべきことは OCR エンジンのインスタンスを作成し、ライセンスを適用することです。ライセンスがない場合でもエンジンは動作しますが、出力に試用版の透かしが表示されます。 + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**重要な理由:** +`OcrEngine` は画像解析、言語検出、テキスト抽出を統括するコアオブジェクトです。ライセンスを早期に設定しておくことで、後から試用モードにフォールバックすることを防ぎ、精度に影響が出るのを回避できます。 + +--- + +## 手順 2: ドキュメントの読み込み – **PDF からテキストを効率的に抽出** + +Aspose OCR は PDF と TIFF の両方のコンテナを直接読み取れます。ここではスキャン画像が格納されたマルチページ PDF をロードします。 + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**重要な理由:** +`PdfDocument.fromFile` はコンテナを解析し、各ページを画像として取得できるようにします。この抽象化により、元のフォーマットに関係なく OCR エンジンがすべてのページを同一に扱えます。 + +**ヒント:** ソースファイルが TIFF の場合も同じ呼び出しで動作します—Aspose が自動でフォーマットを検出するため、追加コードは不要です。 + +--- + +## 手順 3: すべてのページを一括で認識 – **PDF からテキストをシームレスに認識** + +自分でページをループする代わりに、エンジンに対してドキュメント全体を一度の呼び出しで処理させられます。これは **OCR マルチページ PDF** を扱う際の **PDF からテキストへの変換** に最も効率的な方法です。 + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**重要な理由:** +`recognizeDocument` を一回だけ呼び出すことで、エンジンの初期化に伴うオーバーヘッドが削減されます。また、ページ間で言語設定が一貫するため、フォントが混在しがちな法的文書で特に重要です。 + +--- + +## 手順 4: 認識結果の出力 – **インデックス作成用に PDF をテキストに変換** + +すべてのページが処理されたら、結果をイテレートして抽出された文字列を出力します。ファイルやデータベースへの書き込み、検索インデックスへの投入も同様に行えます。 + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**期待される出力(抜粋):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +PDF が 12 ページの場合、`--- Page X ---` セクションが 12 個出力され、それぞれに OCR で抽出されたテキストが続きます。 + +--- + +## **OCR マルチページ PDF** の高度なヒント + +### 1. 言語設定を調整 + +デフォルトでは Aspose が自動検出しますが、明示的に指定すると処理が高速化します。 + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. 画像前処理を制御 + +スキャンした契約書はノイズが多いことがあります。デスキューや二値化を有効にしましょう。 + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. 大容量ファイルをうまく扱う + +100 MB を超える PDF を処理する場合は、ドキュメント全体を一度にロードせずにページ単位でストリーミングすることを検討してください。 + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +このパターンはメモリ使用量を抑え、バッチジョブに最適です。 + +### 4. 構造化フォーマットへのエクスポート + +プレーンテキスト以外にも、JSON や XML にエクスポートして下流処理に利用できます。 + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## よくある落とし穴と回避策 + +| 落とし穴 | 発生原因 | 対策 | +|---------|----------|------| +| **空の出力** | ライセンス未適用またはファイルパスが間違っている | `setLicense` のパスを確認し、ファイルが存在することを検証 | +| **文字化け** | 言語設定が誤っている、または解像度が低い | 正しい `Language` を設定し、画像解像度を ≥300 dpi に確保 | +| **メモリ不足エラー** | PDF を一括で読み込んでいる | 前述のストリーミング方式を使用 | +| **ページの一部だけ認識** | PDF にラスタとベクタが混在している | OCR 前に `pdfDoc.flatten();` でフラット化 | + +--- + +## まとめ – 本チュートリアルで学んだこと + +* Aspose を使った **Java での OCR の使い方** +* **PDF(または TIFF)からテキストを一括で抽出** する方法 +* 手動ループ不要で **PDF 全ページのテキスト認識** を実現 +* **PDF をテキストに変換** してクリーンに出力 +* **OCR マルチページ PDF** の取り扱いに関する言語設定やメモリ対策などの実践的ヒント + +これで、任意の Java プロジェクトに貼り付けられる完成度の高いコードが手に入りました。画像処理オプションを調整したり、出力先を変更したり、検索インデックスに統合したりして自由にカスタマイズしてください。 + +--- + +## 次のステップ + +* **Aspose OCR の高度機能**(手書き認識や PDF/A 準拠など)を探求 +* **OCR と PDF 操作の組み合わせ**(例: PDF に検索可能な隠しテキスト層を再埋め込む) +* **バッチ処理の自動化**(フォルダー内の PDF を読み込み、対応する `.txt` ファイルへ書き出す) + +問題が発生した場合は、Aspose フォーラムで質問すると良いでしょう。また、API リファレンスは本チュートリアルで使用したすべてのメソッドの詳細情報を提供しています。 + +コーディングを楽しみながら、頑固なスキャン画像を検索可能なテキストへ変換しましょう! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/japanese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..3c169805d --- /dev/null +++ b/ocr/japanese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-05-03 +description: Javaでバイナリファイルを読み取り、Aspose OCR ライセンスをロードします。このステップバイステップガイドで、FileInputStream + の使用方法、バイナリデータの取り扱い、実用的なヒントを学びましょう。 +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: ja +og_description: Aspose OCR ライセンスを読み込むために、Javaでバイナリファイルを読み取ります。この完全ガイドに従って、FileInputStream + とバイナリデータの取り扱いをマスターしましょう。 +og_title: Javaでバイナリファイルを読む – Aspose OCRのライセンスバイトをロード +tags: +- Java +- File I/O +- OCR +title: Javaでバイナリファイルを読み込む – Aspose OCR用ライセンスバイトをロード +url: /ja/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Read Binary File Java – Aspose OCR のライセンスバイトを読み込む + +サードパーティのライブラリのライセンスを扱う際に、**read binary file Java** が必要になったことはありませんか? あなたは決して一人ではありません。多くの Java 開発者が `.lic` ファイルを OCR エンジンに渡そうとしたときにこの問題に直面し、通常のテキストファイルの手法ではうまくいきません。 + +このチュートリアルでは、バイナリライセンスファイルを開き、そのバイトをメモリに取り込み、Aspose OCR for Java に渡す完全な実行可能サンプルを順を追って解説します。その過程で `FileInputStream` が適切なツールである理由、`IOException` の取り扱い方法、公式ドキュメントには載っていないいくつかのプロ向けヒントも紹介します。 + +本ガイドを読み終えると、**read binary file Java** スタイルでライセンスを読み込み、`License` オブジェクトを作成し、`OcrEngine` に割り当てることがスムーズにできるようになります。 + +## このガイドでカバーする内容 + +- 前提条件: Java 17 以上、Maven(または Gradle)、そして Aspose OCR for Java ライブラリ +- `FileInputStream` を使用してバイナリ `.lic` ファイルを読み込むステップバイステップのコード +- 各行の説明(*なぜ* そうするのかを理解できるように) +- エッジケースの処理(ファイルが見つからない、バイトが破損している)と実践的なデバッグのコツ +- IDE にコピペしてすぐに実行できる、自己完結型の最終スニペット + +ライセンスファイルを読むために特別な API が必要かどうか疑問に思ったことがあるなら、答えは **いいえ** です。古典的なバイナリ I/O で十分です。さあ、始めましょう。 + +## 手順 1: FileInputStream で Binary File Java を読む + +まず最初に、ディスク上のライセンスファイルから生のバイト列を取得する信頼できる方法が必要です。Java では `FileInputStream` がまさにその役割を担います。 + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**このコードが機能する理由:** `Files.readAllBytes` は内部で `FileInputStream` を生成し、ストリーム全体を読み取って自動的にクローズします。安全で簡潔、そして「ストリームを閉じ忘れる」典型的な落とし穴を回避できます。古典的なパターンが好みなら、`FileInputStream` を直接使った try‑with‑resources ブロックに置き換えても構いません。 + +### プロのコツ + +ライセンスファイルが非常に大きい場合(可能性は低いですが)、一度にすべて読み込むのではなく、チャンク単位でストリーミングすることを検討してください。ほとんどの OCR ライセンスファイルは数キロバイト未満なので、ワンショット方式で問題ありません。 + +## 手順 2: Aspose OCR 用の License オブジェクトを作成 + +生のバイト列が手に入ったら、これを Aspose 互換の `License` インスタンスに変換します。ライブラリはバイト配列を受け取るコンストラクタまたはメソッドを提供しています。 + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**重要なポイント:** バイト列を直接渡すことで、パスに起因する問題(作業ディレクトリ相対パスの混乱など)を回避でき、デプロイ先がどこであってもポータブルに保てます。 + +## 手順 3: OCR エンジンにライセンスを割り当て + +`License` オブジェクトが用意できたら、最後のステップはそれを `OcrEngine` に適用することです。これにより OCR コンポーネントは評価サンドボックスではなく、正規ライセンスモードで動作します。 + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **注:** 古い Aspose バージョンでは、setter の代わりに公開フィールド `license` が提供されている場合があります。その場合は `ocrEngine.license = license;` のようにコードを調整してください(コンパイルエラーが出たときの対処法)。 + +## 手順 4: ライセンスが正常にロードされたか確認(任意だが推奨) + +簡単なサニティチェックを入れておくと、後々のデバッグ時間を大幅に削減できます。`License` クラスは成功時に例外を投げませんが、影響の少ない OCR 操作を試すことで確認できます。 + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +「License applied successfully」というメッセージが表示されれば成功です。表示されなければ、ファイルパス、バイトの完全性、使用している Aspose のバージョンを再確認してください。 + +## 完全動作サンプル + +すべてのパーツを組み合わせると、コンパクトでコピペ可能なプログラムが完成します。`Main.java` に貼り付けてそのまま実行してみてください。 + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**期待される出力(ダミー画像が存在する前提):** + +``` +License applied successfully – OCR engine is ready. +``` + +ライセンスファイルが見つからない、または破損している場合は、次のような明確なエラーメッセージが表示されます: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## よくある落とし穴と回避策 + +- **パスの混乱:** 相対パスは JVM の作業ディレクトリを基準に解決されます。ソースファイルの場所ではありません。絶対パスを使用するか、`.lic` ファイルを JAR と同じディレクトリに置き、`getResourceAsStream` で取得してください。 +- **バイト順の誤り:** `Reader`(文字指向)でバイナリファイルを読もうとしないでください。データが破損します。必ず `FileInputStream` 系の API を使用しましょう。 +- **バージョン不一致:** 古い Aspose リリースでは `license.setLicense("path/to/file")` が必要で、`setLicenseBytes` が存在しないことがあります。`NoSuchMethodError` が出たらリリースノートを確認してください。 +- **ストリームを閉じ忘れる:** 従来の `FileInputStream` アプローチに戻す場合は、必ず try‑with‑resources でラップしてクローズを保証しましょう。 + +## 結論 + +これで **read binary file Java** を使って Aspose OCR のライセンスを読み込み、`License` オブジェクトを作成し、`OcrEngine` に組み込む方法がマスターできました。ポイントは `FileInputStream`(または `Files.readAllBytes`)で正しくバイナリデータを取得し、数行の API 呼び出しでライセンスを適用することです。 + +この知識があれば、PDF、画像、スキャン文書からテキストを抽出する本格的な OCR タスクにすぐ移行できます。ライセンス層でつまずく心配はありません。関連トピックに興味がある方は、**Java FileInputStream**、**binary data handling Java**、**read license file Java** に関するチュートリアルもぜひご覧ください。 + +Happy coding, and may your OCR results be crystal clear! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/japanese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/japanese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..a291d3d00 --- /dev/null +++ b/ocr/japanese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR for Java を使用して画像からテキストを認識し、画像をテキストに変換する方法を学びます。OCR の精度を向上させるヒントや + PNG ファイルで OCR を実行する方法も含まれています。 +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: ja +og_description: Aspose OCR for Java を使用して画像からテキストを認識するステップバイステップガイド。画像をテキストに変換し、OCR + の精度を向上させ、PNG で OCR を実行する方法を学びます。 +og_title: Aspose OCRで画像からテキストを認識する – Javaチュートリアル +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Aspose OCRで画像からテキストを認識する – 完全なJavaガイド +url: /ja/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 画像からテキストを認識する Aspose OCR – 完全な Java ガイド + +画像からテキストを**認識する**必要があったことはありませんか?しかし、どのライブラリが信頼できる結果を提供するか分からなかった…という方は多いです。スキャンした PDF、レシート、検査報告書からデータを抽出しようとしたときに、壁にぶつかることがよくあります。朗報です。Aspose OCR for Java を使えば、全工程がとても簡単になり、数行のコードで**画像をテキストに変換する**ことさえ可能です。 + +このチュートリアルでは、OCR 用に画像をロードする方法、設定を調整して**OCR精度を向上させる**コツ、そして最終的に**PNGでOCRを実行する**ファイルでテキストを抽出して表示するまで、必要な手順をすべて解説します。余計な説明は省き、すぐにプロジェクトに組み込める実用的なサンプルを提供します。 + +--- + +## 必要なもの + +始める前に、以下がマシンに揃っていることを確認してください: + +| 前提条件 | 理由 | +|--------------|--------| +| Java 17(またはそれ以降) | Aspose OCR は Java 8+ を対象としていますが、最新の JDK の方がパフォーマンスが向上します。 | +| Aspose OCR for Java ライブラリ (`aspose-ocr.jar`) | 重い処理を実行するコアエンジンです。 | +| 有効な Aspose OCR ライセンス ファイル (`Aspose.OCR.Java.lic`) | フル機能が有効になります。ライセンスがないと試用版の透かしが表示されます。 | +| 明瞭なテキストを含む画像ファイル(PNG、JPEG、TIFF など) | 具体例として `lab_report.png` を使用します。 | +| カスタム辞書(オプション) | 「hemoglobin」など、ドメイン固有の用語認識を向上させます。 | + +これらの項目に見覚えがなくても慌てないでください。JAR をインストールし、簡単なテキストファイルを作成するだけで済む作業ですので、後ほど手順を説明します。 + +--- + +## 手順 1 – プロジェクトの設定と依存関係のインポート + +まず、Maven(または Gradle)で新しいプロジェクトを作成し、Aspose OCR の依存関係を追加します。Maven を使用している場合は、以下のスニペットを `pom.xml` に貼り付けてください: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Gradle を好む場合は、同等の設定は次の通りです: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** バージョン番号に注意してください。新しいリリースには、**OCR精度を向上させる** 直接的なバグ修正が含まれることが多いです。 + +次に、`OcrDemo.java` という名前の Java クラスを作成します。ファイルの先頭で必要なクラスをインポートします: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## 手順 2 – OCR エンジンの初期化とライセンスの適用 + +**PNGでOCRを実行する**には、まずエンジンにライセンスが適用されていることを知らせる必要があります。以下のコードで設定します: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +なぜ `License` オブジェクトを別に用意するのか?Aspose はライセンス管理をエンジン本体から分離しているため、マルチテナント SaaS シナリオでライセンスを動的に切り替えることが容易になります。 + +--- + +## 手順 3 – カスタム辞書のロード(オプションだが強力) + +医療用語や化学式、ブランド名など、特定のドメイン用語を扱う場合は、カスタム辞書を使用すると**OCR精度を向上させる**効果が劇的です。辞書は 1 行に 1 単語のプレーンテキストファイルです: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Why it works:** OCR エンジンは辞書を利用して言語モデルを優先させ、例えば “hemo­globin” → “hemoglobin” のような誤認識を減らします。 + +辞書がない場合はこの行をスキップしてください。Aspose は組み込みの言語パックでも十分に機能します。 + +--- + +## 手順 4 – 処理したい画像のロード + +ここで実際に**画像を OCR 用にロードする**作業を行います。Aspose は多数のフォーマットに対応していますが、PNG はロスレスであるため、スキャン文書に最適です。 + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** 画像が巨大(5 MB 超)な場合は、先に縮小して処理速度を上げることを検討してください。`Image` クラスの `resize` メソッドを認識前に呼び出すことができます。 + +--- + +## 手順 5 – OCR プロセスの実行とテキストの取得 + +すべての準備が整ったら OCR エンジンを起動します。`recognize` メソッドは抽出された文字列や信頼度スコア、必要に応じてレイアウト情報を含む `OcrResult` オブジェクトを返します。 + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +プログラムを実行すると、次のような出力が得られるはずです: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +これで、Aspose OCR を使って**画像からテキストを認識する**ことと、**画像をテキストに変換する**ことに成功しました。 + +--- + +## 手順 6 – よくある落とし穴と対処法 + +堅実なライブラリでも、いくつかの障害が作業を妨げることがあります: + +| 症状 | 考えられる原因 | 対策 | +|---------|--------------|-----| +| 空の出力 | ライセンスが適用されていない、または期限切れ | `Aspose.OCR.Java.lic` のパスを確認し、バージョンと一致しているか確認してください。 | +| 文字化け | 画像の解像度が低い、または過度に圧縮されている | より高解像度のソースを使用するか、画像を前処理(二値化、デスキュー)してください。 | +| ドメイン固有の単語が欠落 | カスタム辞書がない | 欠落している用語を1行ずつ記載した辞書ファイルを追加してください。 | +| 大量バッチで処理が遅い | マルチスレッド化がされていない | `OcrEngine` インスタンスのプールを作成(スレッドセーフ)し、画像を並列処理してください。 | + +--- + +## 手順 7 – 例の拡張:結果をファイルに保存 + +抽出したテキストを後で分析したい場合は、単にファイルに書き出すだけです: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +これで、**画像を OCR 用にロードする**パイプラインが完成し、抽出した内容を好きな場所に保存できるようになりました。 + +--- + +## ボーナス: フォルダー内の複数 PNG ファイルで OCR を実行する + +実務では数十枚のスキャンを一括処理することがよくあります。以下のループはディレクトリ内のすべての `.png` を取得して処理します: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +同じ `ocrEngine` インスタンスを再利用することを忘れないでください。ファイルごとに新しいインスタンスを作成すると、不要なオーバーヘッドが発生します。 + +--- + +## 結論 + +これで、Aspose OCR for Java を使用して**画像からテキストを認識する**フル機能のエンドツーエンドソリューションが手に入りました。画像のロード、カスタム辞書で**OCR精度を向上させる**オプション、**PNGでOCRを実行する**までのすべての工程がコードだけで完結し、任意の Java プロジェクトにすぐ組み込めます。 + +次のステップは?抽出したテキストを自然言語処理パイプラインに流し込んだり、手書きノートに対する OCR(Aspose には手書きモードもあります)を試したりしてみてください。可能性は無限大です。まずはこの第一歩を踏み出したことを祝福します。 + +Happy coding! もし問題が発生したら遠慮なくコメントを残してください。一緒にトラブルシューティングしましょう。 + +![コンソールの OCR 結果のスクリーンショット – 画像からテキストを認識](/images/ocr_console_result.png "画像からテキストを認識する例") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/korean/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..8030e6d7b --- /dev/null +++ b/ocr/korean/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java를 사용하여 이미지에서 표를 추출합니다. OCR을 위해 이미지를 로드하고, PNG에서 표를 추출하며, + 이미지 표 텍스트를 변환하고, 영수증 이미지를 빠르게 인식하는 방법을 배워보세요. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: ko +og_description: Aspose OCR Java를 사용하여 이미지에서 표를 추출합니다. 이 가이드는 OCR을 위해 이미지를 로드하고, PNG에서 + 표를 추출하며, 이미지 표 텍스트를 변환하고, 영수증 이미지를 인식하는 방법을 보여줍니다. +og_title: 이미지에서 표 추출 – Aspose OCR Java 튜토리얼 +tags: +- Aspose OCR +- Java +- Image Processing +title: 이미지에서 표 추출 – 완전한 Aspose OCR Java 가이드 +url: /ko/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 이미지에서 표 추출 – 완전한 Aspose OCR Java 가이드 + +이미지 파일에서 **표를 추출**해야 하는데 계속 막히셨나요? 스캔한 영수증이나 사진으로 찍은 인보이스에 표 형태 데이터가 PNG 안에 숨어 있을 수도 있습니다. 이 튜토리얼에서는 *OCR용 이미지 로드* 방법, 사진을 구조화된 행으로 변환하는 과정, 그리고 **이미지 표 텍스트 변환**을 통해 Java에서 활용할 수 있는 형태로 만드는 방법을 정확히 보여드립니다. + +Aspose OCR 엔진에 라이선스를 적용하는 단계부터 감지된 표의 각 셀을 출력하는 단계까지 모두 안내합니다. 끝까지 따라오시면 **영수증 이미지 인식** 파일을 손쉽게 처리하고 표를 추출할 수 있습니다. + +## 배울 내용 + +- Aspose OCR 엔진을 초기화하고 라이선스를 적용하는 방법 +- 표 감지를 활성화하는 것이 **이미지에서 표 추출**의 핵심인 이유 +- **OCR용 이미지 로드**와 PNG 인식에 필요한 정확한 코드 +- 여러 표, 저해상도 스캔, 일반적인 함정 처리 방법 +- **이미지 표 텍스트 변환**을 통해 출력(또는 DB 저장) 가능한 형식으로 만드는 방법 + +외부 문서는 필요 없습니다—여기에 모든 것이 있습니다. + +## 사전 요구 사항 + +- Java 17 이상 (코드는 최신 모듈 시스템을 사용합니다) +- Aspose OCR for Java 라이선스 파일(`Aspose.OCR.Java.lic`). 실험용이라면 임시 평가 키도 가능합니다 +- 명확한 표가 포함된 PNG 이미지(예: `receipt_with_table.png`) +- Aspose OCR 의존성을 가져올 Maven 또는 Gradle: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** 라이선스 파일을 `src/main/resources` 폴더 옆에 두면 환경에 관계없이 경로가 안정적입니다. + +--- + +## Step 1 – **이미지에서 표 추출**을 위한 OCR 엔진 초기화 + +엔진이 동작하려면 정식 사용자인지를 알려줘야 합니다. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*왜 중요한가:* 유효한 라이선스가 없으면 OCR 엔진이 체험 모드로 실행돼 결과가 잘리거나 원치 않는 워터마크가 추가됩니다—표 추출이 신뢰할 수 없게 됩니다. + +--- + +## Step 2 – 표 감지 활성화 (**png에서 표 추출**) + +표 감지는 기본값이 비활성화돼 있습니다. 스위치를 켜야 합니다. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +이 플래그를 켜면 Aspose OCR이 정렬된 텍스트 그룹을 행과 열로 인식하게 되며, 이는 **이미지에서 표 추출**이 필요한 PNG 파일에 정확히 맞습니다. + +--- + +## Step 3 – **OCR용 이미지 로드** 및 **영수증 이미지 인식** + +이제 실제로 사진을 엔진에 전달합니다. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +**영수증 이미지 인식** 상황이라면 이미지 전처리(기울기 보정, 대비 증가)를 고려할 수 있습니다. 이는 이 간단 가이드 범위를 벗어나지만, 노이즈가 많은 스캔에선 유용합니다. + +--- + +## Step 4 – OCR 결과 처리 및 **이미지 표 텍스트 변환** + +`OcrResult` 객체는 하나 이상의 표를 포함할 수 있습니다. 표를 순회하면서 각 셀을 출력해 보겠습니다. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**동작 설명:** + +- 표가 발견됐는지 확인하고, 없으면 품질 조정을 제안합니다. +- 각 표에 대해 탭으로 구분된 셀을 출력해 CSV로 가져오기 쉬운 형식을 제공합니다. +- `Cell::getText` 호출이 **이미지 표 텍스트 변환**의 핵심으로, 각 셀의 원시 OCR 문자열을 추출합니다. + +### 예상 출력 + +`receipt_with_table.png`에 단순 3 × 2 표가 있다고 가정하면 다음과 같은 결과가 나타납니다: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +이미지에 표가 여러 개 있으면 각 표 사이에 빈 줄이 삽입됩니다. + +--- + +## Step 5 – 추출된 표 검증 및 엣지 케이스 처리 + +### 흔히 겪는 함정 + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **No tables detected** | 이미지가 흐리거나 대비가 낮음 | OCR 전에 이진화(`ImageProcessing.applyThreshold`) 적용 | +| **Merged cells** | 표 선이 희미해 OCR이 하나의 블록으로 인식 | `ocrEngine.getConfig()`에서 `TableDetectionSensitivity` 증가 | +| **Incorrect column order** | 이미지가 기울어 정렬이 어긋남 | `ImageProcessing.deskew` 사용하거나 이미지를 90° 회전 | + +### 다음 단계 + +- **CSV로 내보내기** – `System.out.println(line);`을 `FileWriter` 로 교체해 데이터를 저장 +- **데이터베이스에 입력** – 각 행을 POJO 로 매핑하고 JPA 로 영속화 +- **다른 API와 결합** – 영수증 처리 시 OCR 텍스트에 정규식을 적용해 총액을 추출할 수 있음 + +--- + +## 전체 작업 예제 (복사‑붙여넣기 바로 사용) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +프로그램을 실행하고 표가 명확한 PNG 파일을 지정하면 콘솔에 깔끔히 정렬된 행이 출력됩니다. + +--- + +## 결론 + +이제 Aspose OCR for Java를 사용해 **이미지에서 표 추출**을 위한 완전한 엔드‑투‑엔드 솔루션을 갖추었습니다. 라이선스 적용, **OCR용 이미지 로드**, **png에서 표 추출** 활성화, 그리고 **이미지 표 텍스트 변환**까지 모든 단계가 설명과 실용 팁과 함께 제공됩니다. + +다음에는 출력 결과를 CSV 파일로 저장하거나 관계형 데이터베이스에 삽입해 보세요. 혹은 OCR 단계와 영수증 총액 추출 루틴을 결합하면 인보이스, 가격표, 그리드 뒤에 숨은 데이터가 있는 모든 스캔 문서에 적용할 수 있습니다. + +저해상도 영수증 처리나 배치 처리 확장에 대한 질문이 있나요? 아래 댓글로 알려 주세요. 즐거운 코딩 되세요! + +![이미지에서 표 추출 예시](https://example.com/assets/extract-tables-from-image.png "이미지에서 표 추출 – 샘플 출력") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/korean/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/korean/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..a5284fc6a --- /dev/null +++ b/ocr/korean/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR을 사용하여 파이썬으로 이미지에서 텍스트를 추출합니다. 라틴‑키릴 혼합 지원이 포함된 단계별 파이썬 OCR + 튜토리얼을 배워보세요. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: ko +og_description: 이미지에서 텍스트를 파이썬으로 빠르게 추출합니다. 이 가이드는 라틴어‑키릴어가 혼합된 이미지에서 파이썬으로 Aspose + OCR을 사용하는 방법을 보여줍니다. +og_title: Python으로 이미지에서 텍스트 추출 – 전체 Aspose OCR 사용법 +tags: +- OCR +- Python +- Aspose +title: Python으로 이미지에서 텍스트 추출 – 완전한 Aspose OCR 가이드 +url: /ko/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 이미지에서 텍스트 추출 Python – 완전한 Aspose OCR 가이드 + +다양한 라틴 문자와 키릴 문자가 섞인 이미지를 **extract text from image python** 해야 할 때, 어떤 라이브러리를 사용해야 할지 고민한 적 있나요? 여러분만 그런 것이 아닙니다—개발자들은 다국어 스크린샷을 OCR 처리할 때 이 문제에 자주 부딪힙니다. + +좋은 소식은 Aspose OCR for Python을 사용하면 전체 과정이 거의 손쉽게 진행된다는 점입니다. 이번 튜토리얼에서는 패키지 설치, 라이선스 적용, 혼합 언어 이미지 로드, 그리고 몇 줄의 코드만으로 인식된 텍스트를 추출하는 방법을 단계별로 살펴보겠습니다. 마지막까지 따라오시면 어떤 프로젝트에든 바로 넣어 사용할 수 있는 실행 가능한 스크립트를 얻게 됩니다. + +## 배울 내용 + +- 가상 환경에서 **Aspose OCR Python**을 설정하는 방법 +- 라틴어와 키릴어와 같은 언어 힌트를 제공하면 감지 속도가 빨라지는 이유 +- 단일 함수 호출로 **extract text from image python** 을 수행하는 정확한 코드 +- 혼합 언어 OCR 처리 시 흔히 발생하는 함정과 회피 방법 + +### 사전 요구 사항 + +- 머신에 Python 3.8 이상 설치 +- Aspose OCR 라이선스 파일 (`Aspose.OCR.Java.lic`). 무료 체험판으로 테스트는 가능하지만, 정식 라이선스를 사용하면 워터마크가 제거됩니다. +- 라틴 문자와 키릴 문자가 모두 포함된 PNG/JPEG 이미지 (`mixed_latin_cyrillic.png`) + +위 항목들을 모두 충족한다면 추가 프레임워크나 무거운 의존성 없이 바로 시작할 수 있습니다. + +--- + +## Step 1 – Extract Text from Image Python: Install Aspose OCR + +먼저 PyPI에서 라이브러리를 받아 라이선스 파일을 찾을 수 있도록 환경을 설정합니다. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** 권한 오류가 발생하면 `pip install` 명령에 `--user` 옵션을 추가하거나 터미널을 관리자 권한으로 실행하세요. + +패키지가 시스템에 설치되었으니 이제 이를 임포트하고 라이선스를 엔진에 지정합니다. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +왜 이 단계에서 라이선스가 필요한 걸까요? 라이선스가 없으면 엔진이 **평가 모드**로 동작해 페이지 수가 제한되고 출력에 워터마크가 삽입됩니다. 미리 라이선스를 제공하면 이후 `recognize` 호출이 깨끗한 텍스트를 반환합니다. + +--- + +## Step 2 – Load Your Image with Mixed Latin‑Cyrillic Content + +다음으로 이미지를 메모리로 로드합니다. Aspose OCR은 자체 `Image` 클래스를 사용해 파일 형식에 구애받지 않게 추상화합니다. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +다른 포맷이 가능한가요? 네, JPEG, BMP, TIFF, 심지어 PDF도 지원됩니다. 파일 확장자를 바꾸고 `from_file` 메서드만 사용하면 자동으로 처리됩니다. + +--- + +## Step 3 – Hint Languages for Faster Detection (Optional but Helpful) + +이미지에 포함된 언어를 알고 있다면 엔진에 미리 알려줄 수 있습니다. 필수는 아니지만 **처리 시간을 크게 단축**하고 혼합 언어 OCR의 정확도를 높여줍니다. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +힌트 리스트에는 Aspose OCR이 지원하는 모든 언어(`"Arabic"`, `"Japanese"` 등)를 넣을 수 있습니다. 이 단계를 건너뛰면 엔진이 내장된 모든 언어를 검사하게 되어 대량 처리 시 속도가 느려질 수 있습니다. + +--- + +## Step 4 – Run the OCR Engine and Extract Text + +이제 실제로 문자를 인식하는 순간입니다. `recognize` 메서드는 평문 텍스트, 신뢰도 점수, 필요 시 바운딩 박스까지 포함하는 `OcrResult` 객체를 반환합니다. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Why this works:** 내부적으로 Aspose OCR은 신경망 기반 텍스트 탐지기와 언어별 분류기를 결합합니다. `Image` 객체를 전달하면 이진화와 같은 수동 전처리 없이 바로 인식이 진행됩니다. + +--- + +## Step 5 – View the Extracted Text + +마지막으로 결과를 콘솔에 출력해 봅시다. 실제 애플리케이션에서는 파일에 저장하거나 데이터베이스에 넣고, 번역 API에 전달할 수도 있습니다. + +```python +print("Recognised text:") +print(extracted_text) +``` + +스크립트를 실행하면 다음과 비슷한 출력이 나타납니다: + +``` +Recognised text: +Hello мир! This is a test. +``` + +이 출력은 **extract text from image python** 이 성공적으로 수행되어 라틴 문자와 키릴 문자를 한 번에 처리했음을 확인시켜 줍니다. + +--- + +## Full Working Example + +아래는 `extract_ocr.py` 라는 파일에 복사해 넣을 수 있는 전체 스크립트입니다. 자리표시자 경로를 실제 경로로 교체하세요. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +파일을 저장하고 가상 환경을 활성화한 뒤 실행합니다: + +```bash +python extract_ocr.py +``` + +인식된 텍스트가 콘솔에 출력되면 스크립트가 엔드‑투‑엔드로 정상 작동한 것입니다. + +--- + +## Frequently Asked Questions & Edge Cases + +**이미지가 흐릿하면 어떻게 하나요?** +Aspose OCR은 내장된 디스키유와 노이즈 감소 기능을 제공하지만, 심하게 손상된 사진은 OpenCV로 전처리(예: 가우시안 블러와 임계값 적용)하는 것이 좋습니다. `Image` 클래스는 NumPy 배열도 받아들여 커스텀 필터를 적용한 뒤 `recognize`를 호출할 수 있습니다. + +**이미지 폴더 전체를 처리할 수 있나요?** +물론 가능합니다. 로직을 `for` 루프로 감싸고 `from_file`을 각 파일명으로 바꾸어 결과를 딕셔너리에 저장하면 됩니다. 클라우드 버전을 사용할 경우 API 호출 제한을 준수하세요. + +**언어마다 별도 라이선스가 필요할까요?** +아니요. 단일 Aspose OCR 라이선스로 모든 지원 언어를 사용할 수 있습니다. `language_hints` 리스트는 성능 향상을 위한 힌트일 뿐입니다. + +**PDF 입력은 어떻게 하나요?** +`Image.from_file`을 `ocr.Image.from_file("document.pdf")` 로 바꾸면 됩니다. OCR 엔진이 각 페이지를 자동으로 래스터화하고 연결된 텍스트를 반환합니다. + +--- + +## Conclusion + +우리는 Aspose OCR을 사용해 **extract text from image python** 을 간결하고 프로덕션 수준으로 구현하는 방법을 보여주었습니다. 설치 → 라이선스 적용 → 이미지 로드 → 언어 힌트 → 인식 → 출력의 순서만 따르면 라틴‑키릴 혼합 콘텐츠에 대해 신뢰할 수 있는 결과를 얻을 수 있습니다. + +이제 배치 처리용 **image to text conversion** 을 탐구하거나, **Python OCR tutorial** 과 결합해 자연어 처리 파이프라인에 적용하거나, 다국어 문서를 위한 다른 언어 힌트를 실험해 볼 수 있습니다. 가능성은 무한하며 코드는 이미 여러분 손에 있습니다. + +다른 사용 사례가 있거나 문제가 발생했나요? 댓글로 경험을 공유하고 대화를 이어가세요. 즐거운 코딩 되세요! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/korean/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..c22f8af9b --- /dev/null +++ b/ocr/korean/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR을 사용하여 이미지를 즉시 텍스트로 추출합니다. 관심 영역을 정의하고, OCR을 위해 이미지를 로드하며, + 몇 분 만에 청구서에서 텍스트를 추출하는 방법을 배워보세요. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: ko +og_description: Aspose OCR을 사용하여 이미지에서 텍스트를 추출합니다. 이 가이드는 관심 영역을 정의하고, OCR을 위해 이미지를 + 로드하며, 청구서에서 텍스트를 효율적으로 추출하는 방법을 보여줍니다. +og_title: Aspose OCR로 이미지에서 텍스트 추출 – 완전 튜토리얼 +tags: +- ocr +- python +- image-processing +title: Aspose OCR로 이미지에서 텍스트 추출 – 단계별 가이드 +url: /ko/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR을 사용한 이미지에서 텍스트 추출 – 단계별 가이드 + +이미지에서 **빠르게 텍스트를 추출**해야 하나요? 당신만 그런 것이 아닙니다—개발자들은 끊임없이 노이즈가 많은 스캔, 영수증, 청구서와 씨름합니다. 이 튜토리얼에서는 *이미지에서 텍스트를 추출*하는 방법뿐만 아니라 **관심 영역 정의**, **OCR용 이미지 로드**, 그리고 청구서에서 필요한 정확한 라인을 추출하는 전체 솔루션을 단계별로 안내합니다. + +우리는 Aspose OCR 라이브러리 설치부터 회전된 페이지와 같은 엣지 케이스 처리까지 모든 것을 다룰 것입니다. 최종적으로 한 번의 호출로 원하는 텍스트를 추출하는 실행 가능한 스크립트를 얻게 되며, 수동으로 크롭할 필요가 없습니다. + +## 배울 내용 + +- Aspose의 Python API를 사용하여 **OCR용 이미지 로드**하는 방법. +- 중요한 부분만 처리하도록 **관심 영역 정의**(ROI)하는 최선의 방법. +- 전체 페이지를 가져오지 않고 **청구서에서 텍스트 추출**하는 방법. +- **OCR로 이미지 처리**를 효율적으로 수행하고 일반적인 함정을 피하는 팁. + +**Prerequisites** – 최신 Python 3.9+ 환경, 유효한 Aspose OCR 라이선스 파일, 그리고 이미지(예: 청구서 PNG). 다른 외부 도구는 필요하지 않습니다. + +--- + +## Step 1 – Initialize the OCR Engine (Primary Setup) + +OCR으로 **이미지를 처리**하기 전에 라이선스를 보유한 엔진 인스턴스가 필요합니다. 이 단계는 라이선스가 없는 엔진이 제한된 결과만 반환하기 때문에 매우 중요합니다. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Why this matters*: `OcrEngine` 객체는 라이브러리의 핵심이며, 언어 모델, 이미지 전처리 및 라이선스를 관리합니다. 라이선스를 미리 설정하면 전체 정확도를 얻고 워터마크가 표시되지 않습니다. + +--- + +## Step 2 – Load Image for OCR + +엔진이 준비되었으니 이제 **OCR용 이미지 로드**가 필요합니다. Aspose는 PNG, JPEG, TIFF 등 다양한 포맷을 지원하지만 `Image.from_file`을 사용하면 이미지가 올바르게 디코딩됩니다. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: 가장 빠른 처리를 위해 이미지 파일 크기를 5 MB 이하로 유지하세요. 큰 파일은 OCR 전에 `image.resize(width, height)`로 다운스케일할 수 있습니다. + +--- + +## Step 3 – Define Region of Interest (ROI) + +대부분의 청구서에는 주소 블록, 푸터 등 무관한 텍스트가 많이 포함됩니다. **관심 영역 정의**를 통해 엔진이 금액이나 날짜가 있는 부분만 보도록 지정하면 속도와 정확도가 향상됩니다. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*How it works*: `Rectangle` 클래스는 이미지를 가상으로 크롭합니다; OCR 엔진은 사각형 외부의 픽셀을 전혀 보지 않으므로 ROI 외부의 노이즈는 무시됩니다. + +--- + +## Step 4 – Recognize Text Inside the ROI + +엔진, 이미지, ROI가 준비되었으니 이제 **이미지에서 텍스트 추출**을 수행합니다. `recognize` 메서드는 감지된 문자열과 신뢰도 점수를 포함하는 `OcrResult` 객체를 반환합니다. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Expected output** (일반적인 청구서 총합 라인의 예시): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +ROI가 올바르게 배치되었다면 필요한 라인만 표시됩니다—그 외는 없습니다. + +--- + +## Step 5 – Full Working Example (Copy‑Paste Ready) + +아래는 앞서 설명한 모든 단계를 하나로 묶은 완전한 스크립트입니다. `extract_invoice_roi.py`라는 이름으로 저장하고 `python extract_invoice_roi.py`를 실행하세요. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +스크립트를 실행하면 콘솔에 목표 라인이 출력됩니다. 빈 문자열이 반환되면 ROI 좌표를 다시 확인하세요—몇 픽셀만 틀어져도 텍스트가 완전히 제외될 수 있습니다. + +--- + +## Step 6 – Common Variations & Edge Cases + +### a) Different invoice layouts +다양한 공급업체의 청구서는 총액 박스 위치가 달라집니다. 여러 레이아웃에 걸쳐 **OCR로 이미지 처리**를 수행하려면 다음을 고려하세요: + +- **다중 ROI**: 여러 사각형으로 엔진을 순차적으로 실행하고 가장 높은 신뢰도를 가진 결과를 선택합니다. +- **동적 ROI 탐지**: 가벼운 이미지 처리 라이브러리(예: OpenCV)를 사용해 먼저 “Total” 라벨을 찾은 다음, 이를 기준으로 ROI를 계산합니다. + +### b) Rotated or skewed images +스캔이 기울어졌다면 인식 전에 `image.rotate(angle)`을 호출하세요: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR은 자동 디스큐 기능도 제공하지만, 수동 회전이 더 세밀한 제어를 가능하게 합니다. + +### c) Non‑Latin characters +기본 언어 모델은 영어입니다. 다른 언어로 된 **청구서에서 텍스트 추출**을 하려면 인식 전에 언어를 설정하세요: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Large PDFs +다중 페이지 PDF를 다룰 때는 먼저 각 페이지를 이미지로 추출(Aspose PDF → Image)한 뒤, 페이지마다 동일한 ROI 로직을 적용합니다. + +--- + +## Step 7 – Performance Tips & Pro Tips + +- **엔진 캐시**: 루프 내에서 `OcrEngine`을 반복 생성하면 속도가 느려집니다. 한 번 인스턴스화하고 재사용하세요. +- **배치 처리**: 수십 개의 청구서를 처리할 경우 OCR 호출을 `ThreadPoolExecutor`로 감싸 I/O‑바운드 작업을 병렬화하세요. +- **신뢰도 확인**: `ocr_result.confidence`은 0과 1 사이의 부동소수점 값을 제공합니다. 0.85 이하의 결과는 거부하고 더 큰 ROI 또는 수동 검토로 전환하세요. + +> **Watch out**: ROI를 너무 작게 설정하면 문자 일부가 잘려 나가 뒤섞인 출력이 발생할 수 있습니다. 확장하기 전에 몇 개의 샘플 청구서로 반드시 테스트하세요. + +--- + +## Conclusion + +이제 Aspose OCR을 사용해 **이미지에서 텍스트 추출**하는 견고하고 프로덕션 수준의 방법을 갖추었습니다. **관심 영역 정의**, **OCR용 이미지 로드**, 그리고 청구서 필드에서 **텍스트 추출**하는 전체 흐름을 포함합니다. OCR을 좁은 ROI에 제한함으로써 속도와 정확도를 동시에 높일 수 있어 수천 개의 영수증을 배치 처리하기에 최적입니다. + +다음 단계가 준비되셨나요? 이 스크립트를 Flask API에 통합해 웹 앱에서 청구서를 업로드하고 즉시 총액을 반환하도록 해보세요. 또는 여러 ROI를 실험해 날짜, 청구서 번호, 공급업체 이름을 한 번에 추출할 수도 있습니다. 가능성은 무한하며, 여기서 다룬 기본기를 바탕으로 어떤 OCR 도전 과제도 자신 있게 해결할 수 있습니다. + +행복한 코딩 되시길 바라며, 추출된 텍스트가 언제나 깨끗하길 바랍니다! + +![Aspose OCR을 사용하여 이미지에서 텍스트를 추출하는 방법을 보여주는 워크플로우 다이어그램](workflow.png){: .center-image alt="이미지에서 텍스트를 추출하는 워크플로우 (Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/korean/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..b89d2176a --- /dev/null +++ b/ocr/korean/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-05-03 +description: Python의 비동기 OCR을 사용해 이미지에서 텍스트를 추출합니다. tif 파일을 텍스트로 변환하고, OCR을 위해 이미지를 + 로드하며, 이미지를 효율적으로 인식하는 방법을 배워보세요. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: ko +og_description: Python 비동기 OCR을 사용하여 이미지에서 텍스트를 추출합니다. 이 가이드는 tif를 텍스트로 변환하고, OCR을 + 위해 이미지를 로드하며, 이미지에서 텍스트를 인식하는 방법을 보여줍니다. +og_title: Python 비동기 OCR로 이미지에서 텍스트 추출 – 완전 가이드 +tags: +- OCR +- Python +- AsyncIO +title: Python 비동기 OCR을 사용한 이미지 텍스트 추출 – 완전 가이드 +url: /ko/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 이미지에서 텍스트 추출하기 (Python Async OCR) – 완전 가이드 + +텍스트를 **이미지에서 빠르게 추출**하고 싶나요? Python의 async OCR을 사용하면 몇 줄의 코드만으로 가능합니다. 거대한 .tif 스캔이든 몇 장의 JPEG이든, 이 튜토리얼에서는 tif를 텍스트로 변환하고, OCR을 위해 이미지를 로드하며, 이벤트 루프를 차단하지 않고 이미지에서 텍스트를 인식하는 방법을 보여줍니다. + +대부분의 개발자는 동기식 라이브러리를 사용하고 엔진이 픽셀을 처리하는 동안 UI가 멈춘 모습을 경험합니다. 이 가이드에서는 Aspose OCR Cloud의 비동기 API를 사용해 스크립트를 반응형으로 유지하는 방법을 소개합니다. 최종적으로 지원되는 모든 이미지 형식에서 텍스트를 추출할 수 있는 실행 가능한 스크립트를 얻고, 각 단계의 이유를 이해하게 될 것입니다. + +## 배울 내용 + +- Aspose OCR Cloud SDK for Python 설정 방법 +- **OCR을 위한 이미지 로드**와 비동기 인식 작업 시작에 필요한 정확한 코드 +- 큰 .tif 파일 및 라이선스 관련 팁 +- 서비스 오류가 발생해도 **이미지 텍스트 추출**을 안전하게 수행하는 방법 +- 프로젝트에 바로 넣을 수 있는 완전한 복사‑붙여넣기 예제 + +> **전제 조건**: Python 3.8+ 및 Aspose OCR Cloud 라이선스 파일(`Aspose.OCR.Java.lic`). 다른 서드파티 패키지는 필요하지 않습니다. + +--- + +![이미지에서 텍스트 추출 워크플로우](workflow.png){: .align-center alt="이미지에서 텍스트 추출 워크플로우"} + +## 이미지에서 텍스트 추출 – Async OCR 개요 + +코드에 들어가기 전에 흐름을 살펴봅시다. `recognize_async`를 호출하면 SDK가 이미지를 Aspose 클라우드로 전송하고 백그라운드 작업을 시작한 뒤 `Task` 객체를 반환합니다. 해당 작업을 `await`하면 사진의 평문 텍스트를 담은 `OcrResult`를 얻을 수 있습니다. 호출이 비동기이기 때문에 여러 작업을 동시에 실행할 수 있어, 대용량 스캔 문서 배치 처리에 최적입니다. + +### 왜 Async를 사용해야 할까? + +- **Non‑blocking I/O** – 이벤트 루프가 다른 작업(예: HTTP 요청 처리)을 계속 수행할 수 있습니다. +- **Scalability** – 한 번에 수십 개의 인식을 실행할 수 있으며, 클라우드가 무거운 작업을 담당합니다. +- **Responsiveness** – UI 애플리케이션이 OCR 엔진을 기다리는 동안 멈추지 않습니다. + +“왜”가 명확해졌다면, 이제 **어떻게** 하는지 보겠습니다. + +## Aspose OCR을 사용해 TIF를 텍스트로 변환하기 + +많은 개발자가 모든 OCR 라이브러리가 .tif를 기본 지원한다고 착각합니다. Aspose는 지원하지만 여전히 `Image` 객체에 전달해야 합니다. SDK가 형식을 추상화하므로 파일 경로만 지정하면 됩니다. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**핵심 라인 설명** + +- `ocr_engine.license = ...` – 유효한 라이선스가 없으면 클라우드가 403 오류를 반환합니다. `.lic` 파일이 스크립트 작업 디렉터리에서 접근 가능하도록 하세요. +- `ocr.Image.from_file(image_path)` – 이 단계가 **OCR을 위한 이미지 로드** 역할을 합니다. SDK가 자동으로 형식을 감지하므로 .tif를 미리 변환할 필요가 없습니다. +- `recognize_async` – 코루틴 호환 작업을 반환합니다. 배치가 있다면 `gather` 호출로 여러 작업을 동시에 실행할 수 있습니다. + +> **프로 팁**: 기가바이트 규모의 TIFF를 처리할 경우 먼저 페이지별로 분할하는 것이 좋습니다. Aspose의 `Image.from_file`은 페이지 인덱스를 받을 수 있어 메모리 부담을 줄여줍니다. + +## 이미지에서 텍스트를 비동기적으로 인식하기 + +일반적인 스크립트에서 함수를 호출하는 방법을 살펴봅시다. `asyncio.run` 진입점은 이미 이벤트 루프에 들어 있지 않은 경우(예: 일반 CLI 도구) 코루틴을 실행하는 가장 간단한 방법입니다. + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**예상 결과** + +깨끗하고 고해상도 스캔에 대해 스크립트를 실행하면 일반적으로 여러 줄의 문자열이 출력되어 인쇄된 페이지와 일치합니다. 이미지에 잡음이 많다면 Aspose가 자동으로 정화하려 시도하지만, 깨진 문자가 보일 수 있습니다. 이 경우 OCR 엔진에 전달하기 전에 OpenCV(예: 이진화)로 전처리하는 것을 고려하세요. + +### 오류를 우아하게 처리하기 + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +`OcrException`을 잡으면 클라우드 오류 발생 시 프로그램이 크래시되지 않도록 할 수 있습니다. 네트워크 문제를 간과하는 초보자들이 흔히 겪는 실수입니다. + +## OCR을 위한 이미지 로드 – 실전 팁 + +1. **파일 경로 vs. 바이트** – SDK는 파일 경로를 받지만, 이미지가 메모리에 있을 경우 `ocr.Image.from_bytes`로 `bytes` 객체에서도 로드할 수 있습니다. S3나 데이터베이스에서 이미지를 가져온 경우에 유용합니다. +2. **지원 형식** – .tif 외에도 Aspose는 PDF, BMP, GIF, 다중 페이지 TIFF 등을 처리합니다. `Image.from_file("doc.pdf")`를 사용하면 PDF를 바로 OCR할 수 있습니다. +3. **성능** – 배치 작업에서는 동일한 `OcrEngine` 인스턴스를 재사용하세요. 파일마다 새 엔진을 만들면 불필요한 오버헤드가 발생합니다. + +## 전체 작업 예제 (한 스크립트에 모든 단계 포함) + +아래는 라이선스 적용, 오류 처리, 간단한 커맨드‑라인 인자 파서를 포함한 완전 실행 가능한 스크립트입니다. 복사‑붙여넣기 후 라이선스 경로만 수정하면 바로 사용할 수 있습니다. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**예상 출력** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +이미지에 단순 문단이 포함되어 있으면 콘솔에 동일한 줄이 라인 브레이크를 유지한 채 표시됩니다. 다중 페이지 TIFF의 경우 SDK가 페이지 순서대로 연결합니다. + +## 자주 묻는 질문 (FAQ) + +**Q: FastAPI 같은 다른 async 프레임워크에서도 사용할 수 있나요?** +A: 물론입니다. 엔드포인트 내부에서 `await async_ocr(path)`로 호출하고 `asyncio.run` 대신 사용하면 FastAPI가 이벤트 루프를 관리합니다. + +**Q: 수백 개 파일을 한 번에 처리하려면 어떻게 해야 하나요?** +A: `asyncio.gather`를 사용하세요: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: 비밀번호로 보호된 PDF에서 텍스트를 추출할 수 있나요?** +A: 직접은 불가능합니다. 먼저 `pikepdf` 등으로 PDF를 해제한 뒤, 복호화된 바이트를 `ocr.Image.from_bytes`에 전달해야 합니다. + +**Q: 영어 외 다른 언어를 처리하려면 어떻게 해야 하나요?** +A: 인식 전에 언어를 설정합니다: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose는 60개가 넘는 언어를 지원하니, 정확한 식별자는 문서를 참고하세요. + +## 결론 + +이제 Python `asyncio`와 Aspose OCR Cloud의 비동기 API를 활용한 **이미지에서 텍스트 추출** 솔루션을 갖추었습니다. 위 단계들을 따라 하면 **tif를 텍스트로 변환**, **OCR을 위한 이미지 로드**, **이미지에서 텍스트 인식**을 비차단 방식으로 구현할 수 있어, CLI 유틸리티든 고트래픽 웹 서비스든 모두에 적합합니다. + +다음은? 스캔 폴더를 배치 처리해 보거나, 언어 설정을 실험하거나, OCR 결과를 다운스트림 NLP 파이프라인에 연결해 보세요. 가능성은 무한합니다. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/korean/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..2c59ed437 --- /dev/null +++ b/ocr/korean/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR을 사용하여 텍스트를 빠르게 추출하세요. OCR 정확도 향상 방법, 이미지 OCR 로드, 이미지 OCR 전처리, + 그리고 Python에서 OCR 스캔 실행 방법을 배워보세요. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: ko +og_description: Aspose OCR을 사용하여 텍스트를 빠르게 추출합니다. OCR 정확도 향상 방법, 이미지 OCR 로드, 이미지 OCR + 전처리, 그리고 Python에서 OCR 스캔 실행을 마스터하세요. +og_title: 텍스트 추출 OCR – Aspose OCR을 활용한 완전 가이드 +tags: +- OCR +- Python +- Aspose +title: 텍스트 추출 OCR – Aspose OCR과 함께하는 완전 가이드 +url: /ko/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Aspose OCR을 활용한 완전 가이드 + +흔들리는 스캔에서 **extract text ocr**을(를) 추출해야 했지만 결과가 왜 의미 없는 문자처럼 보였는지 몰랐던 적이 있나요? 당신만 그런 것이 아닙니다—이미지가 기울어졌거나, 노이즈가 있거나, 단순히 대비가 낮을 때 많은 개발자들이 같은 문제에 부딪힙니다. 좋은 소식은 몇 가지 설정만 조정하면 지저분한 사진을 깨끗하고 검색 가능한 텍스트로 바꿀 수 있다는 것입니다. 이 튜토리얼에서는 **ocr 정확도 향상**, **load image ocr**, **preprocess image ocr**, 그리고 최종적으로 Aspose OCR for Python으로 OCR 스캔을 실행하는 전체 엔드‑투‑엔드 예제를 단계별로 안내합니다. + +이 가이드를 끝까지 따라 하면 스캔된 JPEG를 읽고 자동으로 정리한 뒤 콘솔에 추출된 텍스트를 출력하는 실행 가능한 스크립트를 얻게 됩니다. “문서 보기”와 같은 미스터리 링크는 없습니다—필요한 모든 것이 여기 있습니다. + +## 필요 사항 + +- **Python 3.8+** (최신 안정 버전이 가장 좋습니다) +- **Aspose.OCR for Python via .NET** – `pip install aspose-ocr` 로 설치 +- 구매한 경우 **라이선스 파일** (`Aspose.OCR.Java.lic`) (무료 체험판도 테스트에 사용 가능) +- 처리하려는 이미지 (예: `skewed_scanned_doc.jpg`) + +그게 전부입니다. 위 항목들을 준비했으면 바로 코드로 넘어갈 수 있습니다. + +## 1단계: Aspose OCR 엔진으로 Extract Text OCR 수행 + +먼저 OCR 엔진을 시작하고 라이선스를 적용합니다. 엔진은 이미지를 읽는 두뇌와 같으며, 라이선스가 없으면 아주 제한된 데모 모드만 동작합니다. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** 라이선스를 미리 적용하면 나중에 발생할 수 있는 무음 실패를 방지합니다. 이 단계를 건너뛰면 엔진이 제한 모드로 전환되어 몇 개의 문자만 반환되며, 이는 **extract text ocr**을 시도할 때 기대하는 결과가 아닙니다. + +## 2단계: 전처리로 OCR 정확도 향상 + +기울어지거나 거친 스캔은 모든 OCR 프로젝트의 적입니다. Aspose는 자동으로 기울기 보정, 노이즈 제거, 대비 향상을 수행하는 여러 유용한 설정을 제공합니다. 이것이 **improve ocr accuracy**의 핵심입니다. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – 이미지를 수평으로 회전시켜 원본 문서가 완전히 평평하지 않을 때 필수적입니다. +- **remove_noise** – 저해상도 JPEG에서 자주 나타나는 무작위 점들을 제거합니다. +- **enhance_contrast** – 어두운 텍스트를 더 어둡게, 밝은 배경을 더 밝게 만들어 엔진이 문자를 구분하기 쉽게 합니다. +- **binarization = "Otsu"** – 흑백 변환에 최적의 임계값을 결정하는 고전 알고리즘입니다. + +> **Pro tip:** 원본 이미지가 이미 깨끗하다면 이 옵션들을 끄고 처리 속도를 높일 수 있습니다. 하지만 대부분의 실제 스캔에서는 켜 둔 상태가 가장 안전합니다. + +## 3단계: 스캔을 위한 이미지 OCR 로드 + +엔진이 준비되었으니 이제 **load image ocr**가 필요합니다. Aspose의 `Image.from_file` 메서드는 JPEG, PNG, TIFF 등 여러 형식을 지원합니다. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +`YOUR_DIRECTORY` 를 실제 머신의 경로로 바꾸세요. 웹 업로드와 같이 메모리 내 바이트 스트림을 다루는 경우 `ocr.Image.from_bytes(byte_data)` 를 사용할 수도 있으며, 동일한 엔진이 이를 처리합니다. + +> **Edge case:** 대용량 TIFF 파일은 메모리를 많이 차지합니다. `MemoryError` 가 발생하면 먼저 이미지 다운샘플링을 하거나 `ocr_engine.config.max_image_size` 로 차원을 제한하세요. + +## 4단계: OCR 스캔 실행 및 결과 얻기 + +이미지를 로드하고 전처리를 적용했으니 마지막 단계인 **run OCR scan**을 수행합니다. 이 호출이 백그라운드에서 모든 무거운 작업을 처리합니다. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +`ocr_result` 객체에는 유용한 속성이 여러 개 포함됩니다: + +- `ocr_result.text` – 여러분이 필요로 하는 순수 문자열. +- `ocr_result.confidence` – 전체 신뢰도를 나타내는 0‑100 점수. +- `ocr_result.words` – 바운딩 박스 좌표가 포함된 단어 객체 리스트로, 하이라이팅 등에 활용 가능. + +## 5단계: 추출된 텍스트 출력 + +마지막으로 결과를 출력합니다. 실제 애플리케이션에서는 텍스트를 파일, 데이터베이스에 저장하거나 검색 인덱스로 전달할 수 있습니다. 여기서는 간단히 `print` 로 출력합니다. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output** (간단한 청구서 예시): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +신뢰도가 낮게 (< 80) 나오면 전처리 옵션을 다시 검토하거나 `"Sauvola"` 와 같은 다른 이진화 방법을 시도해 보세요. + +## 보너스: 전처리 파이프라인 시각화 (선택 사항) + +엔진이 이미지에 어떤 작업을 수행했는지 보는 것이 도움이 될 때가 있습니다. Aspose는 처리된 비트맵을 내보낼 수 있습니다: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +그런 다음 문서에 이미지를 삽입할 수 있습니다: + +extract text ocr workflow diagram showing preprocessing steps + +> **Why you’d do this:** OCR 결과가 이상해 보일 때 `processed_debug.png` 를 한 눈에 보면 이미지가 아직도 어둡거나 기울어졌는지, 남은 노이즈가 있는지 쉽게 파악할 수 있습니다. + +## 자주 묻는 질문 및 주의사항 + +- **문서가 다중 페이지인 경우는 어떻게 하나요?** + Aspose OCR은 페이지별로 동작합니다. 각 페이지 이미지를 순회하면서 `ocr_result.text` 를 연결하면 됩니다. + +- **영어 외 다른 언어도 인식할 수 있나요?** + 예—`ocr_engine.config.language = "fra"` (또는 ISO‑639‑2 코드) 로 설정한 뒤 `recognize` 를 호출하면 됩니다. + +- **이미지 크기에 제한이 있나요?** + 기본적으로 엔진은 10 MP 로 제한합니다. 더 큰 스캔이 필요하면 `ocr_engine.config.max_image_size` 를 늘리되 메모리 사용량을 주시하세요. + +- **PDF용 별도 OCR 엔진이 필요합니까?** + PDF의 경우 먼저 각 페이지를 이미지로 추출(Aspose.PDF 사용)하거나 내장 PDF OCR 기능을 사용할 수 있습니다. 이미지가 준비되면 여기서 보여준 단계는 동일하게 적용됩니다. + +## 요약 + +우리는 Aspose OCR for Python을 사용해 **extract text ocr**을 수행하는 방법을 다루었습니다. 엔진 라이선스 적용부터 **improve ocr accuracy**를 위한 설정 조정, 파일 로드, 그리고 최종 **run OCR scan**을 통해 깨끗한 텍스트를 추출하는 전체 흐름을 살펴보았습니다. 완전한 스크립트는 복사‑붙여넣기만 하면 되고, 각 구성 플래그가 왜 중요한지도 이해하게 되었습니다. + +## 다음 단계 + +- **다양한 이진화 방법** (`"Sauvola"`, `"Bradley"`)을 실험해 보세요. 일부 글꼴은 적응형 임계값에 더 잘 반응합니다. +- **검색 엔진**(예: Elasticsearch)과 통합하여 신뢰도 점수를 기반으로 결과를 순위 매기세요. +- **OCR 후처리** 라이브러리(`pyspellchecker` 등)와 결합해 일반적인 인식 오류를 정정하세요. +- **배치 처리**를 탐색해 수백 개의 스캔을 한 번에 처리하도록 함수를 래핑하고 이미지 폴더를 입력으로 사용하세요. + +코드를 자유롭게 수정하고 로깅을 추가하거나 더 큰 문서 관리 파이프라인에 연결해 보세요. 문제가 생기면 아래에 댓글을 남겨 주세요—행복한 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/korean/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..c561f0e2d --- /dev/null +++ b/ocr/korean/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,183 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java를 사용하여 PDF를 OCR하는 방법. PDF에서 OCR을 실행하고, 텍스트를 인식하며, PDF를 + JSON으로 변환하고, 몇 줄의 코드만으로 OCR을 위해 PDF를 로드하는 방법을 배워보세요. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: ko +og_description: Aspose OCR Java를 사용하여 PDF를 OCR하는 방법. 이 가이드는 PDF에 OCR을 실행하고, 텍스트를 인식하며, + PDF를 JSON으로 변환하고, PDF를 빠르게 OCR에 로드하는 방법을 보여줍니다. +og_title: Aspose OCR으로 PDF OCR하는 방법 – 전체 프로그래밍 튜토리얼 +tags: +- Aspose OCR +- Java +- PDF processing +title: Aspose OCR으로 PDF OCR하는 방법 – 완전 단계별 가이드 +url: /ko/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR으로 PDF OCR하기 – 완전 단계별 가이드 + +명령줄 도구와 씨름하거나 비싼 SaaS에 비용을 지불하지 않고 **PDF를 OCR하는 방법**을 궁금해 본 적 있나요? 당신만 그런 것이 아닙니다. 청구서 자동화, 스캔된 계약서 보관, 검색 가능한 지식 베이스 구축 등 많은 프로젝트에서 PDF에서 텍스트를 빠르고 안정적으로 추출해야 하는 상황에 직면하게 됩니다. + +좋은 소식은? Aspose OCR for Java를 사용하면 **PDF에서 OCR 실행**, PDF 페이지 텍스트 인식, **PDF를 JSON으로 변환**, 그리고 **PDF를 OCR용으로 로드**까지 몇 줄의 코드만으로 가능합니다. 이 튜토리얼에서는 전체 워크플로우를 단계별로 살펴보고, 각 단계가 왜 중요한지 설명하며, 바로 프로젝트에 넣어 사용할 수 있는 완전한 코드 샘플을 제공합니다. + +## 배울 내용 + +- Aspose OCR 엔진을 설정하고 라이선스를 적용하는 방법 +- **PDF를 OCR용으로 로드**하고 인식기에 전달하는 정확한 방법 +- 한 번의 호출로 모든 페이지에 대해 **텍스트 PDF 인식**하는 방법 +- 전체 OCR 결과를 **JSON** 파일(다운스트림 API에 최적) 및 단일 페이지를 **XML**로 내보내는 방법 +- 다중 페이지 PDF나 사용자 정의 언어 팩을 다룰 때 필요한 팁, 함정, 변형 + +> **Prerequisites** – Java 8 이상, 유효한 Aspose OCR for Java 라이선스 파일(`Aspose.OCR.Java.lic`), 그리고 클래스패스에 Aspose OCR JAR가 필요합니다. 다른 외부 라이브러리는 필요하지 않습니다. + +--- + +## PDF OCR하기 – Aspose OCR 엔진 초기화 + +먼저 `OcrEngine` 인스턴스를 생성하고 라이선스를 연결해야 합니다. 이 단계가 전체 기능을 해제하고 평가 워터마크를 제거합니다. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**왜 중요한가:** +라이선스가 없으면 Aspose OCR은 페이지 수가 제한되고 출력에 워터마크가 삽입되는 제한된 “체험” 모드로 동작합니다. 라이선스를 미리 적용하면 파이프라인이 예상치 못한 제한 없이 정상적으로 작동합니다. + +--- + +## PDF에서 OCR 실행 – 문서 로드 및 텍스트 인식 + +이제 **PDF를 OCR용으로 로드**합니다. Aspose OCR은 PDF를 특수 `PdfDocument` 타입으로 취급하며, 내부적으로 각 페이지를 이미지로 추출한 뒤 인식기에 전달합니다. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**내부에서 무슨 일이 일어나나요?** +`recognizeDocument`는 모든 페이지를 순회하면서 최적 DPI로 래스터화하고 OCR 엔진을 실행합니다. 결과는 `OcrPage` 배열이며, 각 요소에는 감지된 텍스트, 신뢰도 점수, 레이아웃 정보가 포함됩니다. 이는 원시 PDF 바이트를 일반 OCR 라이브러리에 전달하는 것보다 훨씬 신뢰성이 높습니다. + +--- + +## OCR 결과를 JSON으로 변환 – 전체 보고서 내보내기 + +대부분의 다운스트림 시스템은 JSON을 선호합니다. JSON은 Java, JavaScript, Python, 심지어 PowerShell에서도 쉽게 역직렬화할 수 있기 때문입니다. Aspose OCR은 전체 `OcrPage[]` 배열을 직렬화하는 `JsonExport` 도우미를 제공합니다. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**언제 사용하나요?** +OCR 출력을 검색 인덱스(Elasticsearch, Solr)나 데이터 파이프라인에 전달해야 할 경우, JSON 형식은 각 페이지, 라인, 단어와 그 신뢰도 값을 구조화된 형태로 제공해 줍니다. + +--- + +## 첫 페이지를 XML로 내보내기 – 개별 페이지 저장 + +때때로 한 페이지만 필요할 때가 있습니다—예를 들어 첫 페이지에 제목이나 청구서 번호가 있을 경우. `XmlExport` 클래스를 사용하면 단일 `OcrPage`를 깔끔한 XML 파일로 덤프할 수 있습니다. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**왜 XML인가?** +레거시 시스템이나 특정 엔터프라이즈 워크플로는 여전히 XML 스키마를 통해 데이터를 수집합니다. 생성된 파일은 Aspose 자체 스키마를 따르므로 검증이 간단합니다. + +--- + +## 출력 확인 – JSON 및 XML 파일 검사 + +프로그램이 종료되면 `YOUR_DIRECTORY`에 두 개의 파일이 생성됩니다: + +- `report_ocr.json` – 페이지 객체 배열을 포함합니다. 예시 스니펫은 다음과 같습니다: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – 1페이지에 대한 동일한 정보를 `` 태그로 감쌉니다. + +任意의 편집기로 열어 보면 원시 OCR 문자열, 신뢰도 점수, 바운딩 박스 좌표를 확인할 수 있습니다. JSON이 비어 있다면 입력 PDF가 실제로 래스터화된 이미지(스캔된 페이지)를 포함하고 있는지, 선택 가능한 텍스트가 아닌지 다시 확인하세요—Aspose OCR은 이미지에만 작동합니다. + +--- + +## 흔히 발생하는 문제와 전문가 팁 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Empty JSON** | PDF에 이미지가 아닌 원본 텍스트가 포함됨. | `PdfDocument.fromFile(..., true)`를 사용해 강제로 래스터화하거나 페이지를 이미지로 변환하세요. | +| **Low confidence** | 원본 PDF 해상도가 낮거나 과도하게 압축됨. | `ocrEngine.getImageProcessingOptions().setDpi(300)`을 호출해 DPI를 높인 뒤 `recognizeDocument`를 실행하세요. | +| **License not found** | 경로가 잘못되었거나 파일이 없음. | 절대 경로를 사용하거나 `.lic` 파일을 클래스패스에 두고 `lic.setLicense("Aspose.OCR.Java.lic")`를 호출하세요. | +| **Out‑of‑memory on huge PDFs** | 모든 페이지를 한 번에 메모리에 로드함. | 페이지를 배치로 처리: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## 예제 확장하기 + +- **특정 언어로 PDF OCR 실행** – `ocrEngine.getLanguage().setLanguage(Language.English)` 또는 사용자 정의 언어 팩 로드 +- **각 페이지를 별도 JSON 파일로 내보내기** – `ocrPages`를 순회하면서 `JsonExport.save(page, "page" + page.getPageNumber() + ".json")` 호출 +- **검색 엔진과 통합** – JSON을 Elasticsearch의 `attachment` 프로세서에 전달해 전체 텍스트 검색 구현 + +--- + +## 결론 + +이제 Aspose OCR for Java를 사용해 **PDF를 OCR하는 방법**에 대한 완전하고 프로덕션 수준의 솔루션을 갖추었습니다. 엔진 초기화, PDF 로드, OCR 실행, **JSON** 및 **XML** 내보내기를 통해 OCR을 어떤 백엔드 워크플로에도 통합할 수 있습니다—**PDF에서 OCR 실행**, **텍스트 PDF 인식**, **PDF를 JSON으로 변환**, 혹은 단순히 **PDF를 OCR용으로 로드**하고자 할 때 모두 가능합니다. + +코드를 실행해 보고 DPI나 언어 설정을 조정해 보세요. 이제 불투명했던 PDF가 검색 가능한 자산으로 변합니다. 더 나아가고 싶나요? JSON을 Elasticsearch에 색인하거나 XML을 XSLT로 후처리해 맞춤 보고서를 생성해 보세요. + +행복한 코딩 되시길, 그리고 여러분의 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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/korean/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..c7cb1ac49 --- /dev/null +++ b/ocr/korean/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,157 @@ +--- +category: general +date: 2026-05-03 +description: 'OCR을 빠르게 실행하는 방법: Aspose OCR Java를 사용하여 이미지에서 텍스트를 추출하고 양식에서 텍스트를 인식하는 + 방법을 배우세요. OCR을 위한 이미지를 읽는 간단한 단계.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: ko +og_description: 'OCR을 빠르게 실행하는 방법: Aspose OCR Java를 사용하여 이미지에서 텍스트를 추출하고 양식에서 텍스트를 + 인식하는 방법을 배웁니다. OCR을 위한 이미지 읽기의 간단한 단계.' +og_title: 양식에서 OCR 실행 방법 – 이미지에서 텍스트 추출 +tags: +- ocr +- java +- image-processing +title: 양식에서 OCR 실행 방법 – 이미지에서 텍스트 추출 +url: /ko/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# how to run ocr on a form – extract text from image + +스캔한 문서에서 **ocr을 실행하는 방법**을 고민해 본 적 있나요? 복잡한 라이브러리를 만지작거리며 시간을 허비하고 있지는 않나요? 청구서 디지털화, 계약서 보관, 손글씨 양식에서 데이터 추출 등 다양한 프로젝트에서 **이미지에서 텍스트 추출**은 일상적인 고통 포인트입니다. + +사실 Aspose OCR for Java를 사용하면 전체 파이프라인이 거의 고통 없이 진행됩니다. 이번 튜토리얼에서는 **양식 파일에서 텍스트를 인식**하기 위해 필요한 모든 코드를 한 줄씩 살펴보고, 각 단계가 왜 중요한지 설명하며, **ocr을 위한 이미지 읽기** 결과와 신뢰도 점수를 확인하는 방법을 보여드립니다. 마지막에는 Maven이나 Gradle 프로젝트에 바로 넣어 사용할 수 있는 Java 클래스를 제공할 것입니다. + +## What You’ll Learn + +- Aspose OCR 엔진을 설정하고 라이선스를 적용하는 방법 +- JPEG, PNG, TIFF 파일을 메모리로 로드하는 방법 +- OCR을 실행하고 인식된 텍스트 라인을 순회하는 방법 +- 신뢰도가 낮은 라인을 찾아 수동 검토하도록 표시하는 방법 +- 예제를 다중 페이지 PDF나 다른 이미지 포맷으로 확장하는 방법 + +Aspose 사용 경험이 없어도 괜찮습니다. 기본적인 Java 개발 환경(JDK 11+ 및 선호하는 IDE)만 있으면 됩니다. 시작해 볼까요. + +![how to run ocr example](/images/ocr-demo.png){alt="how to run ocr on a scanned form example"} + +## Step 1: Initialize the OCR Engine – **how to run ocr** + +OCR 작업을 시작하기 전에 가장 먼저 해야 할 일은 `OcrEngine` 인스턴스를 생성하고 유효한 라이선스를 연결하는 것입니다. 라이선스가 없으면 라이브러리가 데모 모드로 실행되어 처리할 수 있는 페이지 수가 제한됩니다. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Why this matters:** +`OcrEngine`은 언어, 감지 모드, 성능 튜닝 등 모든 설정을 보관합니다. 라이선스를 미리 설정해 두면, 출력이 중간에 잘리는 원인이 되는 트라이얼 모드로의 조용한 전환을 방지할 수 있습니다. + +## Step 2: Load the Image – **extract text from image** + +다음으로 스캔할 파일을 가리키는 `Image` 객체가 필요합니다. Aspose는 다양한 포맷을 지원하므로, 이미 PNG로 변환한 PDF 페이지, 원본 JPEG, 혹은 다중 페이지 TIFF도 그대로 사용할 수 있습니다. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Why this matters:** +이미지를 `Image` 객체로 로드하면 엔진이 픽셀 데이터, DPI 정보, 색 깊이 등에 접근할 수 있게 되며, 이는 OCR 정확도에 큰 영향을 줍니다. 이 단계를 건너뛰고 원시 바이트 배열만 전달하면 이러한 유용한 힌트를 잃게 됩니다. + +## Step 3: Run OCR – **recognize text from form** + +이제 실제 문자 인식을 수행합니다. `recognize` 메서드는 `RecognitionResult`를 반환하며, 여기에는 각각 신뢰도 점수를 가진 `Line` 객체들의 컬렉션이 들어 있습니다. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Why this matters:** +`recognize`를 호출하면 내부적으로 전처리(기울기 보정, 노이즈 제거), 세그멘테이션, 문자 분류, 후처리(맞춤법 검사, 언어 모델) 등 일련의 과정이 순차적으로 실행됩니다. 결과 객체는 이러한 복잡성을 추상화해 제공합니다. + +## Step 4: Process the Results – **read image for ocr** output + +`RecognitionResult`를 얻으면 각 라인을 순회하면서 자동으로 유지할 내용과 불확실한 라인을 구분해 플래그를 지정할 수 있습니다. 대부분의 인쇄된 양식에서는 85 % 정도의 신뢰도 임계값이 좋은 시작점이 됩니다. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Expected output (sample):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +위 예시에서는 엔진이 총액의 마지막 숫자에 대해 확신이 없었기 때문에 경고를 출력했습니다. 이러한 라인을 UI에 전달해 수동 교정하거나, 나중에 검토할 수 있도록 로그에 남길 수 있습니다. + +### Edge Cases & Tips + +- **Multiple pages:** 다중 페이지 PDF가 있다면 각 페이지 인덱스를 순회하면서 `Image.fromPdf(pdfPath, pageIndex)`를 호출하세요. +- **Different languages:** `engine.getLanguage().setLanguage(Language.Spanish);`와 같이 `recognize` 호출 전에 언어를 설정합니다. +- **Image quality:** 저해상도 스캔(< 150 DPI)은 신뢰도가 80 % 이하가 될 수 있습니다. `image.resize(300, 300)`으로 업스케일링하면 도움이 되지만, 가장 좋은 해결책은 더 좋은 스캔을 하는 것입니다. +- **Performance:** 매번 새 `OcrEngine`을 생성하기보다 동일 인스턴스를 재사용하면 오버헤드가 크게 감소합니다. + +## Frequently Asked Questions + +**Can I run this on a headless server?** +물론입니다. 라이브러리는 GUI 의존성이 없으므로 Docker 컨테이너나 CI 파이프라인에서도 정상적으로 동작합니다. + +**What if I don’t have a license yet?** +`engine.recognize`를 호출할 수는 있지만, 데모 모드에서는 첫 2 페이지 이후에 중단되고 출력에 워터마크가 삽입됩니다. 빠른 테스트용으로는 충분합니다. + +**Is there a way to extract structured data (e.g., tables)?** +Aspose OCR은 `TableRecognizer` 클래스를 제공하지만, 이는 초급 가이드 범위를 벗어납니다. 기본을 숙달한 뒤 공식 문서에서 `TableRecognizer`를 확인해 보세요. + +## Wrapping It All Up – **how to run ocr** in a nutshell + +스캔한 양식에서 **ocr을 실행하는 방법**에 필요한 모든 과정을 살펴보았습니다: 엔진 초기화, 이미지 로드, 인식 실행, 그리고 결과를 스마트하게 처리하는 방법. 몇 줄의 Java 코드만으로 **이미지에서 텍스트 추출**, **양식에서 텍스트 인식**, 그리고 **ocr을 위한 이미지 읽기** 결과와 신뢰도 점수를 얻어 언제 인간 검토가 필요한지 판단할 수 있습니다. + +다음 단계는? JPEG 대신 다중 페이지 TIFF를 사용해 보거나, 신뢰도 임계값을 조정해 보세요. 혹은 출력 결과를 데이터베이스에 연동해 자동 데이터 입력 파이프라인을 구축해 보세요. 처리해야 할 문서만큼 가능성은 무한합니다. + +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/korean/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/korean/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..56f106295 --- /dev/null +++ b/ocr/korean/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-05-03 +description: Java에서 OCR을 사용해 PDF 파일에서 텍스트를 추출하는 방법. PDF에서 텍스트를 인식하고, PDF를 텍스트로 변환하며, + OCR 다중 페이지 PDF를 효율적으로 처리하는 방법을 배웁니다. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: ko +og_description: Java에서 OCR을 사용해 PDF 파일에서 텍스트를 추출하는 방법. 이 가이드는 PDF에서 텍스트를 인식하고, PDF를 + 텍스트로 변환하며, 다중 페이지 PDF에 대한 OCR을 처리하는 방법을 보여줍니다. +og_title: Java에서 OCR 사용 방법 – 다중 페이지 PDF에서 텍스트 추출 +tags: +- ocr +- java +- pdf +- aspose +title: Java에서 OCR 사용 방법 – 다중 페이지 PDF에서 텍스트 추출 +url: /ko/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java에서 OCR 사용 방법 – 다중 페이지 PDF에서 텍스트 추출 + +**How to use OCR**을 Java 프로젝트에서 사용하고 싶으신가요? PDF 내부 텍스트 레이어에 의존하지 않고 PDF 파일에서 텍스트를 추출해야 했던 적이 있다면, 여기서 해결책을 찾을 수 있습니다. 이 튜토리얼은 **PDF에서 텍스트 인식**, PDF를 텍스트로 변환, 그리고 **OCR 다중 페이지 PDF**를 한 번의 호출로 처리하는 완전하고 실행 가능한 솔루션을 단계별로 안내합니다. + +예를 들어, 스캔된 계약서 — PDF 안에 12페이지짜리 TIFF가 들어 있다고 가정해 보세요. 인덱싱을 위해 검색 가능한 텍스트가 필요하지만 파일에 임베드된 문자가 없습니다. 문제 없습니다; 정확히 어떻게 하는지 단계별로 보여드리겠습니다. + +> **What you’ll get:** Aspose.OCR을 사용한 바로 실행 가능한 Java 스니펫, 각 라인이 중요한 이유에 대한 설명, 흔히 발생하는 문제에 대한 팁, 그리고 즉시 확인할 수 있는 샘플 출력. + +--- + +## What You’ll Need + +시작하기 전에 다음을 준비하세요: + +* **Java 17** (또는 최신 JDK) – 코드는 이전 버전에서도 동작하지만 17이 가장 적합합니다. +* **Aspose OCR for Java** 라이브러리 – Aspose 사이트에서 JAR를 다운로드하거나 Maven/Gradle을 통해 추가할 수 있습니다. +* 처리하려는 **다중 페이지 PDF**(또는 TIFF). 예제에서는 `contract_multipage.pdf` 파일을 `YOUR_DIRECTORY` 폴더에 두고 사용합니다. +* 유효한 **Aspose OCR 라이선스 파일**(`Aspose.OCR.Java.lic`). 라이선스가 없으면 라이브러리가 평가 모드로 실행되며, 빠른 테스트에는 괜찮지만 워터마크가 추가됩니다. + +이것만 있으면 됩니다—추가 OCR 엔진이나 네이티브 바이너리 없이 단일 JAR와 라이선스만 있으면 됩니다. + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "Java에서 OCR 사용 방법 – 로딩, 인식 및 텍스트 출력 과정 시각화") + +*Image alt text: Java에서 OCR 사용 방법 – 로딩, 인식 및 텍스트 출력 과정 시각화.* + +--- + +## Step 1: Set Up the OCR Engine – **How to Use OCR** Correctly + +먼저 OCR 엔진 인스턴스를 생성하고 라이선스를 적용해야 합니다. 라이선스가 없으면 엔진은 동작하지만 출력에 평가용 워터마크가 표시됩니다. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Why this matters:** +`OcrEngine`은 이미지 분석, 언어 감지 및 텍스트 추출을 조율하는 핵심 객체입니다. 라이선스를 초기에 설정하면 이후에 엔진이 평가 모드로 전환되는 것을 방지해 정확도에 영향을 주지 않게 됩니다. + +--- + +## Step 2: Load the Document – **Extract Text from PDF** Efficiently + +Aspose OCR은 PDF와 TIFF 컨테이너를 직접 읽을 수 있습니다. 여기서는 스캔된 이미지가 포함된 다중 페이지 PDF를 로드합니다. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Why this matters:** +`PdfDocument.fromFile`은 컨테이너를 파싱하고 각 페이지를 이미지로 접근할 수 있게 해줍니다. 이 추상화 덕분에 OCR 엔진은 원본 형식에 관계없이 모든 페이지를 동일하게 처리할 수 있습니다. + +**Tip:** 소스 파일이 TIFF인 경우에도 동일한 호출이 작동합니다—Aspose가 자동으로 형식을 감지합니다. 별도의 코드가 필요하지 않습니다. + +--- + +## Step 3: Recognize All Pages in One Go – **Recognize Text from PDF** Seamlessly + +페이지를 직접 루프 돌리는 대신, 엔진에 전체 문서를 한 번에 처리하도록 요청할 수 있습니다. 이는 **OCR 다중 페이지 PDF**를 다룰 때 **PDF를 텍스트로 변환**하는 가장 효율적인 방법입니다. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Why this matters:** +`recognizeDocument`를 한 번만 호출하면 엔진 초기화에 드는 오버헤드가 감소합니다. 또한 페이지 간에 일관된 언어 설정을 보장해, 폰트가 혼합된 법률 문서와 같은 경우에 특히 중요합니다. + +--- + +## Step 4: Output the Recognized Text – **Convert PDF to Text** for Indexing + +이제 모든 페이지가 처리되었으니, 결과를 순회하면서 추출된 문자열을 출력하면 됩니다. 파일, 데이터베이스에 저장하거나 검색 인덱스로 바로 전달할 수도 있습니다. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Expected output (truncated):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +PDF에 12페이지가 있다면, `--- Page X ---` 섹션이 12번 나타나고 각 섹션 뒤에 OCR로 추출된 텍스트가 표시됩니다. + +--- + +## Advanced Tips for an **OCR Multi Page PDF** + +### 1. Adjust Language Settings + +기본적으로 Aspose는 언어를 자동 감지하지만, 명시적으로 지정하면 속도가 빨라집니다: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Control Image Pre‑Processing + +스캔된 계약서는 잡음이 많을 수 있습니다. 디스키유와 이진화를 활성화할 수 있습니다: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Handle Large Files Gracefully + +PDF가 100 MB를 초과하는 경우, 전체 문서를 한 번에 로드하는 대신 페이지를 스트리밍하는 방식을 고려하세요: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +이 패턴은 메모리 사용량을 줄여주며 배치 작업에 유용합니다. + +### 4. Export to Structured Formats + +단순 텍스트 외에도 JSON이나 XML로 내보내어 후속 처리에 활용할 수 있습니다: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Common Pitfalls & How to Avoid Them + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Blank output** | 라이선스가 적용되지 않았거나 파일 경로가 잘못되었습니다. | `setLicense` 경로를 확인하고 파일이 존재하는지 검증하세요. | +| **Garbage characters** | 잘못된 언어 설정 또는 저해상도 소스 이미지 때문입니다. | 올바른 `Language`를 설정하고 소스 이미지 해상도가 ≥300 dpi인지 확인하세요. | +| **Out‑of‑memory errors** | 전체 PDF를 한 번에 로드했기 때문입니다. | 위에서 소개한 스트리밍 방식을 사용하세요. | +| **Partial page recognition** | PDF에 래스터와 벡터 레이어가 혼합되어 있습니다. | OCR 전에 `pdfDoc.flatten();` 로 PDF를 평탄화하세요. | + +--- + +## Recap – What We Covered + +* Aspose를 사용한 **How to use OCR** in Java. +* **Extract text from PDF**(또는 TIFF)를 한 번의 호출로 수행. +* **Recognize text from PDF**를 페이지별 루프 없이 전체 페이지에 적용. +* **Convert PDF to Text**하고 깔끔하게 출력. +* **OCR 다중 페이지 PDF** 처리 시 언어 설정, 메모리 관리, 스트리밍 등 팁. + +이제 어떤 Java 프로젝트에도 바로 삽입할 수 있는 완전한 생산 준비된 스니펫을 갖추었습니다. 이미지 처리 옵션을 조정하거나 출력 대상을 변경하고, 결과를 검색 인덱스에 통합하는 등 자유롭게 활용하세요. + +--- + +## Next Steps + +* **Aspose OCR의 고급 기능** 탐색 – 손글씨 인식이나 PDF/A 호환성 등. +* **OCR와 PDF 조작 결합** (예: 검색 가능한 PDF를 만들기 위해 숨겨진 텍스트 레이어를 PDF에 다시 추가). +* **배치 처리 자동화** – 폴더에 있는 여러 PDF를 읽고 각각을 `.txt` 파일로 저장. + +문제가 발생하면 Aspose 포럼에서 도움을 받을 수 있으며, API 레퍼런스는 여기서 사용된 모든 메서드에 대한 자세한 정보를 제공합니다. + +행복한 코딩 되세요, 그리고 고정된 스캔을 검색 가능한 텍스트로 변환하는 즐거움을 누리세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/korean/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..278076b1e --- /dev/null +++ b/ocr/korean/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR 라이선스를 로드하기 위해 Java에서 바이너리 파일을 읽습니다. 이 단계별 가이드에서 FileInputStream + 사용법, 바이너리 데이터 처리 및 실용적인 팁을 배워보세요. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: ko +og_description: Java에서 바이너리 파일을 읽어 Aspose OCR 라이선스를 로드합니다. 이 완전한 가이드를 따라 FileInputStream + 및 바이너리 데이터 처리를 마스터하세요. +og_title: Java에서 바이너리 파일 읽기 – Aspose OCR 라이선스 바이트 로드 +tags: +- Java +- File I/O +- OCR +title: Java에서 바이너리 파일 읽기 – Aspose OCR 라이선스 바이트 로드 +url: /ko/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Read Binary File Java – Load License Bytes for Aspose OCR + +서드파티 라이브러리의 라이선스를 다룰 때 **read binary file Java**가 필요했던 적이 있나요? 당신만 그런 것이 아닙니다. 대부분의 Java 개발자는 `.lic` 파일을 OCR 엔진에 전달하려 할 때 이 문제에 부딪히며, 일반 텍스트 파일 방식은 통하지 않습니다. + +이 튜토리얼에서는 바이너리 라이선스 파일을 열고, 바이트를 메모리로 읽어들인 뒤 Aspose OCR for Java에 전달하는 완전하고 실행 가능한 예제를 단계별로 살펴봅니다. 진행하면서 `FileInputStream`이 적절한 도구인 이유, `IOException` 처리 방법, 공식 문서에는 잘 나와 있지 않은 몇 가지 팁도 확인할 수 있습니다. + +이 가이드를 마치면 **read binary file Java** 방식으로 라이선스를 읽고, `License` 객체를 생성한 뒤 `OcrEngine`에 할당하는 방법을 문제없이 수행할 수 있게 됩니다. + +## What This Guide Covers + +- 전제 조건: Java 17+, Maven(또는 Gradle), Aspose OCR for Java 라이브러리 +- `FileInputStream`을 사용해 바이너리 `.lic` 파일을 읽는 단계별 코드 +- 각 라인별 설명을 통해 *어떻게*가 아닌 *왜*를 이해하도록 돕습니다 +- 예외 상황 처리(파일 없음, 손상된 바이트) 및 실용적인 디버깅 팁 +- IDE에 복사‑붙여넣기만 하면 바로 실행 가능한 최종 코드 스니펫 + +특별한 API가 필요하냐는 질문에 대한 답은 **전혀 필요 없습니다**—그저 오래된 바이너리 I/O만 있으면 됩니다. 이제 시작해 보겠습니다. + +## Step 1: Read Binary File Java with FileInputStream + +먼저 디스크에 있는 라이선스 파일에서 원시 바이트를 안정적으로 추출할 방법이 필요합니다. Java에서는 `FileInputStream`이 바로 그 역할을 수행합니다. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**왜 이렇게 동작하나요:** `Files.readAllBytes`는 내부적으로 `FileInputStream`을 생성하고 전체 스트림을 읽은 뒤 자동으로 닫아줍니다. 안전하고 간결하며 “스트림을 닫는 것을 잊음”이라는 고전적인 함정을 피할 수 있습니다. 클래식한 패턴을 선호한다면 `FileInputStream`을 직접 사용해 try‑with‑resources 블록으로 교체할 수 있습니다. + +### Pro tip + +라이선스 파일이 매우 큰 경우(가능성은 낮지만) 한 번에 모두 로드하는 대신 청크 단위로 스트리밍하는 것을 고려하세요. 대부분의 OCR 라이선스 파일은 몇 킬로바이트 이하이므로 한 번에 로드하는 방식이 충분히 적합합니다. + +## Step 2: Create License Object for Aspose OCR + +이제 원시 바이트를 확보했으니, 이를 Aspose‑compatible `License` 인스턴스로 변환해야 합니다. 라이브러리는 바이트 배열을 받아들이는 `License` 클래스를 제공합니다. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**왜 중요한가요:** 바이트를 직접 전달함으로써 경로 관련 문제(예: 작업 디렉터리 기준 상대 경로 혼동)를 피하고, 배포 시 `.lic` 파일을 어디에 두든지 포터블하게 유지할 수 있습니다. + +## Step 3: Assign License to OCR Engine + +`License` 객체가 준비되었으니, 마지막 단계는 이를 `OcrEngine`에 연결하는 것입니다. 이 단계가 OCR 컴포넌트를 평가판 샌드박스가 아닌 정식 라이선스 모드로 실행하게 합니다. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Note:** 일부 오래된 Aspose 버전에서는 setter 대신 public `license` 필드를 노출합니다. 컴파일 오류가 발생하면 코드를 `ocrEngine.license = license;` 형태로 수정하세요. + +## Step 4: Verify License Loaded Successfully (Optional but Helpful) + +간단한 검증을 통해 나중에 발생할 디버깅 시간을 크게 절감할 수 있습니다. `License` 클래스는 성공 시 예외를 발생시키지 않지만, 무해한 OCR 작업을 수행해 확인할 수 있습니다. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +“License applied successfully” 메시지가 보이면 정상입니다. 그렇지 않다면 파일 경로, 바이트 무결성, 그리고 사용 중인 Aspose 버전을 다시 확인하세요. + +## Full Working Example + +모든 조각을 합치면 간결하고 복사‑붙여넣기만 하면 되는 프로그램이 완성됩니다. `Main.java` 파일에 넣고 바로 실행해 보세요. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**예상 출력(더미 이미지가 존재한다고 가정):** + +``` +License applied successfully – OCR engine is ready. +``` + +라이선스 파일이 없거나 손상된 경우 다음과 같은 명확한 오류 메시지가 표시됩니다: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Common Pitfalls & How to Avoid Them + +- **Path confusion:** 상대 경로는 JVM의 작업 디렉터리를 기준으로 해석됩니다. 절대 경로를 사용하거나 `.lic` 파일을 JAR와 같은 위치에 두고 `getResourceAsStream`으로 참조하세요. +- **Wrong byte order:** `Reader`(문자 기반)로 바이너리 파일을 읽으려 하면 데이터가 손상됩니다. 반드시 `FileInputStream` 기반 API를 사용하세요. +- **Version mismatch:** 일부 오래된 Aspose 릴리스는 `setLicenseBytes` 대신 `license.setLicense("path/to/file")`을 요구합니다. `NoSuchMethodError`가 발생하면 릴리스 노트를 확인하세요. +- **Forgot to close streams:** 클래식 `FileInputStream` 방식을 사용할 경우, 반드시 try‑with‑resources 블록으로 감싸서 스트림이 자동으로 닫히도록 하세요. + +## Conclusion + +이제 **read binary file Java**를 활용해 Aspose OCR 라이선스를 로드하고, `License` 객체를 생성한 뒤 `OcrEngine`에 연결하는 방법을 숙지했습니다. 핵심은 `FileInputStream`(또는 최신 `Files.readAllBytes`)을 이용한 올바른 바이너리 데이터 처리와 몇 가지 간단한 API 호출에 있습니다. + +앞으로는 실제 OCR 작업—PDF, 이미지, 스캔 문서 등에서 텍스트 추출—에 바로 착수해도 라이선스 레이어 때문에 막히는 일은 없습니다. 관련 주제로는 **Java FileInputStream**, **binary data handling Java**, **read license file Java** 튜토리얼을 참고해 보세요. + +행복한 코딩 되시고, 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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/korean/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..bd8c9d19f --- /dev/null +++ b/ocr/korean/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR for Java를 사용하여 이미지에서 텍스트를 인식하고 이미지를 텍스트로 변환하는 방법을 배웁니다. OCR + 정확도를 향상시키는 팁과 PNG 파일에서 OCR을 실행하는 방법을 포함합니다. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: ko +og_description: Aspose OCR for Java를 사용하여 이미지에서 텍스트를 인식하는 단계별 가이드. 이미지를 텍스트로 변환하고, + OCR 정확도를 향상시키며, PNG에서 OCR을 실행하는 방법을 배웁니다. +og_title: Aspose OCR을 사용하여 이미지에서 텍스트 인식 – Java 튜토리얼 +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Aspose OCR로 이미지에서 텍스트 인식 – 완전한 Java 가이드 +url: /ko/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR을 사용한 이미지 텍스트 인식 – 완전한 Java 가이드 + +이미지에서 텍스트를 **인식**해야 할 때가 있었지만 어떤 라이브러리가 신뢰할 수 있는 결과를 제공할지 몰랐나요? 당신만 그런 것이 아닙니다—많은 개발자들이 스캔된 PDF, 영수증, 혹은 실험 보고서에서 데이터를 추출하려고 할 때 이 문제에 부딪힙니다. 좋은 소식은 Aspose OCR for Java가 전체 과정을 아주 쉽게 만들어 주며, 몇 줄만으로 **이미지를 텍스트로 변환**할 수도 있다는 점입니다. + +이 튜토리얼에서는 OCR을 위해 이미지를 로드하고, **OCR 정확도 향상**을 위한 설정을 조정하며, 최종적으로 **PNG 파일에 OCR 실행**하고 추출된 텍스트를 출력하는 모든 과정을 단계별로 안내합니다. 불필요한 내용 없이 바로 프로젝트에 적용할 수 있는 실용적인 예제를 제공합니다. + +--- + +## 필요한 사항 + +프로젝트를 시작하기 전에 다음 항목이 준비되어 있는지 확인하세요: + +| 전제 조건 | 이유 | +|--------------|--------| +| Java 17 (or newer) | Aspose OCR은 Java 8+을 대상으로 하지만 최신 JDK를 사용하면 성능이 향상됩니다. | +| Aspose OCR for Java 라이브러리 (`aspose-ocr.jar`) | 핵심 엔진으로 무거운 작업을 수행합니다. | +| 유효한 Aspose OCR 라이선스 파일 (`Aspose.OCR.Java.lic`) | 전체 기능을 사용할 수 있게 해 주며, 그렇지 않으면 체험용 워터마크가 표시됩니다. | +| 명확한 텍스트가 포함된 이미지 파일 (PNG, JPEG, TIFF 등) | 예제로 `lab_report.png`를 사용할 것입니다. | +| 사용자 정의 사전 (선택 사항) | ‘hemoglobin’과 같은 도메인‑특정 용어 인식을 향상시킵니다. | + +이 중 익숙하지 않은 것이 있더라도 걱정하지 마세요—JAR 파일을 설치하고 간단한 텍스트 파일을 만드는 작업은 곧 설명할 아주 쉬운 단계입니다. + +## 1단계 – 프로젝트 설정 및 종속성 가져오기 + +먼저 Maven(또는 Gradle) 프로젝트를 새로 만들고 Aspose OCR 종속성을 추가합니다. Maven 사용자는 다음 스니펫을 `pom.xml`에 붙여넣으면 됩니다: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Gradle을 선호한다면 동일한 내용은 다음과 같습니다: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** 버전 번호에 주의하세요; 최신 릴리스에는 **OCR 정확도 향상**에 직접적인 영향을 주는 버그 수정이 포함되는 경우가 많습니다. + +이제 `OcrDemo.java`라는 Java 클래스를 만들고, 파일 상단에 필요한 클래스를 import합니다: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## 2단계 – OCR 엔진 초기화 및 라이선스 적용 + +라이선스를 먼저 적용하지 않으면 **PNG 파일에 OCR 실행**을 할 수 없습니다. 아래와 같이 설정합니다: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +왜 별도의 `License` 객체를 만들까요? Aspose는 라이선스 처리를 엔진과 분리해 두어, 멀티‑테넌트 SaaS 시나리오에서 라이선스를 동적으로 전환할 수 있도록 합니다. + +## 3단계 – 사용자 정의 사전 로드 (선택 사항이지만 강력함) + +의료 용어, 화학식, 브랜드명 등 특수한 도메인 용어를 다룰 경우, 사용자 정의 사전을 사용하면 **OCR 정확도 향상**에 크게 도움이 됩니다. 사전은 한 줄에 하나씩 단어를 적은 일반 텍스트 파일입니다: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Why it works:** OCR 엔진은 사전을 사용해 언어 모델을 여러분이 중요하게 생각하는 단어 쪽으로 편향시켜, “hemo‑globin” → “hemoglobin”과 같은 오인식을 줄여줍니다. + +사전 파일이 없으면 이 라인을 건너뛰어도 됩니다—Aspose는 기본 제공 언어 팩만으로도 충분히 좋은 성능을 보여줍니다. + +## 4단계 – 처리할 이미지 로드 + +이제 실제로 **OCR을 위한 이미지 로드**를 수행합니다. Aspose는 다양한 포맷을 지원하지만, PNG는 손실이 없어서 스캔 문서에 안전한 선택입니다. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** 이미지가 매우 크고(5 MB 초과) 경우 먼저 다운스케일링하여 처리 속도를 높이는 것이 좋습니다. `Image` 클래스의 `resize` 메서드를 인식 전에 호출할 수 있습니다. + +## 5단계 – OCR 프로세스 실행 및 텍스트 추출 + +모든 준비가 끝났으면 OCR 엔진을 실행합니다. `recognize` 메서드는 추출된 문자열, 신뢰도 점수, 레이아웃 정보가 필요할 경우 바운딩 박스를 포함하는 `OcrResult` 객체를 반환합니다. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +프로그램을 실행하면 다음과 같은 출력이 나타납니다: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +이제 Aspose OCR을 사용해 **이미지에서 텍스트 인식**과 **이미지를 텍스트로 변환**을 성공적으로 수행했습니다. + +## 6단계 – 흔히 발생하는 문제와 해결 방법 + +견고한 라이브러리를 사용하더라도 몇 가지 작은 문제에 부딪힐 수 있습니다: + +| 증상 | 가능한 원인 | 해결 방법 | +|---------|--------------|-----| +| 빈 출력 | 라이선스가 적용되지 않았거나 만료됨 | `Aspose.OCR.Java.lic` 파일 경로를 확인하고 버전과 일치하는지 확인하세요. | +| 깨진 문자 | 이미지가 저해상도이거나 과도하게 압축됨 | 고해상도 원본을 사용하거나 이미지 전처리(이진화, 기울기 보정)를 수행하세요. | +| 도메인‑특정 단어 누락 | 사용자 정의 사전 없음 | 누락된 용어를 한 줄에 하나씩 적은 사전 파일을 추가하세요. | +| 대량 배치 처리 시 느린 속도 | 멀티스레딩 미사용 | `OcrEngine` 인스턴스 풀을 생성(스레드‑안전)하고 이미지를 병렬 처리하세요. | + +## 7단계 – 예제 확장: 결과를 파일에 저장 + +추출된 텍스트를 나중에 분석하려면 파일에 기록하면 됩니다: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +이제 **OCR을 위한 이미지 로드**, 내용 추출, 원하는 위치에 저장까지 모두 수행할 수 있는 재사용 가능한 파이프라인이 완성되었습니다. + +## 보너스: 폴더 내 여러 PNG 파일에 OCR 실행 + +실제 프로젝트에서는 수십 개의 스캔을 한 번에 처리해야 할 때가 많습니다. 아래 루프는 지정된 디렉터리에서 모든 `.png` 파일을 찾아 처리합니다: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +같은 `ocrEngine` 인스턴스를 재사용하는 것을 기억하세요—파일마다 새 인스턴스를 만들면 불필요한 오버헤드가 발생합니다. + +## 결론 + +이제 Aspose OCR for Java를 사용해 **이미지에서 텍스트 인식**을 수행하는 완전한 엔드‑투‑엔드 솔루션을 갖추었습니다. 이미지를 로드하고, 필요에 따라 사용자 정의 사전으로 엔진을 강화해 **OCR 정확도 향상**을 이루며, **PNG 파일에 OCR 실행**하고 결과를 저장하는 전체 흐름이 준비되었습니다. + +다음 단계는 추출된 텍스트를 자연어 처리 파이프라인에 연결하거나, 손글씨 노트에 OCR을 적용해 보는 것입니다(Aspose는 손글씨 모드도 제공합니다). 가능성은 무궁무진하며, 이제 첫 발을 내디뎠습니다. + +코딩 즐겁게! 진행 중 문제가 발생하면 아래 댓글로 남겨 주세요—함께 해결해 봅시다. + +![콘솔에서 OCR 결과 스크린샷 – 이미지에서 텍스트 인식](/images/ocr_console_result.png "이미지에서 텍스트 인식 예시") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/polish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/polish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..cb8375f10 --- /dev/null +++ b/ocr/polish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Wyodrębnij tabele z obrazu przy użyciu Aspose OCR Java. Dowiedz się, + jak wczytać obraz do OCR, wyodrębnić tabelę z pliku PNG, przekształcić tekst tabeli + z obrazu oraz szybko rozpoznać obraz paragonu. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: pl +og_description: Wyodrębnij tabele z obrazu za pomocą Aspose OCR Java. Ten przewodnik + pokazuje, jak załadować obraz do OCR, wyodrębnić tabelę z pliku PNG, przekształcić + tekst tabeli z obrazu oraz rozpoznać obraz paragonu. +og_title: Wyodrębnianie tabel z obrazu – Poradnik Aspose OCR Java +tags: +- Aspose OCR +- Java +- Image Processing +title: Wyodrębnianie tabel z obrazu – Kompletny przewodnik Aspose OCR Java +url: /pl/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wyodrębnianie tabel z obrazu – Kompletny przewodnik Aspose OCR Java + +Czy kiedykolwiek potrzebowałeś **extract tables from image** plików, ale napotykałeś na przeszkody? Być może masz zeskanowany paragon lub sfotografowaną fakturę, a dane tabelaryczne są ukryte w pliku PNG. W tym samouczku zobaczysz dokładnie, jak *load image for OCR*, przekształcić to zdjęcie w ustrukturyzowane wiersze i **convert image table text** na coś, z czym możesz pracować w Javie. + +Przejdziemy przez każdy krok, od licencjonowania silnika Aspose OCR po drukowanie każdej komórki wykrytych tabel. Po zakończeniu będziesz w stanie **recognize receipt image** pliki i wyodrębnić ich tabele bez wysiłku. + +## Czego się nauczysz + +- Jak zainicjalizować silnik Aspose OCR i zastosować swoją licencję. +- Dlaczego włączenie wykrywania tabel jest kluczem do **extract tables from image**. +- Dokładny kod potrzebny do **load image for OCR** i uruchomienia rozpoznawania na pliku PNG. +- Sposoby radzenia sobie z wieloma tabelami, skanami o niskiej rozdzielczości i typowymi pułapkami. +- Jak **convert image table text** do formatu gotowego do drukowania (lub do bazy danych). + +Nie potrzebna jest żadna zewnętrzna dokumentacja — wszystko, czego potrzebujesz, znajduje się tutaj. + +## Wymagania wstępne + +- Java 17 lub nowsza (kod używa nowoczesnego systemu modułów). +- Plik licencji Aspose OCR for Java (`Aspose.OCR.Java.lic`). Jeśli tylko eksperymentujesz, tymczasowy klucz ewaluacyjny również działa. +- Obraz PNG zawierający wyraźną tabelę (np. `receipt_with_table.png`). +- Maven lub Gradle do pobrania zależności Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Trzymaj plik licencji obok folderu `src/main/resources`, aby ścieżka była stabilna w różnych środowiskach. + +--- + +## Krok 1 – Zainicjalizuj silnik OCR do **extract tables from image** + +Zanim silnik będzie mógł cokolwiek zrobić, musi wiedzieć, że jesteś legalnym użytkownikiem. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Dlaczego to ważne:* Bez ważnej licencji silnik OCR działa w trybie próbnym, co może obcinać wyniki lub dodawać niechciane znaki wodne — co czyni wyodrębnianie tabel niepewnym. + +--- + +## Krok 2 – Włącz wykrywanie tabel (**extract table from png**) + +Wykrywanie tabel nie jest włączone domyślnie; musisz przełączyć przełącznik. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Włączenie tego flagi mówi Aspose OCR, aby traktował grupy wyrównanego tekstu jako wiersze i kolumny, co jest dokładnie tym, czego potrzebujesz, gdy chcesz **extract tables from image** plików PNG. + +--- + +## Krok 3 – **Load image for OCR** i **recognize receipt image** + +Teraz faktycznie wprowadzamy obraz do silnika. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Jeśli masz do czynienia ze scenariuszem **recognize receipt image**, możesz chcieć wstępnie przetworzyć obraz (prostowanie, zwiększenie kontrastu). To wykracza poza zakres tego krótkiego przewodnika, ale warto to zbadać przy szumnych skanach. + +--- + +## Krok 4 – Przetwórz wynik OCR i **convert image table text** + +Obiekt `OcrResult` może zawierać jedną lub więcej tabel. Przejdźmy po nich i wydrukujmy każdą komórkę. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Co to robi:** + +- Sprawdza, czy znaleziono jakiekolwiek tabele; jeśli nie, sugeruje poprawę jakości. +- Dla każdej tabeli drukuje wiersze z komórkami oddzielonymi tabulatorem, co jest wygodnym formatem do importu CSV. +- Wywołanie `Cell::getText` jest sercem **convert image table text** – pobiera surowy ciąg OCR z każdej komórki. + +### Oczekiwany wynik + +Zakładając, że `receipt_with_table.png` zawiera prostą tabelę 3 × 2, zobaczysz coś w rodzaju: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Jeśli obraz zawiera wiele tabel, każda będzie oddzielona pustą linią. + +--- + +## Krok 5 – Zweryfikuj wyodrębnione tabele i obsłuż przypadki brzegowe + +### Typowe pułapki + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **No tables detected** | Obraz zbyt rozmyty lub o niskim kontraście | Zastosuj binaryzację (`ImageProcessing.applyThreshold`) przed OCR | +| **Merged cells** | Linie tabeli są słabe, OCR traktuje je jako jeden blok | Zwiększ `TableDetectionSensitivity` w `ocrEngine.getConfig()` | +| **Incorrect column order** | Obraz nachylony powoduje nieprawidłowe wyrównanie | Użyj `ImageProcessing.deskew` lub obróć obraz o 90° | + +### Co zrobić dalej + +- **Export to CSV** – zamień `System.out.println(line);` na `FileWriter`, aby zapisać dane. +- **Feed into a database** – mapuj każdy wiersz na POJO i użyj JPA do persystencji. +- **Combine with other APIs** – przy przetwarzaniu paragonów możesz także wyodrębnić sumy przy użyciu wyrażeń regularnych na tekście OCR. + +--- + +## Pełny działający przykład (gotowy do kopiowania i wklejenia) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Uruchom ten program, wskaż na PNG zawierający wyraźną tabelę i obserwuj, jak konsola wypełnia się starannie sformatowanymi wierszami. + +--- + +## Zakończenie + +Masz teraz solidne, kompleksowe rozwiązanie do **extract tables from image** plików przy użyciu Aspose OCR for Java. Od licencjonowania po **load image for OCR**, włączenie **extract table from png** i w końcu **convert image table text**, każdy krok jest opisany wraz z wyjaśnieniami i praktycznymi wskazówkami. + +Następnie spróbuj połączyć wynik z plikiem CSV, wstawić wiersze do relacyjnej bazy danych lub połączyć krok OCR z procedurą wyodrębniania sum z paragonów. Ten sam schemat działa dla faktur, cenników i każdego zeskanowanego dokumentu, który ukrywa dane w siatce. + +Masz pytania dotyczące obsługi paragonów o niskiej rozdzielczości lub skalowania tego rozwiązania do przetwarzania wsadowego? zostaw komentarz poniżej i szczęśliwego kodowania! + +![Wyodrębnianie tabel z obrazu – przykład](https://example.com/assets/extract-tables-from-image.png "Wyodrębnianie tabel z obrazu – przykładowy wynik") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/polish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..7f086ce13 --- /dev/null +++ b/ocr/polish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Wyodrębnij tekst z obrazu w Pythonie przy użyciu Aspose OCR. Poznaj krok + po kroku samouczek OCR w Pythonie z obsługą mieszanej łacińsko‑cyrylicznej. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: pl +og_description: Szybko wyodrębnij tekst z obrazu w Pythonie. Ten przewodnik pokazuje, + jak używać Aspose OCR w Pythonie dla obrazów z mieszanymi znakami łacińskimi i cyrylicą. +og_title: Wyodrębnianie tekstu z obrazu w Pythonie – Pełny przewodnik po Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Wyodrębnianie tekstu z obrazu w Pythonie – Kompletny przewodnik po Aspose OCR +url: /pl/python-java/general/extract-text-from-image-python-complete-aspose-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 Python – Kompletny przewodnik Aspose OCR + +Czy kiedykolwiek potrzebowałeś **extract text from image python**, ale nie byłeś pewien, która biblioteka poradzi sobie z mieszanką znaków łacińskich i cyrylicy? Nie jesteś jedyny — programiści stale napotykają ten problem przy OCR‑owaniu wielojęzycznych zrzutów ekranu. + +Dobrą wiadomością jest to, że Aspose OCR for Python sprawia, że cały proces jest prawie bezbolesny. W tym samouczku przeprowadzimy Cię przez instalację pakietu, zastosowanie licencji, załadowanie obrazu z mieszanym językiem oraz wyciągnięcie rozpoznanego tekstu w kilku linijkach kodu. Na końcu będziesz mieć gotowy do uruchomienia skrypt, który możesz wkleić do dowolnego projektu. + +## Czego się nauczysz + +- Jak skonfigurować **Aspose OCR Python** w środowisku wirtualnym. +- Dlaczego podpowiadanie języków (takich jak łaciński i cyrylica) przyspiesza wykrywanie. +- Dokładny kod potrzebny do **extract text from image python** przy użyciu jednego wywołania funkcji. +- Typowe pułapki przy pracy z OCR w wielu językach i jak ich unikać. + +### Wymagania wstępne + +- Python 3.8 lub nowszy zainstalowany na twoim komputerze. +- Plik licencji Aspose OCR (`Aspose.OCR.Java.lic`). Bezpłatna wersja próbna działa do testów, ale plik licencyjny usuwa znaki wodne. +- Obraz PNG/JPEG zawierający zarówno znaki łacińskie, jak i cyrylicę (nazwijmy go `mixed_latin_cyrillic.png`). + +Jeśli te elementy są spełnione, możesz śmiało zaczynać — nie są potrzebne dodatkowe frameworki ani ciężkie zależności. + +--- + +## Krok 1 – Extract Text from Image Python: Instalacja Aspose OCR + +Najpierw: pobierz bibliotekę z PyPI i upewnij się, że twoje środowisko może odnaleźć plik licencji. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Wskazówka:** Jeśli napotkasz błąd uprawnień, dodaj `--user` do polecenia `pip install` lub uruchom terminal jako administrator. + +Teraz, gdy pakiet jest już w systemie, zaimportujemy go i wskażemy silnikowi naszą licencję. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Dlaczego potrzebujemy licencji w tym momencie? Bez niej silnik działa w **trybie ewaluacyjnym**, który ogranicza liczbę stron i dodaje znak wodny do wyniku. Dostarczenie licencji od razu zapewnia, że późniejsze wywołanie `recognize` zwróci czysty tekst. + +--- + +## Krok 2 – Załaduj obraz z mieszanym zawartością łacińsko‑cyryliczną + +Następnie wczytujemy obraz do pamięci. Aspose OCR pracuje z własną klasą `Image`, która abstrahuje od rzeczywistego formatu pliku. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Jeśli zastanawiasz się, czy inne formaty działają — tak, obsługiwane są JPEG, BMP, TIFF, a nawet PDF. Wystarczy zmienić rozszerzenie pliku, a metoda `from_file` zajmie się resztą. + +--- + +## Krok 3 – Podpowiedz języki dla szybszego wykrywania (opcjonalne, ale przydatne) + +Gdy wiesz, jakie języki znajdują się na obrazie, możesz dać silnikowi wskazówkę. Nie jest to obowiązkowe, ale **znacznie skraca czas przetwarzania** i poprawia dokładność OCR w wielu językach. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +Lista podpowiedzi akceptuje dowolny język obsługiwany przez Aspose OCR (np. `"Arabic"`, `"Japanese"`). Jeśli pominiesz ten krok, silnik spróbuje wszystkich wbudowanych języków, co może być wolniejsze przy dużych partiach. + +--- + +## Krok 4 – Uruchom silnik OCR i wyodrębnij tekst + +Nadszedł moment prawdy: rzeczywiste rozpoznanie znaków. Metoda `recognize` zwraca obiekt `OcrResult`, który zawiera czysty tekst, wyniki pewności oraz ewentualnie ramki ograniczające, jeśli będą potrzebne później. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Dlaczego to działa:** Pod maską Aspose OCR łączy detektor tekstu oparty na sieci neuronowej z klasyfikatorami specyficznymi dla języka. Przekazując mu obiekt `Image`, omijasz potrzebę ręcznego przetwarzania wstępnego, takiego jak binaryzacja. + +--- + +## Krok 5 – Wyświetl wyodrębniony tekst + +Na koniec wypiszmy wynik w konsoli. W prawdziwej aplikacji możesz zapisać go do pliku, wstawić do bazy danych lub przekazać do API tłumaczeniowego. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Gdy uruchomisz skrypt, powinieneś zobaczyć coś podobnego: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Ten wynik potwierdza, że pomyślnie **extract text from image python**, obsługując zarówno znaki łacińskie, jak i cyrylicę w jednym przebiegu. + +--- + +## Pełny działający przykład + +Poniżej znajduje się kompletny skrypt, który możesz skopiować do pliku o nazwie `extract_ocr.py`. Wystarczy podmienić ścieżki placeholderów na własne katalogi. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Zapisz plik, aktywuj środowisko wirtualne i uruchom: + +```bash +python extract_ocr.py +``` + +Powinieneś zobaczyć rozpoznany tekst wypisany w konsoli, co potwierdza, że skrypt działa od początku do końca. + +--- + +## Najczęściej zadawane pytania i przypadki brzegowe + +**Co jeśli obraz jest rozmyty?** +Aspose OCR zawiera wbudowane odwracanie pochylenia i redukcję szumów, ale przy mocno zdegradowanych zdjęciach warto wstępnie przetworzyć je w OpenCV (np. zastosować rozmycie Gaussa i progowanie). Klasa `Image` może także przyjąć tablicę NumPy, więc możesz łańcuchowo stosować własne filtry przed wywołaniem `recognize`. + +**Czy mogę przetworzyć cały folder obrazów?** +Oczywiście. Owiń logikę w pętlę `for`, zmień `from_file`, aby wczytywać kolejne nazwy plików, i przechowuj wyniki w słowniku. Pamiętaj o respektowaniu limitów API, jeśli używasz wersji chmurowej. + +**Czy potrzebuję osobnej licencji dla każdego języka?** +Nie, jedna licencja Aspose OCR obejmuje wszystkie obsługiwane języki. Lista `language_hints` to jedynie wskazówka wydajnościowa. + +**A co z wejściem PDF?** +Zastąp `Image.from_file` wywołaniem `ocr.Image.from_file("document.pdf")`. Silnik OCR automatycznie rasteryzuje każdą stronę i zwróci połączony tekst. + +--- + +## Zakończenie + +Właśnie pokazaliśmy zwięzły, gotowy do produkcji sposób na **extract text from image python** przy użyciu Aspose OCR. Kroki — instalacja, licencja, wczytanie, podpowiedź języków, rozpoznanie i wyświetlenie — obejmują wszystko, co potrzebne, aby uzyskać niezawodne wyniki dla treści mieszanej łacińsko‑cyrylicznej. + +Od tego momentu możesz zgłębiać tematy zaawansowane, takie jak **image to text conversion** dla przetwarzania wsadowego, integrować wynik z **Python OCR tutorial** dotyczącym przetwarzania języka naturalnego, albo eksperymentować z innymi podpowiedziami językowymi dla dokumentów wielojęzycznych. Niebo jest granicą, a kod już jest w twoich rękach. + +Masz inny przypadek użycia lub napotkałeś problem? Dodaj komentarz, podziel się doświadczeniami i kontynuujmy dyskusję. Szczęśliwego kodowania! + +![Przykład wyodrębniania tekstu z obrazu w python](/images/extract-text-from-image-python.png "Zrzut ekranu pokazujący wynik OCR – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/polish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..cebd5e4a0 --- /dev/null +++ b/ocr/polish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Wyodrębnij tekst z obrazu natychmiast przy użyciu Aspose OCR. Dowiedz + się, jak zdefiniować obszar zainteresowania, załadować obraz do OCR i wyodrębnić + tekst z faktury w zaledwie kilka minut. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: pl +og_description: Wyodrębnij tekst z obrazu za pomocą Aspose OCR. Ten przewodnik pokazuje, + jak zdefiniować obszar zainteresowania, załadować obraz do OCR i efektywnie wyodrębnić + tekst z faktury. +og_title: Wyodrębnij tekst z obrazu za pomocą Aspose OCR – Kompletny poradnik +tags: +- ocr +- python +- image-processing +title: Wyodrębnianie tekstu z obrazu przy użyciu Aspose OCR – przewodnik krok po kroku +url: /pl/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wyodrębnianie tekstu z obrazu przy użyciu Aspose OCR – przewodnik krok po kroku + +Potrzebujesz **wyodrębnić tekst z obrazu** szybko? Nie jesteś sam — programiści nieustannie zmagają się z zaszumionymi skanami, paragonami i fakturami. W tym tutorialu przeprowadzimy Cię przez kompletną rozwiązanie, które nie tylko pokazuje, jak *wyodrębnić tekst z obrazu*, ale także demonstruje, jak **zdefiniować obszar zainteresowania**, **załadować obraz do OCR** oraz pobrać dokładnie tę linię, której potrzebujesz z faktury. + +Omówimy wszystko, od instalacji biblioteki Aspose OCR po obsługę przypadków brzegowych, takich jak obrócone strony. Po zakończeniu będziesz mieć działający skrypt, który wyodrębnia żądany tekst jednym wywołaniem — bez ręcznego przycinania. + +## Czego się nauczysz + +- Jak **załadować obraz do OCR** przy użyciu API Pythona Aspose. +- Najlepszy sposób na **zdefiniowanie obszaru zainteresowania** (ROI), aby przetwarzać tylko tę część obrazu, która ma znaczenie. +- Jak **wyodrębnić tekst z pól faktury** bez pobierania całej strony. +- Porady, jak **przetwarzać obraz z OCR** efektywnie i unikać typowych pułapek. + +**Wymagania wstępne** – aktualne środowisko Python 3.9+, ważny plik licencji Aspose OCR oraz obraz (np. faktura w formacie PNG). Nie są potrzebne żadne dodatkowe narzędzia. + +--- + +## Krok 1 – Inicjalizacja silnika OCR (Podstawowa konfiguracja) + +Zanim będziesz mógł **przetwarzać obraz z OCR**, potrzebujesz instancji silnika, która posiada Twoją licencję. Ten krok jest kluczowy, ponieważ nielicencjonowany silnik zwróci jedynie ograniczony zestaw wyników. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Dlaczego to ważne*: Obiekt `OcrEngine` jest sercem biblioteki; zarządza modelami językowymi, wstępnym przetwarzaniem obrazu oraz licencjonowaniem. Ustawienie licencji od razu zapewnia pełną dokładność i brak znaków wodnych. + +--- + +## Krok 2 – Załaduj obraz do OCR + +Teraz, gdy silnik jest gotowy, musimy **załadować obraz do OCR**. Aspose obsługuje wiele formatów (PNG, JPEG, TIFF), ale użycie `Image.from_file` gwarantuje prawidłowe dekodowanie obrazu. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: Trzymaj pliki obrazów poniżej 5 MB, aby uzyskać najszybsze przetwarzanie. Większe pliki można zmniejszyć przy pomocy `image.resize(width, height)` przed OCR. + +--- + +## Krok 3 – Zdefiniuj obszar zainteresowania (ROI) + +Większość faktur zawiera dużo nieistotnego tekstu — bloki adresowe, stopki itp. Poprzez **zdefiniowanie obszaru zainteresowania** informujemy silnik, aby patrzył tylko tam, gdzie znajduje się kwota lub data, co zwiększa szybkość i dokładność. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Jak to działa*: Klasa `Rectangle` przycina obraz wirtualnie; silnik OCR nigdy nie widzi pikseli poza prostokątem, więc szumy spoza ROI są ignorowane. + +--- + +## Krok 4 – Rozpoznaj tekst w obrębie ROI + +Mając silnik, obraz i ROI, w końcu **wyodrębniamy tekst z obrazu**. Metoda `recognize` zwraca obiekt `OcrResult` zawierający wykryty ciąg znaków oraz współczynniki pewności. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Oczekiwany wynik** (przykład typowej linii sumy faktury): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Jeśli ROI jest prawidłowo ustawiony, zobaczysz tylko potrzebną linię — nic więcej. + +--- + +## Krok 5 – Pełny działający przykład (Gotowy do kopiowania) + +Poniżej znajduje się kompletny skrypt, który łączy wszystkie poprzednie kroki. Zapisz go jako `extract_invoice_roi.py` i uruchom `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Uruchom skrypt, a w konsoli powinien pojawić się docelowy wiersz. Jeśli otrzymasz pusty ciąg, sprawdź ponownie współrzędne ROI — kilka pikseli odchylenia może całkowicie wykluczyć tekst. + +--- + +## Krok 6 – Typowe wariacje i przypadki brzegowe + +### a) Różne układy faktur +Faktury od różnych dostawców często mają przesunięte pole sumy. Aby **przetwarzać obraz z OCR** w wielu układach, rozważ: + +- **Wiele ROI**: Uruchom silnik kolejno z kilkoma prostokątami i wybierz wynik o najwyższej pewności. +- **Dynamiczne wykrywanie ROI**: Użyj lekkiej biblioteki przetwarzania obrazu (np. OpenCV), aby najpierw zlokalizować etykietę „Total”, a następnie obliczyć ROI względem niej. + +### b) Obrócone lub przechylone obrazy +Jeśli skan jest nachylony, wywołaj `image.rotate(angle)` przed rozpoznaniem: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR oferuje także automatyczne prostowanie, ale ręczna rotacja daje większą kontrolę. + +### c) Znaki niełacińskie +Domyślny model językowy to angielski. Aby **wyodrębnić tekst z faktury** napisanego w innym języku, ustaw język przed rozpoznaniem: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Duże pliki PDF +Przy pracy z wielostronicowymi PDF‑ami najpierw wyodrębnij każdą stronę jako obraz (Aspose PDF → Image), a potem zastosuj tę samą logikę ROI dla każdej strony. + +--- + +## Krok 7 – Wskazówki dotyczące wydajności i porady pro + +- **Cache'uj silnik**: Tworzenie `OcrEngine` wielokrotnie w pętli spowalnia działanie. Zainicjuj go raz i używaj ponownie. +- **Przetwarzanie wsadowe**: Jeśli masz dziesiątki faktur, opakuj wywołanie OCR w `ThreadPoolExecutor`, aby równolegle wykonywać pracę I/O‑bound. +- **Sprawdzanie pewności**: `ocr_result.confidence` zwraca liczbę zmiennoprzecinkową od 0 do 1. Odrzucaj wyniki poniżej 0,85 i przechodź do większego ROI lub ręcznej weryfikacji. + +> **Uwaga**: Ustawienie ROI zbyt małego może obciąć znaki, co skutkuje zniekształconym wynikiem. Zawsze testuj na kilku przykładowych fakturach przed skalowaniem. + +--- + +## Podsumowanie + +Masz teraz solidną, gotową do produkcji metodę **wyodrębniania tekstu z obrazu** przy użyciu Aspose OCR, wraz ze sposobem **zdefiniowania obszaru zainteresowania**, **załadowania obrazu do OCR** oraz niezawodnym **wyodrębnianiem tekstu z pól faktury**. Ograniczając OCR do wąskiego ROI, zwiększasz zarówno szybkość, jak i dokładność — idealne rozwiązanie do przetwarzania tysięcy paragonów w partiach. + +Gotowy na kolejny krok? Spróbuj zintegrować ten skrypt z API Flask, aby Twoja aplikacja webowa mogła wgrać fakturę i natychmiast zwrócić kwotę całkowitą. Albo eksperymentuj z wieloma ROI, aby jednocześnie wyciągnąć datę, numer faktury i nazwę dostawcy. Możliwości są nieograniczone, a dzięki opanowaniu podstaw, jesteś dobrze przygotowany, by podjąć każde wyzwanie OCR. + +Miłego kodowania i niech Twój wyodrębniony tekst zawsze będzie czysty! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Diagram przepływu pokazujący, jak wyodrębnić tekst z obrazu 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 >}} \ No newline at end of file diff --git a/ocr/polish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/polish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..25d42ec8d --- /dev/null +++ b/ocr/polish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,257 @@ +--- +category: general +date: 2026-05-03 +description: Wyodrębnij tekst z obrazu przy użyciu asynchronicznego OCR w Pythonie. + Dowiedz się, jak konwertować pliki tif na tekst, ładować obraz do OCR i efektywnie + rozpoznawać tekst z obrazu. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: pl +og_description: Wyodrębnij tekst z obrazu przy użyciu asynchronicznego OCR w Pythonie. + Ten przewodnik pokazuje, jak przekonwertować plik tif na tekst, wczytać obraz do + OCR oraz rozpoznać tekst z obrazu. +og_title: Wyodrębnianie tekstu z obrazu przy użyciu asynchronicznego OCR w Pythonie + – Kompletny przewodnik +tags: +- OCR +- Python +- AsyncIO +title: Wyodrębnianie tekstu z obrazu przy użyciu asynchronicznego OCR w Pythonie – + Kompletny przewodnik +url: /pl/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wyodrębnianie tekstu z obrazu przy użyciu asynchronicznego OCR w Pythonie – Kompletny przewodnik + +Potrzebujesz **wyodrębnić tekst z obrazu** szybko? Dzięki asynchronicznemu OCR w Pythonie możesz to zrobić w zaledwie kilku linijkach kodu. Niezależnie od tego, czy masz do czynienia z ogromnym skanem .tif, czy kilkoma plikami JPEG, ten tutorial pokaże Ci, jak skonwertować tif do tekstu, załadować obraz do OCR i w końcu rozpoznać tekst z obrazu bez blokowania pętli zdarzeń. + +Oto sytuacja — większość programistów sięga po bibliotekę synchroniczną, a potem patrzy na zamrożony interfejs, podczas gdy silnik przetwarza piksele. W tym przewodniku odwrócimy ten schemat, używając asynchronicznego API Aspose OCR Cloud, dzięki czemu Twoja aplikacja pozostanie responsywna. Po zakończeniu będziesz mieć działający skrypt, który wyciąga tekst z dowolnego obsługiwanego formatu obrazu, i zrozumiesz, dlaczego każdy krok jest potrzebny. + +## Czego się nauczysz + +- Jak skonfigurować Aspose OCR Cloud SDK dla Pythona. +- Dokładny kod potrzebny do **załadowania obrazu do OCR** i uruchomienia asynchronicznego zadania rozpoznawania. +- Wskazówki dotyczące obsługi dużych plików .tif oraz niuansów licencjonowania. +- Sposoby na **bezpieczne wyodrębnianie tekstu z obrazu**, nawet gdy usługa zwraca błędy. +- Kompletny, gotowy do skopiowania przykład, który możesz wstawić do własnego projektu. + +> **Wymagania wstępne**: Python 3.8+ oraz plik licencji Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Nie są wymagane inne pakiety zewnętrzne. + +--- + +![przepływ wyodrębniania tekstu z obrazu](workflow.png){: .align-center alt="przepływ wyodrębniania tekstu z obrazu"} + +## Wyodrębnianie tekstu z obrazu – Przegląd asynchronicznego OCR + +Zanim zanurkujemy w kod, rozłóżmy przepływ. Gdy wywołujesz `recognize_async`, SDK wysyła obraz do chmury Aspose, uruchamia zadanie w tle i zwraca obiekt `Task`. Oczekiwanie na to zadanie daje `OcrResult` zawierający czysty tekstowy opis obrazu. Ponieważ wywołanie jest asynchroniczne, możesz uruchamiać wiele zadań równocześnie — idealne do przetwarzania wsadowego dużych archiwów zeskanowanych dokumentów. + +### Dlaczego używać async? + +- **Non‑blocking I/O** – Twoja pętla zdarzeń pozostaje wolna, aby obsługiwać inne zadania (np. obsługę żądań HTTP). +- **Scalability** – Uruchom dziesiątki rozpoznań jednocześnie; chmura wykonuje ciężką pracę. +- **Responsiveness** – Aplikacje UI nie zamarzną podczas oczekiwania na silnik OCR. + +Teraz, gdy „dlaczego” jest jasne, zobaczmy **jak**. + +## Konwersja TIF do tekstu przy użyciu Aspose OCR + +Częstym problemem jest założenie, że każda biblioteka OCR natywnie obsługuje .tif. Aspose tak robi, ale nadal musisz przekazać jej obiekt `Image`. SDK abstrahuje format, więc możesz po prostu wskazać ścieżkę do pliku. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Wyjaśnienie kluczowych linii** + +- `ocr_engine.license = ...` – Bez ważnej licencji chmura zwraca błąd 403. Upewnij się, że plik `.lic` jest dostępny w katalogu roboczym Twojego skryptu. +- `ocr.Image.from_file(image_path)` – Ten krok **załadowuje obraz do OCR**; SDK automatycznie wykrywa format, więc nie musisz konwertować .tif wcześniej. +- `recognize_async` – Zwraca zadanie kompatybilne z coroutine. Możesz uruchomić kilka takich zadań w wywołaniu `gather`, jeśli masz wsad. + +> **Wskazówka**: Jeśli przetwarzasz TIFF‑y o rozmiarze gigabajtów, rozważ podzielenie ich na strony najpierw. `Image.from_file` Aspose może przyjąć indeks strony, co zmniejsza obciążenie pamięci. + +## Rozpoznawanie tekstu z obrazu asynchronicznie + +Zobaczmy, jak wywołać funkcję w typowym skrypcie. Punkt wejścia `asyncio.run` jest najprostszym sposobem uruchomienia coroutine, gdy nie jesteś już wewnątrz pętli zdarzeń (np. w prostym narzędziu CLI). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Czego się spodziewać** + +Uruchomienie skryptu na czystym, wysokiej rozdzielczości skanie zazwyczaj daje wieloliniowy ciąg znaków odpowiadający wydrukowanej stronie. Jeśli obraz jest zaszumiony, Aspose nadal stara się go wyczyścić, ale możesz zobaczyć zniekształcone znaki. W takim wypadku rozważ wstępne przetworzenie za pomocą OpenCV (np. progowanie) przed przekazaniem pliku do silnika OCR. + +### Obsługa błędów w sposób elegancki + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Łapanie `OcrException` zapewnia, że Twój program nie zawiedzie się, gdy chmura zwróci błąd — coś, co często zaskakuje nowicjuszy zapominających o problemach z siecią. + +## Ładowanie obrazu do OCR – Praktyczne wskazówki + +1. **File Path vs. Bytes** – SDK akceptuje ścieżkę do pliku, ale możesz także załadować z obiektu `bytes`, jeśli obraz znajduje się w pamięci (`ocr.Image.from_bytes`). To przydatne, gdy już pobrałeś plik z S3 lub bazy danych. +2. **Supported Formats** – Oprócz .tif, Aspose obsługuje PDF, BMP, GIF oraz wielostronicowe TIFF‑y. Użyj `Image.from_file("doc.pdf")`, aby bezpośrednio OCR‑ować PDF‑y. +3. **Performance** – W zadaniach wsadowych, ponownie używaj tej samej instancji `OcrEngine`; tworzenie nowego silnika dla każdego pliku wprowadza niepotrzebny narzut. + +## Pełny działający przykład (Wszystkie kroki w jednym skrypcie) + +Poniżej znajduje się kompletny, gotowy do uruchomienia skrypt, który uwzględnia licencjonowanie, obsługę błędów i prosty parser argumentów wiersza poleceń. Skopiuj‑wklej go, dostosuj ścieżkę do licencji i gotowe. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Oczekiwany wynik** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Jeśli obraz zawiera prosty akapit, konsola wyświetli te same linie, zachowując podziały wierszy. Dla wielostronicowych TIFF‑ów SDK konkatenatuje strony w kolejności. + +## Najczęściej zadawane pytania (FAQ) + +**Q: Czy to działa z innymi asynchronicznymi frameworkami, takimi jak FastAPI?** +A: Absolutnie. Zastąp wywołanie `asyncio.run` instrukcją `await async_ocr(path)` wewnątrz swojego endpointu, a FastAPI zajmie się pętlą zdarzeń za Ciebie. + +**Q: Co zrobić, jeśli muszę przetworzyć setki plików jednocześnie?** +A: Użyj `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Czy mogę wyodrębnić tekst z PDF‑a zabezpieczonego hasłem?** +A: Nie bezpośrednio. Najpierw musisz odblokować PDF (np. przy pomocy `pikepdf`), a potem przekazać odszyfrowane bajty do `ocr.Image.from_bytes`. + +**Q: Jak obsłużyć języki inne niż angielski?** +A: Ustaw język przed rozpoznawaniem: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose obsługuje ponad 60 języków; sprawdź dokumentację, aby poznać dokładne identyfikatory. + +## Zakończenie + +Masz teraz solidne rozwiązanie **wyodrębniające tekst z obrazu**, które wykorzystuje `asyncio` w Pythonie i asynchroniczne API Aspose OCR Cloud. Postępując zgodnie z powyższymi krokami, możesz **konwertować tif do tekstu**, **załadować obraz do OCR** i **rozpoznawać tekst z obrazu** w sposób nieblokujący — idealny zarówno dla narzędzi wiersza poleceń, jak i usług internetowych o dużym natężeniu ruchu. + +Co dalej? Spróbuj przetworzyć wsadowo folder skanów, eksperymentuj z ustawieniami językowymi lub podłącz wynik OCR do dalszego potoku NLP. Niebo jest + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/polish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..a23d42f6d --- /dev/null +++ b/ocr/polish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: Szybko wyodrębniaj tekst OCR za pomocą Aspose OCR. Dowiedz się, jak poprawić + dokładność OCR, wczytać obraz do OCR, wstępnie przetworzyć obraz do OCR i uruchomić + skanowanie OCR w Pythonie. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: pl +og_description: Szybko wyodrębniaj tekst OCR przy użyciu Aspose OCR. Opanuj, jak poprawić + dokładność OCR, wczytywać obrazy OCR, wstępnie przetwarzać obrazy OCR i uruchamiać + skanowanie OCR w Pythonie. +og_title: Wyodrębnianie tekstu OCR – Kompletny przewodnik z Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Wyodrębnianie tekstu OCR – Kompletny przewodnik z Aspose OCR +url: /pl/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Kompletny przewodnik z Aspose OCR + +Czy kiedykolwiek potrzebowałeś **extract text ocr** z nieco rozmazanego skanu, ale nie rozumiałeś, dlaczego wyniki wyglądają jak bełkot? Nie jesteś sam — wielu programistów napotyka ten problem, gdy obraz jest pochyły, zaszumiony lub po prostu ma niski kontrast. Dobrą wiadomością jest to, że kilka drobnych zmian w konfiguracji może zamienić nieczytelny obraz w czysty, przeszukiwalny tekst. W tym tutorialu przeprowadzimy Cię przez pełny, end‑to‑end przykład, który pokaże, jak **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, a na końcu **run OCR scan** przy użyciu Aspose OCR for Python. + +Do końca tego przewodnika będziesz mieć działający skrypt, który odczytuje zeskanowany plik JPEG, automatycznie go oczyszcza i wypisuje wyodrębniony tekst w konsoli. Bez tajemniczych linków „zobacz dokumentację” — wszystko, czego potrzebujesz, znajduje się tutaj. + +## Czego będziesz potrzebować + +- **Python 3.8+** (najlepiej najnowsza stabilna wersja) +- **Aspose.OCR for Python via .NET** – instalacja za pomocą `pip install aspose-ocr` +- Plik **license** (`Aspose.OCR.Java.lic`), jeśli posiadasz licencję (bezpłatna wersja próbna wystarczy do testów) +- Obraz, który chcesz przetworzyć (np. `skewed_scanned_doc.jpg`) + +To wszystko. Jeśli masz te elementy, możemy od razu przejść do kodu. + +## Krok 1: Wyodrębnianie tekstu OCR przy użyciu silnika Aspose OCR + +Pierwszą rzeczą, którą robisz, jest uruchomienie silnika OCR i zastosowanie licencji. Traktuj silnik jak mózg, który będzie czytał obraz; bez licencji odmówi pracy poza małym limitem demonstracyjnym. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** Zastosowanie licencji od razu zapobiega cichej awarii później. Jeśli pominiesz ten krok, silnik przełączy się w tryb ograniczony i otrzymasz jedynie garść znaków — zdecydowanie nie to, czego oczekujesz, gdy próbujesz **extract text ocr**. + +## Krok 2: Poprawa dokładności OCR przy użyciu wstępnego przetwarzania + +Skanowane dokumenty, które są krzywe lub ziarniste, są koszmarem każdego projektu OCR. Aspose pozwala przełączać szereg przydatnych ustawień, które automatycznie prostują, odszumiają i zwiększają kontrast. To serce **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – obraca obraz z powrotem do poziomu, co jest kluczowe, gdy oryginalny dokument nie był idealnie płaski. +- **remove_noise** – usuwa losowe plamki, które często pojawiają się w niskiej rozdzielczości JPEG‑ów. +- **enhance_contrast** – sprawia, że ciemny tekst staje się ciemniejszy, a jasne tło jaśniejsze, pomagając silnikowi odróżnić znaki. +- **binarization = "Otsu"** – klasyczny algorytm wybierający najlepszy próg dla konwersji do czerni‑i‑bieli. + +> **Pro tip:** Jeśli wiesz, że Twoje obrazy źródłowe są już czyste, możesz wyłączyć te opcje, aby przyspieszyć przetwarzanie. Jednak w większości rzeczywistych skanów pozostawienie ich włączonych jest najbezpieczniejszym rozwiązaniem. + +## Krok 3: Ładowanie obrazu OCR do skanowania + +Teraz, gdy silnik jest gotowy, musimy **load image ocr**. Metoda `Image.from_file` z Aspose obsługuje JPEG, PNG, TIFF i kilka innych formatów. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Zastąp `YOUR_DIRECTORY` rzeczywistą ścieżką na swoim komputerze. Jeśli pracujesz z strumieniem bajtów w pamięci (np. z przesłania przez web), możesz również użyć `ocr.Image.from_bytes(byte_data)` — ten sam silnik sobie z tym poradzi. + +> **Edge case:** Duże pliki TIFF mogą pochłaniać dużo pamięci. Jeśli napotkasz `MemoryError`, rozważ najpierw zmniejszenie rozdzielczości obrazu lub użycie `ocr_engine.config.max_image_size`, aby ograniczyć wymiary. + +## Krok 4: Uruchomienie skanu OCR i pobranie wyników + +Po załadowaniu obrazu i włączeniu wstępnego przetwarzania, ostatnim krokiem jest **run OCR scan**. To wywołanie wykonuje całą ciężką pracę w tle. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Obiekt `ocr_result` zawiera kilka przydatnych właściwości: + +- `ocr_result.text` – zwykły ciąg znaków, którego potrzebujesz. +- `ocr_result.confidence` – wynik liczbowy (0‑100) wskazujący ogólną wiarygodność. +- `ocr_result.words` – lista obiektów słów z współrzędnymi prostokąta ograniczającego, przydatna do podświetlania. + +## Krok 5: Wypisanie wyodrębnionego tekstu + +Na koniec wyświetlamy wynik. W prawdziwej aplikacji możesz zapisać tekst do pliku, bazy danych lub przekazać go do indeksu wyszukiwania. Dla tego tutorialu wystarczy proste `print`. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output** (przykład prostego faktury): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Jeśli pewność (confidence) jest niska (< 80), warto ponownie przyjrzeć się ustawieniom wstępnego przetwarzania lub wypróbować inną metodę binaryzacji, taką jak `"Sauvola"`. + +## Bonus: Wizualizacja pipeline’u wstępnego przetwarzania (Opcjonalnie) + +Czasami pomocne jest zobaczenie, co silnik zrobił z obrazem. Aspose umożliwia eksport przetworzonego bitmapu: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +extract text ocr workflow diagram showing preprocessing steps + +> **Why you’d do this:** Gdy wynik OCR wygląda nieprawidłowo, szybkie spojrzenie na `processed_debug.png` często ujawnia, czy obraz jest nadal za ciemny, nadal pochyły lub zawiera resztkowy szum. + +## Common Questions & Gotchas + +- **What if my document is multi‑page?** + Aspose OCR działa strona po stronie. Przejdź pętlą po każdym obrazie strony i połącz `ocr_result.text`. + +- **Can I recognize languages other than English?** + Tak — ustaw `ocr_engine.config.language = "fra"` (lub dowolny kod ISO‑639‑2) przed wywołaniem `recognize`. + +- **Is there a limit on image size?** + Silnik domyślnie ogranicza rozmiar do 10 MP. Zwiększ `ocr_engine.config.max_image_size`, jeśli potrzebujesz większych skanów, ale monitoruj zużycie pamięci. + +- **Do I need a separate OCR engine for PDFs?** + Dla PDF‑ów możesz najpierw wyodrębnić każdą stronę jako obraz (używając Aspose.PDF) lub skorzystać z wbudowanej funkcji OCR dla PDF. Kroki przedstawione tutaj pozostają takie same po uzyskaniu obrazu. + +## Recap + +Omówiliśmy, jak **extract text ocr** przy użyciu Aspose OCR for Python, od licencjonowania silnika, przez dostrajanie ustawień **improve ocr accuracy**, ładowanie pliku źródłowego, aż po **run OCR scan**, aby uzyskać czysty tekst. Pełny skrypt jest gotowy do skopiowania i wklejenia, a Ty rozumiesz, dlaczego każdy flag konfiguracyjny ma znaczenie. + +## What’s Next? + +- **Experiment with different binarization methods** (`"Sauvola"`, `"Bradley"`). Niektóre czcionki lepiej reagują na adaptacyjne progi. +- **Integrate with a search engine** (np. Elasticsearch) wykorzystując wynik pewności do rankingowania rezultatów. +- **Combine with OCR post‑processing** libraries like `pyspellchecker`, aby oczyścić typowe błędy rozpoznawania. +- **Explore batch processing** dla setek skanów — opakuj kroki w funkcję i przetwarzaj folder z obrazami. + +Śmiało modyfikuj kod, dodawaj własne logowanie lub podłącz go do większego pipeline’u zarządzania dokumentami. 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/polish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/polish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..ed72e0170 --- /dev/null +++ b/ocr/polish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,186 @@ +--- +category: general +date: 2026-05-03 +description: Jak wykonać OCR pliku PDF przy użyciu Aspose OCR Java. Dowiedz się, jak + uruchomić OCR na PDF, rozpoznać tekst w PDF, konwertować PDF do JSON i wczytać PDF + do OCR w kilku linijkach kodu. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: pl +og_description: Jak wykonać OCR pliku PDF przy użyciu Aspose OCR Java. Ten przewodnik + pokazuje, jak uruchomić OCR na PDF, rozpoznać tekst w PDF, przekonwertować PDF na + JSON oraz szybko wczytać PDF do OCR. +og_title: Jak wykonać OCR PDF za pomocą Aspose OCR – Pełny poradnik programistyczny +tags: +- Aspose OCR +- Java +- PDF processing +title: Jak wykonać OCR pliku PDF przy użyciu Aspose OCR – Kompletny przewodnik krok + po kroku +url: /pl/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak wykonać OCR PDF przy użyciu Aspose OCR – Kompletny przewodnik krok po kroku + +Zastanawiałeś się kiedyś, **jak wykonać OCR PDF** bez walki z narzędziami wiersza poleceń i płacenia za drogie usługi SaaS? Nie jesteś jedyny. W wielu projektach — automatyzacja faktur, archiwizacja zeskanowanych umów czy budowanie przeszukiwalnej bazy wiedzy — pojawi się potrzeba szybkiego i niezawodnego wyodrębniania tekstu z plików PDF. + +Dobre wieści? Z Aspose OCR for Java możesz **uruchomić OCR na PDF**, rozpoznać tekst w stronach PDF, **przekonwertować PDF do JSON**, a nawet **wczytać PDF do OCR** w kilku linijkach kodu. W tym tutorialu przejdziemy przez cały przepływ pracy, wyjaśnimy, dlaczego każdy krok ma znaczenie, i dostarczymy gotowy przykład kodu, który możesz wkleić do własnego projektu. + +## Czego się nauczysz + +- Jak skonfigurować silnik Aspose OCR i zastosować swoją licencję. +- Dokładny sposób **wczytania PDF do OCR** i przekazania go rozpoznawaczowi. +- Jak **rozpoznać tekst PDF** na wszystkich stronach w jednym wywołaniu. +- Eksport pełnego wyniku OCR do pliku **JSON** (idealny dla downstream API) oraz jednej strony do **XML**. +- Wskazówki, pułapki i warianty, które mogą się przydać przy obsłudze wielostronicowych PDF‑ów lub własnych pakietów językowych. + +> **Wymagania wstępne** – Potrzebujesz Java 8 lub nowszej, ważnego pliku licencji Aspose OCR for Java (`Aspose.OCR.Java.lic`) oraz pliku JAR Aspose OCR w classpath. Nie są wymagane żadne inne zewnętrzne biblioteki. + +--- + +## Jak wykonać OCR PDF – Inicjalizacja silnika Aspose OCR + +Pierwszą rzeczą, którą musisz zrobić, jest utworzenie instancji `OcrEngine` i podłączenie licencji. Ten krok odblokowuje pełny zestaw funkcji i usuwa znak wodny wersji próbnej. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Dlaczego to ważne:** +Bez licencji Aspose OCR działa w ograniczonym trybie „trial”, który ogranicza liczbę stron i dodaje znak wodny do wyniku. Zastosowanie licencji na początku zapewnia, że reszta potoku działa bez nieoczekiwanych ograniczeń. + +--- + +## Uruchom OCR na PDF – Wczytaj dokument i rozpoznaj tekst + +Teraz **wczytujemy PDF do OCR**. Aspose OCR traktuje PDF‑y jako specjalny typ `PdfDocument`, który wewnętrznie wyodrębnia każdą stronę jako obraz przed przekazaniem go do rozpoznawacza. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Co dzieje się pod maską?** +`recognizeDocument` iteruje po każdej stronie, rasteryzuje ją przy optymalnym DPI, a następnie uruchamia silnik OCR. Wynikiem jest tablica `OcrPage`, gdzie każdy element zawiera wykryty tekst, współczynniki pewności oraz informacje o układzie. To podejście jest znacznie bardziej niezawodne niż podawanie surowych bajtów PDF do ogólnej biblioteki OCR. + +--- + +## Konwertuj wynik OCR do JSON – Eksport pełnego raportu + +Większość systemów downstream preferuje JSON, ponieważ łatwo go deserializować w Java, JavaScript, Pythonie czy nawet PowerShellu. Aspose OCR dostarcza pomocnika `JsonExport`, który serializuje całą tablicę `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Kiedy to wykorzystać?** +Jeśli musisz przekazać wynik OCR do indeksu wyszukiwania (Elasticsearch, Solr) lub potoku danych, format JSON zapewnia ustrukturyzowaną reprezentację każdej strony, linii i słowa, wraz z wartościami pewności. + +--- + +## Eksport pierwszej strony do XML – Zapisz pojedynczą stronę + +Czasami interesuje Cię tylko jedna strona — np. pierwsza zawiera tytuł lub numer faktury. Klasa `XmlExport` pozwala wyeksportować pojedynczy `OcrPage` do schludnego pliku XML. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Dlaczego XML?** +Starsze systemy lub niektóre przepływy pracy w przedsiębiorstwach nadal opierają się na schematach XML do importu. Wygenerowany plik podąża za własnym schematem Aspose, co ułatwia walidację. + +--- + +## Zweryfikuj wynik – Sprawdź pliki JSON i XML + +Po zakończeniu programu powinieneś zobaczyć dwa pliki w `YOUR_DIRECTORY`: + +- `report_ocr.json` – Zawiera tablicę obiektów stron. Przykładowy fragment może wyglądać tak: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Zawiera te same informacje dla strony 1, opakowane w tagi ``. + +Otwórz je w dowolnym edytorze; zobaczysz surowe ciągi OCR, współczynniki pewności oraz współrzędne prostokątów ograniczających. Jeśli JSON jest pusty, sprawdź, czy wejściowy PDF faktycznie zawiera zawartość rastrową (zeskanowane obrazy), a nie wybieralny tekst — Aspose OCR działa wyłącznie na obrazach. + +--- + +## Typowe problemy i wskazówki profesjonalne + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **Empty JSON** | PDF zawiera natywny tekst, a nie obrazy. | Użyj `PdfDocument.fromFile(..., true)`, aby wymusić rasteryzację, lub wstępnie przekonwertuj strony na obrazy. | +| **Low confidence** | Źródłowy PDF ma niską rozdzielczość lub jest mocno skompresowany. | Zwiększ DPI, wywołując `ocrEngine.getImageProcessingOptions().setDpi(300)` przed `recognizeDocument`. | +| **License not found** | Nieprawidłowa ścieżka lub brak pliku. | Użyj ścieżki bezwzględnej lub umieść plik `.lic` w classpath i wywołaj `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory on huge PDFs** | Wszystkie strony są ładowane do pamięci jednocześnie. | Przetwarzaj strony w partiach: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Rozszerzanie przykładu + +- **Uruchom OCR na PDF z określonym językiem** – ustaw `ocrEngine.getLanguage().setLanguage(Language.English)` lub wczytaj własny pakiet językowy. +- **Eksportuj każdą stronę do osobnych plików JSON** – iteruj po `ocrPages` i wywołaj `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integracja z silnikiem wyszukiwania** – przekaż JSON do procesora `attachment` w Elasticsearch, aby uzyskać pełnotekstowe wyszukiwanie. + +--- + +## Zakończenie + +Masz teraz kompletną, gotową do produkcji metodę **jak wykonać OCR PDF** przy użyciu Aspose OCR for Java. Inicjalizując silnik, wczytując PDF, uruchamiając OCR i eksportując zarówno **JSON**, jak i **XML**, możesz zintegrować OCR z dowolnym backendowym przepływem pracy — niezależnie od tego, czy potrzebujesz **uruchomić OCR na PDF**, **rozpoznać tekst PDF**, **przekonwertować PDF do JSON**, czy po prostu **wczytać PDF do OCR**. + +Wypróbuj, dostosuj DPI lub ustawienia języka i zobacz, jak Twoje nieprzejrzyste PDF‑y stają się przeszukiwalnymi zasobami. Chcesz iść dalej? Spróbuj zaindeksować JSON w Elasticsearch lub przetworzyć XML przy pomocy XSLT, aby wygenerować własne raporty. + +Miłego kodowania i niech Twoje PDF‑y zawsze będą czytelne! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/polish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..d2a4501d3 --- /dev/null +++ b/ocr/polish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'jak szybko uruchomić OCR: naucz się wyodrębniać tekst z obrazu i rozpoznawać + tekst z formularza przy użyciu Aspose OCR Java. Proste kroki do odczytywania obrazu + dla OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: pl +og_description: 'jak szybko uruchomić OCR: dowiedz się, jak wyodrębnić tekst z obrazu + i rozpoznać tekst z formularza przy użyciu Aspose OCR Java. Proste kroki do odczytywania + obrazu dla OCR.' +og_title: jak uruchomić OCR na formularzu – wyodrębnić tekst z obrazu +tags: +- ocr +- java +- image-processing +title: Jak uruchomić OCR na formularzu – wyodrębnić tekst z obrazu +url: /pl/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# jak uruchomić OCR na formularzu – wyodrębnić tekst z obrazu + +Zastanawiałeś się kiedyś **jak uruchomić OCR** na zeskanowanym dokumencie, nie tracąc godzin na kombinowanie z niejasnymi bibliotekami? Nie jesteś sam. W wielu projektach — czy to digitalizacja faktur, archiwizacja umów, czy wyciąganie danych z odręcznych formularzy — możliwość **wyodrębnienia tekstu z obrazu** jest codziennym problemem. + +Otóż Aspose OCR for Java sprawia, że cały proces jest prawie bezbolesny. W tym tutorialu przejdziemy przez każdy wiersz kodu potrzebny do **rozpoznania tekstu z formularza**, wyjaśnimy, dlaczego każdy krok ma znaczenie, i pokażemy, jak **odczytać obraz dla wyników OCR** wraz z ocenami pewności. Na koniec będziesz mieć gotową klasę Java, którą możesz wrzucić do dowolnego projektu Maven lub Gradle. + +## Czego się nauczysz + +- Skonfigurować silnik Aspose OCR i zastosować licencję. +- Wczytać plik JPEG, PNG lub TIFF do pamięci. +- Uruchomić OCR i iterować po każdej linii rozpoznanego tekstu. +- Wykrywać linie o niskiej pewności do ręcznej weryfikacji. +- Rozszerzyć przykład o wielostronicowe PDF‑y lub inne formaty obrazów. + +Nie wymagana jest wcześniejsza znajomość Aspose, wystarczy podstawowe środowisko Java (JDK 11+ i dowolne IDE). Zaczynajmy. + +![przykład uruchamiania OCR](/images/ocr-demo.png){alt="przykład uruchamiania OCR na zeskanowanym formularzu"} + +## Krok 1: Inicjalizacja silnika OCR – **jak uruchomić OCR** + +Pierwszą rzeczą, którą musisz zrobić przed jakąkolwiek operacją OCR, jest stworzenie instancji `OcrEngine` i podłączenie ważnej licencji. Bez licencji biblioteka działa w trybie demonstracyjnym, który ogranicza liczbę przetwarzanych stron. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Dlaczego to ważne:** +`OcrEngine` przechowuje całą konfigurację — język, tryb wykrywania i ustawienia wydajności. Ustawiając licencję od razu, unikniesz cichego przejścia do trybu próbnego, który w przeciwnym razie obetnie Twoje wyniki. + +## Krok 2: Wczytanie obrazu – **wyodrębnić tekst z obrazu** + +Następnie potrzebujemy obiektu `Image`, który wskazuje na plik, który chcesz zeskanować. Aspose obsługuje szeroką gamę formatów, więc możesz podać zeskanowaną stronę PDF już przekonwertowaną na PNG, surowy JPEG lub nawet wielostronicowy TIFF. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Dlaczego to ważne:** +Wczytanie obrazu jako obiektu `Image` daje silnikowi dostęp do danych pikseli, informacji o DPI i głębi kolorów — wszystko to wpływa na dokładność OCR. Jeśli pominiesz ten krok i przekażesz surową tablicę bajtów, stracisz te przydatne wskazówki. + +## Krok 3: Uruchomienie OCR – **rozpoznać tekst z formularza** + +Teraz najciekawsza część: faktyczne rozpoznawanie znaków. Metoda `recognize` zwraca obiekt `RecognitionResult`, który zawiera kolekcję obiektów `Line`, z których każdy ma własny wskaźnik pewności. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Dlaczego to ważne:** +Wywołanie `recognize` uruchamia łańcuch wewnętrznych procesów — wstępne przetwarzanie (prostowanie, usuwanie szumów), segmentację, klasyfikację znaków oraz post‑processing (sprawdzanie pisowni, model językowy). Obiekt wyniku ukrywa całą tę złożoność. + +## Krok 4: Przetworzenie wyników – **odczytać obraz dla wyników OCR** + +Gdy masz już `RecognitionResult`, możesz iterować po każdej linii, automatycznie decydować, co zachować, a co oznaczyć jako wątpliwe. Próg pewności 85 % jest dobrym punktem wyjścia dla większości drukowanych formularzy. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Oczekiwany wynik (przykład):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +W powyższym przykładzie silnik nie był pewny ostatniej cyfry kwoty całkowitej, więc wypisaliśmy ostrzeżenie. Możesz przekierować te linie do interfejsu użytkownika w celu ręcznej korekty lub zalogować je do późniejszej analizy. + +### Przypadki brzegowe i wskazówki + +- **Wiele stron:** Jeśli masz wielostronicowy PDF, iteruj po indeksach stron i wywołuj `Image.fromPdf(pdfPath, pageIndex)`. +- **Różne języki:** Ustaw `engine.getLanguage().setLanguage(Language.Spanish);` przed wywołaniem `recognize`. +- **Jakość obrazu:** Skanowanie o niskiej rozdzielczości (< 150 DPI) często daje pewność poniżej 80 %. Skalowanie przy pomocy `image.resize(300, 300)` może pomóc, ale najlepszym rozwiązaniem jest lepszy skan. +- **Wydajność:** Ponowne użycie tej samej instancji `OcrEngine` dla wielu obrazów zmniejsza narzut w porównaniu do tworzenia nowej przy każdym wywołaniu. + +## Najczęściej zadawane pytania + +**Czy mogę uruchomić to na serwerze bez interfejsu graficznego?** +Oczywiście. Biblioteka nie ma zależności GUI, więc działa bez problemu w kontenerach Docker czy w pipeline’ach CI. + +**Co jeśli nie mam jeszcze licencji?** +Możesz nadal wywołać `engine.recognize`, ale tryb demonstracyjny zatrzyma się po pierwszych 2 stronach i doda znak wodny do wyniku. Świetnie nadaje się do szybkich testów. + +**Czy istnieje sposób na wyodrębnienie danych strukturalnych (np. tabel)?** +Aspose OCR udostępnia klasę `TableRecognizer`, ale to wykracza poza zakres tego przewodnika dla początkujących. Po opanowaniu podstaw zajrzyj do oficjalnej dokumentacji `TableRecognizer`. + +## Podsumowanie – **jak uruchomić OCR** w pigułce + +Omówiliśmy wszystko, co potrzebne, aby **jak uruchomić OCR** na zeskanowanym formularzu: inicjalizacja silnika, wczytanie obrazu, wykonanie rozpoznania i inteligentne przetworzenie wyników. Kilkoma liniami Java możesz **wyodrębnić tekst z obrazu**, **rozpoznać tekst z formularza** i **odczytać obraz dla wyników OCR** z ocenami pewności, które pozwalają zdecydować, kiedy potrzebna jest weryfikacja ludzka. + +Co dalej? Spróbuj zamienić JPEG na wielostronicowy TIFF, eksperymentuj z różnymi progami pewności lub zintegrować wynik z bazą danych w celu automatycznego wprowadzania danych. Możliwości są tak szerokie, jak dokumenty, które musisz przetworzyć. + +Masz więcej pytań o OCR, wstępne przetwarzanie obrazu lub licencjonowanie? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/polish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..2298375a8 --- /dev/null +++ b/ocr/polish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-05-03 +description: Jak używać OCR do wyodrębniania tekstu z plików PDF w Javie. Dowiedz + się, jak rozpoznawać tekst z PDF, konwertować PDF na tekst oraz efektywnie obsługiwać + wielostronicowe PDF z OCR. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: pl +og_description: Jak używać OCR do wyodrębniania tekstu z plików PDF w Javie. Ten przewodnik + pokazuje, jak rozpoznawać tekst z PDF, konwertować PDF na tekst oraz przetwarzać + wielostronicowe PDF za pomocą OCR. +og_title: Jak używać OCR w Javie – wyodrębnić tekst z wielostronicowych plików PDF +tags: +- ocr +- java +- pdf +- aspose +title: Jak używać OCR w Javie – wyodrębnić tekst z wielostronicowych plików PDF +url: /pl/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak używać OCR w Javie – wyodrębnić tekst z wielostronicowych plików PDF + +**Jak używać OCR** w projekcie Java? Jeśli kiedykolwiek potrzebowałeś wyodrębnić tekst z plików PDF bez polegania na wewnętrznej warstwie tekstowej PDF, jesteś we właściwym miejscu. Ten samouczek przeprowadzi Cię przez kompletną, gotową do uruchomienia rozwiązanie, które **rozpoznaje tekst z PDF**, konwertuje PDF na tekst i nawet obsługuje **OCR multi page PDF** jednym wywołaniem. + +Wyobraź sobie, że otrzymujesz zeskanowaną umowę — 12‑stronicowy plik TIFF w PDF. Chcesz uzyskać tekst możliwy do przeszukiwania w celu indeksacji, ale plik nie zawiera wbudowanych znaków. Żaden problem; pokażemy Ci dokładnie, jak to zrobić, krok po kroku. + +> **Co otrzymasz:** gotowy do uruchomienia fragment kodu Java używający Aspose.OCR, wyjaśnienia, dlaczego każda linia ma znaczenie, wskazówki dotyczące typowych pułapek oraz przykładowy wynik, który możesz od razu zweryfikować. + +--- + +## Czego będziesz potrzebować + +* **Java 17** (lub dowolny nowszy JDK) – kod działa także ze starszymi wersjami, ale 17 jest optymalnym wyborem. +* **Aspose OCR for Java** library – możesz pobrać plik JAR ze strony Aspose lub dodać go przez Maven/Gradle. +* Plik **multi‑page PDF** (lub TIFF), który chcesz przetworzyć. W naszych przykładach użyjemy `contract_multipage.pdf` umieszczonego w folderze o nazwie `YOUR_DIRECTORY`. +* Ważny plik licencji **Aspose OCR** (`Aspose.OCR.Java.lic`). Bez niego biblioteka działa w trybie ewaluacyjnym, co jest w porządku dla szybkiego testu, ale doda znak wodny. + +To wszystko — bez dodatkowych silników OCR, bez natywnych binarek, tylko jeden plik JAR i licencja. + +![przykład użycia OCR](https://example.com/ocr-demo.png "Jak używać OCR w Javie – wizualny przegląd procesu") + +*Tekst alternatywny obrazu: jak używać OCR w Javie – wizualny przegląd ładowania, rozpoznawania i wyprowadzania tekstu.* + +## Krok 1: Konfiguracja silnika OCR – **Jak używać OCR** poprawnie + +Pierwszą rzeczą, którą musisz zrobić, jest utworzenie instancji silnika OCR i zastosowanie licencji. Bez licencji silnik nadal będzie działał, ale w wyniku zobaczysz znak wodny wersji próbnej. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Dlaczego to ważne:** +`OcrEngine` jest podstawowym obiektem, który koordynuje analizę obrazu, wykrywanie języka i wyodrębnianie tekstu. Ustawienie licencji na wczesnym etapie zapobiega przejściu silnika w tryb próbny później, co mogłoby wpłynąć na dokładność. + +## Krok 2: Załadowanie dokumentu – **Wyodrębnij tekst z PDF** efektywnie + +Aspose OCR może odczytywać bezpośrednio zarówno kontenery PDF, jak i TIFF. Tutaj ładujemy wielostronicowy PDF zawierający zeskanowane obrazy. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Dlaczego to ważne:** +`PdfDocument.fromFile` parsuje kontener i daje dostęp do każdej strony jako obrazu. Ta abstrakcja pozwala silnikowi OCR traktować każdą stronę jednolicie, niezależnie od pierwotnego formatu. + +**Wskazówka:** Jeśli Twój plik źródłowy jest TIFF, to samo wywołanie działa — Aspose automatycznie wykrywa format. Nie wymaga dodatkowego kodu. + +## Krok 3: Rozpoznaj wszystkie strony jednocześnie – **Rozpoznaj tekst z PDF** płynnie + +Zamiast samodzielnie iterować po stronach, możesz poprosić silnik o przetworzenie całego dokumentu jednym wywołaniem. To najwydajniejszy sposób na **konwersję PDF do tekstu**, gdy masz do czynienia z **OCR multi page PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Dlaczego to ważne:** +Wywołanie `recognizeDocument` raz zmniejsza narzut spowodowany wielokrotnym inicjowaniem silnika. Zapewnia także spójne ustawienia języka na wszystkich stronach, co jest kluczowe w dokumentach prawnych, które często mieszają czcionki. + +## Krok 4: Wyjście rozpoznanego tekstu – **Konwertuj PDF do tekstu** w celu indeksacji + +Teraz, gdy każda strona została przetworzona, po prostu iterujemy po wynikach i wypisujemy wyodrębnione ciągi znaków. Możesz także zapisać je do pliku, bazy danych lub przekazać do indeksu wyszukiwania. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Oczekiwany wynik (skrócony):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Jeśli PDF zawiera 12 stron, zobaczysz dwanaście sekcji `--- Page X ---`, z których każda zawiera wyodrębniony przez OCR tekst. + +## Zaawansowane wskazówki dla **OCR Multi Page PDF** + +### 1. Dostosowanie ustawień języka + +Domyślnie Aspose próbuje automatycznie wykrywać język, ale możesz przyspieszyć proces, określając go: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Kontrola wstępnego przetwarzania obrazu + +Zeskanowane umowy często zawierają szumy. Możesz włączyć prostowanie i binaryzację: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Obsługa dużych plików w sposób elegancki + +Jeśli przetwarzasz PDF-y większe niż 100 MB, rozważ strumieniowanie stron zamiast ładowania całego dokumentu jednorazowo: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Ten wzorzec zmniejsza obciążenie pamięci i jest przydatny w zadaniach wsadowych. + +### 4. Eksport do formatów strukturalnych + +Poza zwykłym tekstem możesz eksportować do JSON lub XML w celu dalszego przetwarzania: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## Typowe pułapki i jak ich unikać + +| Pułapka | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **Pusty wynik** | Licencja nie zastosowana lub nieprawidłowa ścieżka do pliku. | Sprawdź ścieżkę `setLicense` i potwierdź, że plik istnieje. | +| **Zniekształcone znaki** | Nieprawidłowe ustawienie języka lub źródło o niskiej rozdzielczości. | Ustaw prawidłowy `Language` i zapewnij, że obrazy źródłowe mają ≥300 dpi. | +| **Błędy braku pamięci** | Ładowanie ogromnego PDF-a jednocześnie. | Użyj podejścia strumieniowego pokazanego powyżej. | +| **Częściowe rozpoznanie stron** | PDF zawiera mieszane warstwy rastrowe/wektorowe. | Spłaszcz PDF najpierw: `pdfDoc.flatten();` przed OCR. | + +## Podsumowanie – co omówiliśmy + +* **Jak używać OCR** z Aspose w Javie. +* **Wyodrębnij tekst z PDF** (lub TIFF) w jednym wywołaniu. +* **Rozpoznaj tekst z PDF** na wszystkich stronach bez ręcznych pętli. +* **Konwertuj PDF do tekstu** i wyświetl go w czysty sposób. +* Wskazówki dotyczące obsługi **OCR multi page PDF**, w tym dostosowania języka i strumieniowanie przyjazne pamięci. + +Masz teraz kompletny, gotowy do produkcji fragment kodu, który możesz wstawić do dowolnego projektu Java. Śmiało dostosuj opcje przetwarzania obrazu, zmień miejsce docelowe wyjścia lub zintegrować wynik z indeksem wyszukiwania. + +## Kolejne kroki + +* **Zbadaj zaawansowane funkcje Aspose OCR** – takie jak rozpoznawanie odręcznego pisma lub zgodność z PDF/A. +* **Połącz OCR z manipulacją PDF** (np. dodaj ukrytą warstwę tekstową z powrotem do PDF, aby uzyskać przeszukiwalne PDF-y). +* **Zautomatyzuj przetwarzanie wsadowe** poprzez odczytanie folderu z PDF-ami i zapisanie każdego wyniku do odpowiadającego pliku `.txt`. + +Jeśli napotkasz jakiekolwiek problemy, fora Aspose są świetnym miejscem, aby poprosić o pomoc, a dokumentacja API zawiera wyczerpujące szczegóły na temat każdej użytej tutaj metody. + +Szczęśliwego kodowania i ciesz się przekształcaniem tych uciążliwych skanów w tekst możliwy do przeszukiwania! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/polish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..bec2be3dc --- /dev/null +++ b/ocr/polish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Odczytaj plik binarny w Javie, aby załadować licencję Aspose OCR. Poznaj + użycie FileInputStream, obsługę danych binarnych oraz praktyczne wskazówki w tym + przewodniku krok po kroku. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: pl +og_description: Odczytaj plik binarny w Javie, aby załadować licencję Aspose OCR. + Przejdź przez ten kompletny przewodnik, aby opanować FileInputStream i obsługę danych + binarnych w Javie. +og_title: Odczyt pliku binarnego w Javie – Ładowanie bajtów licencji dla Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Odczyt pliku binarnego w Javie – Wczytaj bajty licencji dla Aspose OCR +url: /pl/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Odczyt pliku binarnego w Javie – Załaduj bajty licencji dla Aspose OCR + +Czy kiedykolwiek potrzebowałeś **read binary file Java** przy pracy z licencją dla biblioteki zewnętrznej? Nie jesteś sam. Większość programistów Java napotyka ten problem, gdy próbują wczytać plik `.lic` do silnika OCR, a typowe triki dla plików tekstowych po prostu nie działają. + +W tym samouczku przeprowadzimy Cię przez kompletny, gotowy do uruchomienia przykład, który dokładnie pokazuje, jak otworzyć binarny plik licencji, pobrać jego bajty do pamięci i przekazać je do Aspose OCR for Java. Po drodze zobaczysz, dlaczego `FileInputStream` jest właściwym narzędziem, jak obsłużyć ewentualne `IOException`s oraz kilka profesjonalnych wskazówek, których możesz nie znaleźć w oficjalnej dokumentacji. + +Po zakończeniu przewodnika będziesz w stanie **read binary file Java** w stylu, utworzyć obiekt `License` i przypisać go do `OcrEngine` bez problemu. + +## Co obejmuje ten przewodnik + +- Wymagania wstępne: Java 17+, Maven (lub Gradle) oraz biblioteka Aspose OCR for Java. +- Krok po kroku kod, który odczytuje binarny plik `.lic` przy użyciu `FileInputStream`. +- Wyjaśnienie każdej linii, abyś zrozumiał *dlaczego* stojące za *jak*. +- Obsługa przypadków brzegowych (brak pliku, uszkodzone bajty) oraz praktyczne wskazówki debugowania. +- Końcowy, samodzielny fragment kodu, który możesz skopiować‑wkleić do swojego IDE i od razu uruchomić. + +Jeśli kiedykolwiek zastanawiałeś się, czy potrzebujesz specjalnego API do odczytu plików licencyjnych, odpowiedź brzmi zdecydowane **no** — po prostu tradycyjne binarne I/O. Zanurzmy się. + +## Krok 1: Odczyt pliku binarnego w Javie przy użyciu FileInputStream + +Pierwszą rzeczą, której potrzebujemy, jest niezawodny sposób na pobranie surowych bajtów z pliku licencji na dysku. W Javie `FileInputStream` jest narzędziem do tego właśnie. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Dlaczego to działa:** `Files.readAllBytes` wewnętrznie tworzy `FileInputStream`, odczytuje cały strumień i zamyka go za Ciebie. Jest bezpieczne, zwięzłe i unika klasycznego pułapki „zapomnienia zamknięcia strumienia”. Jeśli wolisz klasyczny wzorzec, możesz zastąpić to blokiem try‑with‑resources używającym `FileInputStream` bezpośrednio. + +### Wskazówka pro + +Jeśli plik licencji jest ogromny (mało prawdopodobne, ale możliwe), rozważ strumieniowanie go w fragmentach zamiast ładowania wszystkiego naraz. Dla większości plików licencji OCR — zazwyczaj poniżej kilku kilobajtów — podejście jednorazowe jest w pełni wystarczające. + +## Krok 2: Utwórz obiekt License dla Aspose OCR + +Teraz, gdy mamy surowe bajty, musimy przekształcić je w kompatybilny z Aspose obiekt `License`. Biblioteka udostępnia klasę `License`, która przyjmuje tablicę bajtów. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Dlaczego to ważne:** Przekazując bajty bezpośrednio, unikasz problemów związanych ze ścieżkami (np. nieporozumień z relatywną ścieżką do katalogu roboczego) i utrzymujesz swoją aplikację przenośną — po prostu dołącz plik `.lic` tam, gdzie uruchamiana jest Twoja aplikacja. + +## Krok 3: Przypisz licencję do silnika OCR + +Gdy obiekt `License` jest gotowy, ostatnim krokiem jest dołączenie go do `OcrEngine`. Ten krok zapewnia, że komponent OCR działa w trybie licencjonowanym, a nie w środowisku testowym. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Uwaga:** Niektóre starsze wersje Aspose udostępniają publiczne pole `license` zamiast metody ustawiającej. Dostosuj kod odpowiednio (`ocrEngine.license = license;`), jeśli napotkasz błąd kompilacji. + +## Krok 4: Zweryfikuj pomyślne załadowanie licencji (Opcjonalne, ale przydatne) + +Szybka kontrola poprawności oszczędza godziny debugowania później. Klasa `License` nie rzuca wyjątku przy sukcesie, ale możesz wykonać nieszkodliwą operację OCR, aby to potwierdzić. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Jeśli zobaczysz komunikat „License applied successfully”, wszystko jest gotowe. Jeśli nie, sprawdź ponownie ścieżkę pliku, integralność bajtów oraz czy używasz właściwej wersji Aspose. + +## Pełny działający przykład + +Połączenie wszystkich elementów daje kompaktowy program gotowy do skopiowania i wklejenia. Śmiało wstaw to do pliku `Main.java` i uruchom. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Oczekiwany wynik (zakładając, że przykładowy obraz istnieje):** + +``` +License applied successfully – OCR engine is ready. +``` + +Jeśli plik licencji jest brakujący lub uszkodzony, zobaczysz wyraźny komunikat o błędzie, taki jak: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Częste pułapki i jak ich unikać + +- **Zamieszanie ze ścieżkami:** Ścieżki względne są rozwiązywane względem katalogu roboczego JVM, a nie lokalizacji pliku źródłowego. Użyj ścieżki bezwzględnej lub umieść plik `.lic` obok JAR i odwołuj się do niego za pomocą `getResourceAsStream`. +- **Nieprawidłowy porządek bajtów:** Nigdy nie próbuj odczytywać pliku binarnego przy użyciu `Reader` (zorientowanego na znaki). To uszkodzi dane. Trzymaj się API opartych na `FileInputStream`. +- **Niezgodność wersji:** Niektóre starsze wydania Aspose oczekują `license.setLicense("path/to/file")` zamiast `setLicenseBytes`. Sprawdź notatki wydania biblioteki, jeśli napotkasz `NoSuchMethodError`. +- **Zapomniano zamknąć strumienie:** Jeśli wrócisz do klasycznego podejścia z `FileInputStream`, otocz go blokiem try‑with‑resources, aby zapewnić zamknięcie. + +## Zakończenie + +Teraz wiesz, jak **read binary file Java** załadować licencję Aspose OCR, utworzyć obiekt `License` i podłączyć go do `OcrEngine`. Proces opiera się na prawidłowym obsługiwaniu danych binarnych przy użyciu `FileInputStream` (lub nowocześniejszego `Files.readAllBytes`) oraz kilku prostych wywołań API. + +Od tego momentu możesz przejść do rzeczywistych zadań OCR — wyodrębniania tekstu z PDF‑ów, obrazów czy nawet zeskanowanych dokumentów — mając pewność, że warstwa licencyjna nie sprawi problemów. Jeśli jesteś ciekawy powiązanych tematów, sprawdź samouczki o **Java FileInputStream**, **binary data handling Java** oraz **read license file Java** dla innych bibliotek. + +Miłego kodowania i niech wyniki OCR będą krystalicznie czyste! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/polish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..d9ecd1b10 --- /dev/null +++ b/ocr/polish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-05-03 +description: Dowiedz się, jak rozpoznawać tekst z obrazu i konwertować obraz na tekst + przy użyciu Aspose OCR dla Javy. Zawiera wskazówki, jak poprawić dokładność OCR + i uruchamiać OCR na plikach PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: pl +og_description: Przewodnik krok po kroku, jak rozpoznawać tekst z obrazu przy użyciu + Aspose OCR dla Javy. Dowiedz się, jak konwertować obraz na tekst, poprawić dokładność + OCR i uruchomić OCR na PNG. +og_title: Rozpoznawanie tekstu z obrazu przy użyciu Aspose OCR – samouczek Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Rozpoznawanie tekstu z obrazu przy użyciu Aspose OCR – Kompletny przewodnik + Java +url: /pl/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# rozpoznawanie tekstu z obrazu przy użyciu Aspose OCR – Kompletny przewodnik Java + +Czy kiedykolwiek potrzebowałeś **rozpoznawać tekst z obrazu**, ale nie byłeś pewien, która biblioteka zapewni wiarygodne wyniki? Nie jesteś sam — wielu programistów napotyka tę barierę, gdy po raz pierwszy próbują wyodrębnić dane ze skanowanych PDF‑ów, paragonów lub raportów laboratoryjnych. Dobrą wiadomością jest to, że Aspose OCR dla Javy upraszcza cały proces, a nawet możesz **konwertować obraz na tekst** przy użyciu kilku linii kodu. + +W tym samouczku przeprowadzimy Cię przez wszystko, co musisz wiedzieć: od wczytywania obrazu do OCR, dostosowywania ustawień w celu **poprawy dokładności OCR**, po w końcu **uruchomienie OCR na plikach PNG** i wydrukowanie wyodrębnionego tekstu. Bez zbędnych wstępów, tylko praktyczny, gotowy do uruchomienia przykład, który możesz od razu dodać do swojego projektu. + +--- + +## Czego będziesz potrzebować + +| Wymaganie | Powód | +|--------------|--------| +| Java 17 (or newer) | Aspose OCR obsługuje Java 8+, ale najnowszy JDK zapewnia lepszą wydajność. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | Główny silnik, który wykonuje najcięższą pracę. | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | Umożliwia pełny zestaw funkcji; w przeciwnym razie otrzymasz znak wodny wersji próbnej. | +| An image file (PNG, JPEG, TIFF, etc.) containing clear text | Użyjemy `lab_report.png` jako konkretnego przykładu. | +| A custom dictionary (optional) | Poprawia rozpoznawanie terminów specyficznych dla domeny, takich jak „hemoglobin”. | + +Jeśli któreś z nich jest Ci nieznane, nie panikuj — instalacja pliku JAR i stworzenie prostego pliku tekstowego to proste zadania, które omówimy za chwilę. + +## Krok 1 – Konfiguracja projektu i import zależności + +Najpierw utwórz nowy projekt Maven (lub Gradle) i dodaj zależność Aspose OCR. Użytkownicy Maven mogą wkleić ten fragment do swojego `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Jeśli wolisz Gradle, odpowiednik wygląda tak: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Wskazówka:** Zwracaj uwagę na numer wersji; nowsze wydania często zawierają poprawki błędów, które bezpośrednio wpływają na **poprawę dokładności OCR**. + +Teraz utwórz klasę Java o nazwie `OcrDemo.java`. Na początku pliku zaimportuj wymagane klasy: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## Krok 2 – Inicjalizacja silnika OCR i zastosowanie licencji + +Nie możesz **uruchomić OCR na plikach PNG** bez najpierw poinformowania silnika, że jest licencjonowany. Oto jak to zrobić: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Dlaczego dodatkowy obiekt `License`? Aspose oddziela obsługę licencji od silnika, aby umożliwić dynamiczną zmianę licencji, co może być przydatne w scenariuszach SaaS wielodzierżawczych. + +## Krok 3 – Wczytanie własnego słownika (opcjonalne, ale potężne) + +Jeśli masz do czynienia z terminologią medyczną, wzorami chemicznymi lub nazwami marek, własny słownik może **poprawić dokładność OCR** dramatycznie. Słownik to zwykły plik tekstowy z jednym słowem w każdej linii: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Dlaczego to działa:** Silnik OCR używa słownika, aby ukierunkować swój model językowy na słowa, które są dla Ciebie istotne, zmniejszając błędne rozpoznania, takie jak „hemo­globin” → „hemoglobin”. + +Jeśli nie masz słownika, po prostu pomiń tę linię — Aspose nadal działa dobrze dzięki wbudowanym pakietom językowym. + +## Krok 4 – Wczytanie obrazu do przetworzenia + +Teraz naprawdę **wczytujemy obraz do OCR**. Aspose obsługuje wiele formatów, ale PNG jest szczególnie bezstratny, co czyni go bezpiecznym wyborem dla skanowanych dokumentów. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Przypadek brzegowy:** Jeśli Twój obraz jest bardzo duży (powyżej 5 MB), rozważ najpierw jego zmniejszenie, aby przyspieszyć przetwarzanie. Klasa `Image` udostępnia metodę `resize`, którą możesz wywołać przed rozpoznaniem. + +## Krok 5 – Uruchomienie procesu OCR i pobranie tekstu + +Po skonfigurowaniu wszystkiego, uruchom silnik OCR. Metoda `recognize` zwraca obiekt `OcrResult`, który zawiera wyodrębniony ciąg znaków, wyniki pewności oraz ewentualnie ramki ograniczające, jeśli potrzebujesz informacji o układzie. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Gdy uruchomisz program, powinieneś zobaczyć coś podobnego: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Gotowe — udało Ci się **rozpoznać tekst z obrazu** i **konwertować obraz na tekst** przy użyciu Aspose OCR. + +## Krok 6 – Typowe pułapki i jak je naprawić + +| Objaw | Prawdopodobna przyczyna | Rozwiązanie | +|---------|--------------|-----| +| Pusty wynik | Licencja nie została zastosowana lub wygasła | Sprawdź ścieżkę do `Aspose.OCR.Java.lic` i upewnij się, że odpowiada wersji. | +| Zniekształcone znaki | Obraz ma niską rozdzielczość lub jest mocno skompresowany | Użyj obrazu o wyższej rozdzielczości lub wstępnie przetwórz obraz (binarizacja, prostowanie). | +| Brak słów specyficznych dla domeny | Brak własnego słownika | Dodaj plik słownika z brakującymi terminami, po jednym wierszu. | +| Wolne przetwarzanie dużych partii | Brak wielowątkowości | Utwórz pulę instancji `OcrEngine` (są bezpieczne wątkowo) i przetwarzaj obrazy równolegle. | + +## Krok 7 – Rozszerzenie przykładu: zapisywanie wyników do pliku + +Jeśli potrzebujesz zachować wyodrębniony tekst do późniejszej analizy, po prostu zapisz go do pliku: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Teraz masz wielokrotnego użytku pipeline, który **wczytuje obraz do OCR**, wyodrębnia zawartość i zapisuje ją tam, gdzie chcesz. + +## Bonus: Uruchamianie OCR na wielu plikach PNG w folderze + +W rzeczywistych projektach często trzeba przetworzyć dziesiątki skanów. Oto szybka pętla, która pobiera każdy plik `.png` w katalogu: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Pamiętaj, aby ponownie używać tej samej instancji `ocrEngine` — tworzenie nowej dla każdego pliku wprowadza niepotrzebny narzut. + +## Zakończenie + +Masz teraz w pełni funkcjonalne, kompleksowe rozwiązanie, które **rozpoznaje tekst z obrazu** przy użyciu Aspose OCR dla Javy. Od wczytania obrazu, opcjonalnego wzbogacenia silnika własnym słownikiem w celu **poprawy dokładności OCR**, aż po **uruchomienie OCR na plikach PNG** i zapisywanie wyników, kod jest gotowy do wstawienia w dowolny projekt Java. + +Co dalej? Spróbuj przekazać wyodrębniony tekst do pipeline przetwarzania języka naturalnego lub poeksperymentuj z OCR na odręcznych notatkach (Aspose oferuje także tryb rozpoznawania pisma ręcznego). Możliwości są nieograniczone, a Ty właśnie odblokowałeś pierwszy krok. + +Miłego kodowania! Jeśli napotkasz jakiekolwiek problemy, zostaw komentarz poniżej — rozwiążmy je razem. + +![Zrzut ekranu wyniku OCR w konsoli – rozpoznawanie tekstu z obrazu](/images/ocr_console_result.png "przykład rozpoznawania tekstu z obrazu") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/portuguese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..f7d21a875 --- /dev/null +++ b/ocr/portuguese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Extraia tabelas de imagens usando Aspose OCR Java. Aprenda a carregar + a imagem para OCR, extrair a tabela de um PNG, converter o texto da tabela da imagem + e reconhecer rapidamente imagens de recibos. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: pt +og_description: Extrair tabelas de imagem com Aspose OCR Java. Este guia mostra como + carregar a imagem para OCR, extrair a tabela de um PNG, converter o texto da tabela + da imagem e reconhecer a imagem de um recibo. +og_title: Extrair tabelas de imagem – Tutorial de OCR Java da Aspose +tags: +- Aspose OCR +- Java +- Image Processing +title: Extrair tabelas de imagem – Guia completo de OCR Aspose Java +url: /pt/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrair tabelas de imagem – Guia Completo Aspose OCR Java + +Já precisou **extrair tabelas de imagem** de arquivos, mas encontrou obstáculos? Talvez você tenha um recibo escaneado ou uma fatura fotografada e os dados tabulares estejam enterrados em um PNG. Neste tutorial você verá exatamente como *carregar imagem para OCR*, transformar essa foto em linhas estruturadas e **converter texto de tabela de imagem** em algo que você possa usar em Java. + +Percorreremos cada passo, desde a licença do motor Aspose OCR até a impressão de cada célula das tabelas detectadas. Ao final, você será capaz de **reconhecer imagens de recibos** e extrair suas tabelas sem esforço. + +## O que você aprenderá + +- Como inicializar o motor Aspose OCR e aplicar sua licença. +- Por que habilitar a detecção de tabelas é a chave para **extrair tabelas de imagem**. +- O código exato necessário para **carregar imagem para OCR** e executar o reconhecimento em um PNG. +- Maneiras de lidar com múltiplas tabelas, digitalizações de baixa resolução e armadilhas comuns. +- Como **converter texto de tabela de imagem** em um formato imprimível (ou pronto para banco de dados). + +Nenhuma documentação externa necessária — tudo o que você precisa está aqui. + +## Pré-requisitos + +- Java 17 ou superior (o código usa o sistema de módulos moderno). +- Um arquivo de licença Aspose OCR for Java (`Aspose.OCR.Java.lic`). Se você está apenas experimentando, uma chave de avaliação temporária também funciona. +- Uma imagem PNG que contenha uma tabela clara (por exemplo, `receipt_with_table.png`). +- Maven ou Gradle para obter a dependência Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Dica profissional:** Mantenha o arquivo de licença ao lado da sua pasta `src/main/resources` para que o caminho permaneça estável em diferentes ambientes. + +--- + +## Etapa 1 – Inicializar o motor OCR para **extrair tabelas de imagem** + +Antes que o motor possa fazer qualquer coisa, ele precisa saber que você é um usuário legítimo. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Por que isso importa:* Sem uma licença válida, o motor OCR funciona em modo de avaliação, o que pode truncar resultados ou adicionar marcas d'água indesejadas — tornando a extração de tabelas pouco confiável. + +--- + +## Etapa 2 – Habilitar detecção de tabelas (**extrair tabela de png**) + +A detecção de tabelas não está ativada por padrão; você precisa mudar a configuração. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Habilitar essa flag indica ao Aspose OCR para tratar grupos de texto alinhado como linhas e colunas, que é exatamente o que você precisa quando deseja **extrair tabelas de imagem** de arquivos PNG. + +--- + +## Etapa 3 – **Carregar imagem para OCR** e **reconhecer imagem de recibo** + +Agora realmente alimentamos a imagem no motor. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Se você está lidando com um cenário de **reconhecer imagem de recibo**, pode ser útil pré‑processar a imagem (corrigir inclinação, aumentar contraste). Isso está fora do escopo deste guia rápido, mas vale a pena explorar para digitalizações ruidosas. + +--- + +## Etapa 4 – Processar resultado OCR e **converter texto de tabela de imagem** + +O objeto `OcrResult` pode conter uma ou mais tabelas. Vamos iterar sobre elas e imprimir cada célula. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**O que isso faz:** + +- Verifica se foram encontradas tabelas; caso contrário, sugere um ajuste de qualidade. +- Para cada tabela, imprime linhas com células separadas por tabulação, o que é um formato conveniente para importação CSV. +- A chamada `Cell::getText` é o coração de **converter texto de tabela de imagem** – ela extrai a string OCR bruta de cada célula. + +### Saída esperada + +Assumindo que `receipt_with_table.png` contenha uma tabela simples 3 × 2, você verá algo como: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Se a imagem tiver várias tabelas, cada uma será separada por uma linha em branco. + +--- + +## Etapa 5 – Verificar as tabelas extraídas e lidar com casos extremos + +### Armadilhas comuns + +| Problema | Por que acontece | Correção rápida | +|----------|------------------|-----------------| +| **Nenhuma tabela detectada** | Imagem muito borrada ou com baixo contraste | Aplicar binarização (`ImageProcessing.applyThreshold`) antes do OCR | +| **Células mescladas** | Linhas da tabela estão fracas, o OCR as trata como um único bloco | Aumentar `TableDetectionSensitivity` em `ocrEngine.getConfig()` | +| **Ordem de colunas incorreta** | Imagem inclinada causando desalinhamento | Usar `ImageProcessing.deskew` ou girar a imagem em 90° | + +### O que fazer a seguir + +- **Exportar para CSV** – substitua `System.out.println(line);` por um `FileWriter` para persistir os dados. +- **Alimentar em um banco de dados** – mapeie cada linha para um POJO e use JPA para persistência. +- **Combinar com outras APIs** – para processamento de recibos você também pode extrair totais usando expressões regulares no texto OCR. + +--- + +## Exemplo completo funcional (pronto para copiar e colar) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Execute este programa, aponte para um PNG que contenha uma tabela clara e observe o console se encher de linhas formatadas de forma organizada. + +--- + +## Conclusão + +Agora você tem uma solução sólida, de ponta a ponta, para **extrair tabelas de imagem** usando Aspose OCR para Java. Desde a licença até **carregar imagem para OCR**, habilitando **extrair tabela de png**, e finalmente **converter texto de tabela de imagem**, cada passo está coberto com explicações e dicas práticas. + +Em seguida, tente encadear a saída em um arquivo CSV, enviar as linhas para um banco de dados relacional ou combinar a etapa OCR com uma rotina de extração de total de recibo. O mesmo padrão funciona para faturas, listas de preços e qualquer documento escaneado que esconda dados atrás de uma grade. + +Tem perguntas sobre como lidar com recibos de baixa resolução ou escalar isso para processamento em lote? Deixe um comentário abaixo e feliz codificação! + +![Exemplo de extração de tabelas de imagem](https://example.com/assets/extract-tables-from-image.png "Extrair tabelas de imagem – saída de exemplo") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/portuguese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..5b7cb87d7 --- /dev/null +++ b/ocr/portuguese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Extrair texto de imagem em Python usando Aspose OCR. Aprenda um tutorial + passo a passo de OCR em Python com suporte misto a latim‑cirílico. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: pt +og_description: Extraia texto de imagem em Python rapidamente. Este guia mostra como + usar o Aspose OCR em Python para imagens mistas de latim‑cirílico. +og_title: Extrair Texto de Imagem em Python – Guia Completo do Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Extrair Texto de Imagem com Python – Guia Completo de OCR da Aspose +url: /pt/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrair Texto de Imagem com Python – Guia Completo de Aspose OCR + +Já precisou **extrair texto de imagem python** mas não tinha certeza de qual biblioteca poderia lidar com uma mistura de caracteres latinos e cirílicos? Você não está sozinho—desenvolvedores frequentemente se deparam com esse problema ao fazer OCR em capturas de tela multilíngues. + +A boa notícia é que o Aspose OCR para Python torna todo o processo quase indolor. Neste tutorial, vamos percorrer a instalação do pacote, a aplicação da sua licença, o carregamento de uma imagem com múltiplos idiomas e, finalmente, extrair o texto reconhecido em poucas linhas de código. Ao final, você terá um script pronto‑para‑executar que pode ser inserido em qualquer projeto. + +## O que você aprenderá + +- Como configurar **Aspose OCR Python** em um ambiente virtual. +- Por que indicar os idiomas (como Latim e Cirílico) acelera a detecção. +- O código exato necessário para **extrair texto de imagem python** com uma única chamada de função. +- Armadilhas comuns ao lidar com OCR de múltiplos idiomas e como evitá‑las. + +### Pré-requisitos + +- Python 3.8 ou mais recente instalado na sua máquina. +- Um arquivo de licença Aspose OCR (`Aspose.OCR.Java.lic`). O teste gratuito funciona para testes, mas um arquivo licenciado remove marcas d'água. +- Uma imagem PNG/JPEG que contém caracteres latinos e cirílicos (vamos chamá‑la de `mixed_latin_cyrillic.png`). + +Se você marcou essas caixas, está pronto para prosseguir—nenhum framework extra ou dependências pesadas são necessárias. + +--- + +## Etapa 1 – Extrair Texto de Imagem Python: Instalar Aspose OCR + +Primeiro passo: obtenha a biblioteca do PyPI e certifique‑se de que seu ambiente possa localizar o arquivo de licença. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Dica profissional:** Se encontrar um erro de permissão, adicione `--user` ao comando `pip install` ou execute o terminal como administrador. + +Agora que o pacote está no seu sistema, vamos importá‑lo e apontar o motor para nossa licença. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Por que precisamos de uma licença nesta fase? Sem ela, o motor funciona em **modo de avaliação**, que limita o número de páginas e adiciona uma marca d'água à saída. Fornecer a licença antecipadamente garante que a chamada `recognize` posterior retorne texto limpo. + +--- + +## Etapa 2 – Carregar sua Imagem com Conteúdo Misto Latim‑Cirílico + +Em seguida, carregamos a imagem na memória. O Aspose OCR trabalha com sua própria classe `Image`, que abstrai o formato de arquivo subjacente. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Se você está se perguntando se outros formatos funcionam—sim, JPEG, BMP, TIFF e até PDF são suportados. Basta trocar a extensão do arquivo que o método `from_file` cuidará do resto. + +--- + +## Etapa 3 – Sugerir Idiomas para Detecção Mais Rápida (Opcional, mas Útil) + +Quando você conhece os idiomas presentes na imagem, pode dar ao motor um aviso prévio. Isso não é obrigatório, mas **reduz significativamente o tempo de processamento** e melhora a precisão para OCR de múltiplos idiomas. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +A lista de sugestões aceita qualquer idioma suportado pelo Aspose OCR (por exemplo, `"Arabic"`, `"Japanese"`). Se você pular esta etapa, o motor tentará todos os idiomas incorporados, o que pode ser mais lento em lotes grandes. + +--- + +## Etapa 4 – Executar o Motor OCR e Extrair Texto + +Chegou o momento da verdade: reconhecer efetivamente os caracteres. O método `recognize` retorna um objeto `OcrResult` que contém o texto puro, pontuações de confiança e até caixas delimitadoras, caso você precise delas mais tarde. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Por que isso funciona:** Por trás dos panos, o Aspose OCR combina um detector de texto baseado em rede neural com classificadores específicos de idioma. Ao alimentá‑lo com um objeto `Image`, você elimina a necessidade de pré‑processamento manual, como binarização. + +--- + +## Etapa 5 – Visualizar o Texto Extraído + +Finalmente, vamos imprimir o resultado no console. Em uma aplicação real, você pode gravá‑lo em um arquivo, enviá‑lo para um banco de dados ou alimentá‑lo em uma API de tradução. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Ao executar o script, você deverá ver algo como: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Essa saída confirma que conseguimos **extrair texto de imagem python** com sucesso, lidando com caracteres latinos e cirílicos em uma única passagem. + +--- + +## Exemplo Completo em Funcionamento + +Abaixo está o script completo que você pode copiar‑e‑colar em um arquivo chamado `extract_ocr.py`. Basta substituir os caminhos de placeholder pelos seus diretórios reais. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Salve o arquivo, ative seu ambiente virtual e execute: + +```bash +python extract_ocr.py +``` + +Você deverá ver o texto reconhecido impresso, confirmando que o script funciona de ponta a ponta. + +--- + +## Perguntas Frequentes & Casos Limítrofes + +**E se a imagem estiver borrada?** +O Aspose OCR inclui correção de inclinação e redução de ruído integradas, mas para fotos muito degradadas você pode querer pré‑processar com OpenCV (por exemplo, aplicar um desfoque gaussiano e limiar). A classe `Image` também pode aceitar um array NumPy, permitindo encadear filtros personalizados antes de chamar `recognize`. + +**Posso processar uma pasta inteira de imagens?** +Com certeza. Envolva a lógica em um loop `for`, altere `from_file` para ler cada nome de arquivo e armazene os resultados em um dicionário. Lembre‑se de respeitar os limites de taxa da API se estiver usando a versão em nuvem. + +**Preciso de uma licença separada para cada idioma?** +Não, uma única licença Aspose OCR cobre todos os idiomas suportados. A lista `language_hints` é apenas uma sugestão de desempenho. + +**E quanto à entrada PDF?** +Substitua `Image.from_file` por `ocr.Image.from_file("document.pdf")`. O motor OCR rasterizará automaticamente cada página e retornará o texto concatenado. + +--- + +## Conclusão + +Acabamos de mostrar uma maneira concisa e pronta para produção de **extrair texto de imagem python** usando Aspose OCR. As etapas—instalar, licenciar, carregar, sugerir idiomas, reconhecer e exibir—cobrem tudo o que você precisa para obter resultados confiáveis para conteúdo misto latim‑cirílico. + +A partir daqui, você pode explorar tópicos avançados como **conversão de imagem para texto** para processamento em lote, integrar a saída com um **tutorial de OCR Python** sobre processamento de linguagem natural, ou experimentar outras sugestões de idioma para documentos multilíngues. O céu é o limite, e o código já está em suas mãos. + +Tem um caso de uso diferente ou encontrou algum problema? Deixe um comentário, compartilhe sua experiência e vamos continuar a conversa. Feliz codificação! + +![Exemplo de extração de texto de imagem python](/images/extract-text-from-image-python.png "Captura de tela mostrando a saída do OCR – extração de texto de imagem python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/portuguese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..1e1250580 --- /dev/null +++ b/ocr/portuguese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Extraia texto de imagem instantaneamente usando o Aspose OCR. Aprenda + a definir a região de interesse, carregar a imagem para OCR e extrair texto da fatura + em apenas minutos. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: pt +og_description: Extrair texto de imagem usando Aspose OCR. Este guia mostra como definir + a região de interesse, carregar a imagem para OCR e extrair texto da fatura de forma + eficiente. +og_title: Extrair texto de imagem com Aspose OCR – tutorial completo +tags: +- ocr +- python +- image-processing +title: Extrair texto de imagem com Aspose OCR – Guia passo a passo +url: /pt/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrair Texto de Imagem com Aspose OCR – Guia Passo a Passo + +Precisa **extrair texto de imagem** rapidamente? Você não está sozinho—desenvolvedores lidam constantemente com digitalizações ruidosas, recibos e faturas. Neste tutorial, percorreremos uma solução completa que não só mostra como *extrair texto de imagem*, mas também demonstra como **definir região de interesse**, **carregar imagem para OCR** e obter a linha exata que você precisa de uma fatura. + +Cobriremos tudo, desde a instalação da biblioteca Aspose OCR até o tratamento de casos extremos, como páginas rotacionadas. Ao final, você terá um script executável que extrai o texto desejado em uma única chamada—sem necessidade de recorte manual. + +## O que você aprenderá + +- Como **carregar imagem para OCR** usando a API Python da Aspose. +- A melhor forma de **definir região de interesse** (ROI) para que você processe apenas a parte da imagem que importa. +- Como **extrair texto de fatura** sem trazer a página inteira. +- Dicas para **processar imagem com OCR** de forma eficiente e evitar armadilhas comuns. + +**Pré-requisitos** – um ambiente Python 3.9+ recente, um arquivo de licença válido do Aspose OCR e uma imagem (por exemplo, um PNG de fatura). Nenhuma outra ferramenta externa é necessária. + +--- + +## Etapa 1 – Inicializar o Motor OCR (Configuração Primária) + +Antes de poder **processar imagem com OCR**, você precisa de uma instância do motor que contenha sua licença. Esta etapa é crucial porque um motor sem licença retornará apenas um conjunto limitado de resultados. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Por que isso importa*: O objeto `OcrEngine` é o coração da biblioteca; ele gerencia modelos de idioma, pré‑processamento de imagens e licenciamento. Definir a licença antecipadamente garante que você obtenha precisão total e sem marcas d'água. + +--- + +## Etapa 2 – Carregar Imagem para OCR + +Agora que o motor está pronto, precisamos **carregar imagem para OCR**. Aspose suporta vários formatos (PNG, JPEG, TIFF), mas usar `Image.from_file` garante que a imagem seja decodificada corretamente. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Dica profissional**: Mantenha seus arquivos de imagem abaixo de 5 MB para o processamento mais rápido. Arquivos maiores podem ser reduzidos com `image.resize(width, height)` antes do OCR. + +--- + +## Etapa 3 – Definir Região de Interesse (ROI) + +A maioria das faturas contém muito texto irrelevante—blocos de endereço, rodapés, etc. Ao **definir região de interesse** informamos ao motor para olhar apenas onde o valor ou a data está, o que melhora a velocidade e a precisão. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Como funciona*: A classe `Rectangle` recorta a imagem virtualmente; o motor OCR nunca vê pixels fora do retângulo, portanto o ruído fora da ROI é ignorado. + +--- + +## Etapa 4 – Reconhecer Texto Dentro da ROI + +Com o motor, a imagem e a ROI prontos, finalmente **extraímos texto de imagem**. O método `recognize` retorna um objeto `OcrResult` contendo a string detectada e as pontuações de confiança. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Saída esperada** (exemplo de linha total típica de fatura): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Se a ROI estiver posicionada corretamente, você verá apenas a linha que precisa—nada mais. + +--- + +## Etapa 5 – Exemplo Completo Funcional (Pronto para Copiar‑Colar) + +Abaixo está o script completo que une todas as etapas anteriores. Salve-o como `extract_invoice_roi.py` e execute `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Execute o script e você deverá ver a linha alvo impressa no console. Se receber uma string vazia, verifique novamente as coordenadas da ROI—às vezes alguns pixels a mais ou a menos excluem o texto completamente. + +--- + +## Etapa 6 – Variações Comuns & Casos de Borda + +### a) Diferentes layouts de fatura +Faturas de diferentes fornecedores frequentemente deslocam a caixa do valor total. Para **processar imagem com OCR** em vários layouts, considere: + +- **Múltiplas ROIs**: Execute o motor sequencialmente com vários retângulos e escolha o resultado com a maior confiança. +- **Detecção dinâmica de ROI**: Use uma biblioteca leve de processamento de imagem (por exemplo, OpenCV) para localizar primeiro o rótulo “Total”, então calcule a ROI relativa a ele. + +### b) Imagens rotacionadas ou inclinadas +Se a digitalização estiver inclinada, chame `image.rotate(angle)` antes do reconhecimento: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR também oferece auto‑deskew, mas a rotação manual lhe dá um controle mais preciso. + +### c) Caracteres não latinos +O modelo de idioma padrão é o inglês. Para **extrair texto de fatura** escrito em outro idioma, defina o idioma antes do reconhecimento: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) PDFs grandes +Ao lidar com PDFs de múltiplas páginas, extraia cada página como imagem primeiro (Aspose PDF → Image) e então aplique a mesma lógica de ROI por página. + +--- + +## Etapa 7 – Dicas de Performance & Dicas Profissionais + +- **Cache o motor**: Criar `OcrEngine` repetidamente em um loop diminui a performance. Instancie-o uma vez e reutilize. +- **Processamento em lote**: Se você tem dezenas de faturas, envolva a chamada OCR em um `ThreadPoolExecutor` para paralelizar o trabalho I/O‑bound. +- **Verificação de confiança**: `ocr_result.confidence` fornece um float entre 0 e 1. Rejeite resultados abaixo de 0,85 e recorra a uma ROI maior ou revisão manual. + +> **Atenção**: Definir a ROI muito pequena pode cortar caracteres, resultando em saída confusa. Sempre teste com algumas faturas de exemplo antes de escalar. + +--- + +## Conclusão + +Agora você tem um método sólido e pronto para produção para **extrair texto de imagem** usando Aspose OCR, completo com uma forma de **definir região de interesse**, **carregar imagem para OCR**, e extrair de forma confiável os campos de **texto de fatura**. Ao limitar o OCR a uma ROI estreita, você aumenta tanto a velocidade quanto a precisão—perfeito para processamento em lote de milhares de recibos. + +Pronto para o próximo passo? Tente integrar este script em uma API Flask para que seu aplicativo web possa enviar uma fatura e retornar instantaneamente o valor total. Ou experimente múltiplas ROIs para extrair a data, número da fatura e nome do fornecedor de uma só vez. As possibilidades são infinitas, e com os fundamentos abordados aqui, você está bem‑preparado para enfrentar qualquer desafio de OCR. + +Feliz codificação, e que seu texto extraído esteja sempre limpo! + +![Diagrama de fluxo mostrando como extrair texto de imagem usando Aspose OCR](workflow.png){: .center-image alt="Fluxo de trabalho para extrair texto de imagem usando Aspose OCR"} + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/portuguese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..fa0c38544 --- /dev/null +++ b/ocr/portuguese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Extrair texto de imagem usando OCR assíncrono em Python. Aprenda como + converter tif para texto, carregar a imagem para OCR e reconhecer o texto da imagem + de forma eficiente. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: pt +og_description: Extrair texto de imagem usando OCR assíncrono em Python. Este guia + mostra como converter tif em texto, carregar a imagem para OCR e reconhecer texto + da imagem. +og_title: Extrair Texto de Imagem com Python Async OCR – Guia Completo +tags: +- OCR +- Python +- AsyncIO +title: Extrair Texto de Imagem com Python Async OCR – Guia Completo +url: /pt/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrair Texto de Imagem com Python Async OCR – Guia Completo + +Precisa **extrair texto de imagem** rapidamente? Com o OCR assíncrono do Python você pode fazer isso em apenas algumas linhas de código. Seja lidando com um enorme escaneamento .tif ou com alguns JPEGs, este tutorial mostra como converter tif em texto, carregar a imagem para OCR e, finalmente, reconhecer texto da imagem sem bloquear seu event loop. + +A realidade é que a maioria dos desenvolvedores recorre a uma biblioteca síncrona e fica olhando para uma UI congelada enquanto o motor processa os pixels. Neste guia vamos mudar esse roteiro usando a API assíncrona do Aspose OCR Cloud, para que sua aplicação continue responsiva. Ao final você terá um script executável que extrai texto de qualquer formato de imagem suportado e entenderá o porquê de cada passo. + +## O Que Você Vai Aprender + +- Como configurar o Aspose OCR Cloud SDK para Python. +- O código exato necessário para **carregar imagem para OCR** e iniciar uma tarefa de reconhecimento assíncrona. +- Dicas para lidar com arquivos .tif grandes e peculiaridades de licenciamento. +- Formas de **extrair texto da imagem** com segurança, mesmo quando o serviço devolve erros. +- Um exemplo completo, pronto para copiar‑colar, que você pode inserir no seu próprio projeto. + +> **Pré‑requisito**: Python 3.8+ e um arquivo de licença do Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Nenhum outro pacote de terceiros é necessário. + +--- + +![extract text from image workflow](workflow.png){: .align-center alt="fluxo de extração de texto de imagem"} + +## Extrair Texto de Imagem – Visão Geral do Async OCR + +Antes de mergulharmos no código, vamos destrinchar o fluxo. Quando você chama `recognize_async` o SDK envia a imagem para a nuvem da Aspose, inicia um job em segundo plano e devolve um objeto `Task`. Aguardar essa tarefa retorna um `OcrResult` contendo a representação em texto puro da imagem. Como a chamada é assíncrona, você pode disparar múltiplas tarefas em paralelo — perfeito para processar em lote grandes arquivos de documentos escaneados. + +### Por Que Usar Async? + +- **I/O não‑bloqueante** – Seu event loop permanece livre para lidar com outras tarefas (ex.: servir requisições HTTP). +- **Escalabilidade** – Inicie dezenas de reconhecimentos simultaneamente; a nuvem faz o trabalho pesado. +- **Responsividade** – Aplicações UI não travam enquanto esperam o motor de OCR. + +Agora que o “porquê” está claro, vejamos o **como**. + +## Converter TIF em Texto Usando Aspose OCR + +Um obstáculo comum é supor que toda biblioteca de OCR suporte nativamente .tif. A Aspose suporta, mas ainda assim você precisa fornecer um objeto `Image`. O SDK abstrai o formato, permitindo apontar diretamente para o caminho do arquivo. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Explicação das linhas principais** + +- `ocr_engine.license = ...` – Sem uma licença válida a nuvem devolve erro 403. Certifique‑se de que o arquivo `.lic` esteja acessível a partir do diretório de trabalho do seu script. +- `ocr.Image.from_file(image_path)` – Esta etapa **carrega imagem para OCR**; o SDK detecta automaticamente o formato, então você não precisa converter o .tif antes. +- `recognize_async` – Retorna uma tarefa compatível com corrotinas. Você pode lançar várias dessas em uma chamada `gather` se estiver processando um lote. + +> **Dica de especialista**: Se estiver processando TIFFs de gigabytes, considere dividi‑los em páginas primeiro. O `Image.from_file` da Aspose aceita um índice de página, reduzindo a pressão de memória. + +## Reconhecer Texto de Imagem Assincronamente + +Vamos ver como chamar a função a partir de um script típico. O ponto de entrada `asyncio.run` é a maneira mais simples de disparar a corrotina quando você não está dentro de um event loop (ex.: uma ferramenta CLI simples). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**O que esperar** + +Executar o script contra um escaneamento claro e de alta resolução normalmente produz uma string multilinha que corresponde à página impressa. Se a imagem estiver ruidosa, a Aspose ainda tenta limpá‑la, mas você pode ver caracteres corrompidos. Nesse caso, considere pré‑processar com OpenCV (ex.: limiarização) antes de enviar o arquivo ao motor de OCR. + +### Tratando Erros de Forma Elegante + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Capturar `OcrException` garante que seu programa não trave quando a nuvem devolve um erro — algo que costuma surpreender iniciantes que esquecem das falhas de rede. + +## Carregar Imagem para OCR – Dicas Práticas + +1. **Caminho do Arquivo vs. Bytes** – O SDK aceita um caminho de arquivo, mas você também pode carregar a partir de um objeto `bytes` se a imagem já estiver em memória (`ocr.Image.from_bytes`). Isso é útil quando você já buscou o arquivo do S3 ou de um banco de dados. +2. **Formatos Suportados** – Além de .tif, a Aspose lida com PDF, BMP, GIF e até TIFFs multipáginas. Use `Image.from_file("doc.pdf")` para fazer OCR direto em PDFs. +3. **Desempenho** – Para jobs em lote, reutilize a mesma instância de `OcrEngine`; criar um novo engine para cada arquivo gera overhead desnecessário. + +## Exemplo Completo (Todas as Etapas em Um Só Script) + +A seguir está o script completo, pronto‑para‑executar, que incorpora licenciamento, tratamento de erros e um simples parser de argumentos de linha de comando. Copie‑e‑cole, ajuste o caminho da licença e pronto. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Saída esperada** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Se a imagem contiver um parágrafo simples, o console exibirá as mesmas linhas, preservando quebras de linha. Para TIFFs multipáginas, o SDK concatena as páginas na ordem correta. + +## Perguntas Frequentes (FAQ) + +**Q: Isso funciona com outros frameworks async como FastAPI?** +A: Absolutamente. Substitua a chamada `asyncio.run` por `await async_ocr(path)` dentro do seu endpoint, e o FastAPI cuidará do event loop para você. + +**Q: E se eu precisar processar centenas de arquivos de uma vez?** +A: Use `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Posso extrair texto de um PDF protegido por senha?** +A: Não diretamente. Você precisará desbloquear o PDF primeiro (ex.: com `pikepdf`) e então alimentar os bytes descriptografados para `ocr.Image.from_bytes`. + +**Q: Como lidar com idiomas diferentes do inglês?** +A: Defina o idioma antes do reconhecimento: + +```python +engine.language = "spa" # Spanish ISO code +``` + +A Aspose suporta mais de 60 idiomas; consulte a documentação para os identificadores exatos. + +## Conclusão + +Agora você tem uma solução robusta para **extrair texto de imagem** que aproveita `asyncio` do Python e a API assíncrona do Aspose OCR Cloud. Seguindo os passos acima você pode **converter tif em texto**, **carregar imagem para OCR** e **reconhecer texto de imagem** de forma não‑bloqueante — perfeito tanto para utilitários de linha de comando quanto para serviços web de alto tráfego. + +Qual o próximo passo? Experimente processar em lote uma pasta de escaneamentos, brinque com as configurações de idioma ou direcione a saída do OCR para um pipeline de NLP subsequente. O céu é o limite. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/portuguese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..4dfdc6043 --- /dev/null +++ b/ocr/portuguese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,184 @@ +--- +category: general +date: 2026-05-03 +description: Como fazer OCR de PDF usando Aspose OCR Java. Aprenda como executar OCR + em PDF, reconhecer texto em PDF, converter PDF para JSON e carregar PDF para OCR + em apenas algumas linhas de código. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: pt +og_description: How to OCR PDF using Aspose OCR Java. This guide shows how to run + OCR on PDF, recognize text PDF, convert PDF to JSON and load PDF for OCR quickly. +og_title: Como fazer OCR de PDF com Aspose OCR – Tutorial completo de programação +tags: +- Aspose OCR +- Java +- PDF processing +title: Como fazer OCR de PDF com Aspose OCR – Guia completo passo a passo +url: /pt/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como fazer OCR em PDF com Aspose OCR – Guia Completo Passo a Passo + +Já se perguntou **como fazer OCR em PDF** sem lutar com ferramentas de linha de comando ou pagar por SaaS caros? Você não está sozinho. Em muitos projetos—automação de faturas, arquivamento de contratos digitalizados ou construção de uma base de conhecimento pesquisável—você vai precisar extrair texto de PDFs de forma rápida e confiável. + +A boa notícia? Com Aspose OCR for Java você pode **run OCR on PDF**, reconhecer texto em páginas PDF, **convert PDF to JSON**, e até **load PDF for OCR** em poucas linhas. Neste tutorial vamos percorrer todo o fluxo de trabalho, explicar por que cada etapa importa e fornecer um exemplo de código pronto‑para‑executar que você pode inserir no seu próprio projeto. + +## O que você aprenderá + +- Como configurar o motor Aspose OCR e aplicar sua licença. +- A forma exata de **load PDF for OCR** e alimentá-lo ao reconhecedor. +- Como **recognize text PDF** em todas as páginas em uma única chamada. +- Exportar o resultado completo de OCR para um arquivo **JSON** (perfeito para APIs downstream) e uma única página para **XML**. +- Dicas, armadilhas e variações que você pode precisar ao lidar com PDFs de várias páginas ou pacotes de idioma personalizados. + +> **Pré-requisitos** – Você precisa do Java 8 ou superior, de um arquivo de licença válido do Aspose OCR for Java (`Aspose.OCR.Java.lic`) e do JAR do Aspose OCR no seu classpath. Nenhuma outra biblioteca externa é necessária. + +--- + +## Como fazer OCR em PDF – Inicializar o Motor Aspose OCR + +A primeira coisa que você deve fazer é criar uma instância de `OcrEngine` e anexar sua licença. Esta etapa desbloqueia o conjunto completo de recursos e remove a marca d'água de avaliação. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Por que isso importa:** +Sem uma licença, o Aspose OCR funciona em modo “trial” limitado que restringe o número de páginas e adiciona uma marca d'água à saída. Aplicar a licença antecipadamente garante que o restante do pipeline funcione sem restrições inesperadas. + +--- + +## Executar OCR em PDF – Carregar Documento e Reconhecer Texto + +Agora nós **load PDF for OCR**. O Aspose OCR trata PDFs como um tipo especial `PdfDocument`, que internamente extrai cada página como uma imagem antes de alimentá‑la ao reconhecedor. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**O que está acontecendo nos bastidores?** +`recognizeDocument` itera sobre cada página, rasteriza‑a na DPI ótima e então executa o motor OCR. O resultado é um array `OcrPage` onde cada elemento contém o texto detectado, pontuações de confiança e informações de layout. Essa abordagem é muito mais confiável do que alimentar bytes de PDF brutos em uma biblioteca OCR genérica. + +--- + +## Converter Resultado OCR para JSON – Exportar Relatório Completo + +A maioria dos sistemas downstream prefere JSON porque é fácil de desserializar em Java, JavaScript, Python ou até PowerShell. O Aspose OCR inclui um helper `JsonExport` que serializa todo o array `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Quando você usaria isso?** +Se você precisar alimentar a saída OCR em um índice de busca (Elasticsearch, Solr) ou em um pipeline de dados, o formato JSON fornece uma representação estruturada de cada página, linha e palavra, completa com valores de confiança. + +--- + +## Exportar Primeira Página para XML – Salvar Página Individual + +Às vezes você se importa apenas com uma única página—talvez a primeira contenha um título ou um número de fatura. A classe `XmlExport` permite gravar um único `OcrPage` em um arquivo XML organizado. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Por que XML?** +Sistemas legados ou certos fluxos de trabalho empresariais ainda dependem de esquemas XML para ingestão. O arquivo gerado segue o próprio esquema da Aspose, tornando a validação simples. + +--- + +## Verificar a Saída – Checar Arquivos JSON e XML + +Depois que o programa terminar, você deverá ver dois arquivos em `YOUR_DIRECTORY`: + +- `report_ocr.json` – Contém um array de objetos de página. Um trecho rápido pode ser parecido com: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Contém as mesmas informações da página 1, envolvidas em tags ``. + +Abra-os em qualquer editor; você verá as strings OCR brutas, pontuações de confiança e coordenadas de bounding‑box. Se o JSON parecer vazio, verifique novamente se o PDF de entrada realmente contém conteúdo rasterizado (imagens escaneadas) e não texto selecionável—Aspose OCR funciona apenas em imagens. + +--- + +## Armadilhas Comuns & Dicas Profissionais + +| Problema | Por que acontece | Correção | +|----------|------------------|----------| +| **JSON vazio** | PDF contém texto nativo, não imagens. | Use `PdfDocument.fromFile(..., true)` para forçar rasterização, ou pré‑converta as páginas em imagens. | +| **Baixa confiança** | PDF de origem tem baixa resolução ou está fortemente comprimido. | Aumente a DPI chamando `ocrEngine.getImageProcessingOptions().setDpi(300)` antes de `recognizeDocument`. | +| **Licença não encontrada** | Caminho errado ou arquivo ausente. | Use um caminho absoluto ou coloque o arquivo `.lic` no classpath e chame `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Falta de memória em PDFs enormes** | Todas as páginas são carregadas na memória de uma vez. | Processar páginas em lotes: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Estendendo o Exemplo + +- **Run OCR on PDF with a specific language** – defina `ocrEngine.getLanguage().setLanguage(Language.English)` ou carregue um pacote de idioma personalizado. +- **Export each page to separate JSON files** – itere sobre `ocrPages` e chame `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrate with a search engine** – alimente o JSON no processador `attachment` do Elasticsearch para busca full‑text. + +--- + +## Conclusão + +Agora você tem uma solução completa e pronta para produção de **how to OCR PDF** usando Aspose OCR for Java. Ao inicializar o motor, carregar o PDF, executar OCR e exportar tanto **JSON** quanto **XML**, você pode integrar OCR em qualquer fluxo de trabalho backend—seja precisando **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, ou simplesmente **load PDF for OCR**. + +Experimente, ajuste as configurações de DPI ou idioma, e veja seus PDFs antes opacos se tornarem ativos pesquisáveis. Precisa ir além? Tente indexar o JSON no Elasticsearch, ou pós‑processar o XML com XSLT para gerar relatórios personalizados. + +Feliz codificação, e que seus PDFs estejam sempre legíveis! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/portuguese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..c7e993c98 --- /dev/null +++ b/ocr/portuguese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'como executar OCR rapidamente: aprenda a extrair texto de imagens e + reconhecer texto de formulários usando Aspose OCR Java. Passos simples para ler + imagens para OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: pt +og_description: 'como executar OCR rapidamente: aprenda a extrair texto de imagens + e reconhecer texto de formulários usando Aspose OCR Java. Passos simples para ler + imagens para OCR.' +og_title: como executar OCR em um formulário – extrair texto da imagem +tags: +- ocr +- java +- image-processing +title: como executar OCR em um formulário – extrair texto de uma imagem +url: /pt/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# como executar ocr em um formulário – extrair texto de imagem + +Já se perguntou **como executar ocr** em um documento escaneado sem passar horas mexendo com bibliotecas obscuras? Você não está sozinho. Em muitos projetos—seja digitalizando faturas, arquivando contratos ou extraindo dados de formulários manuscritos—ser capaz de **extrair texto de imagem** é um ponto de dor diário. + +Veja só: Aspose OCR for Java torna todo o pipeline quase indolor. Neste tutorial, percorreremos cada linha de código que você precisa para **reconhecer texto de formulário** arquivos, explicaremos por que cada etapa importa e mostraremos como **ler imagem para ocr** resultados com pontuações de confiança. Ao final, você terá uma classe Java pronta‑para‑executar que pode inserir em qualquer projeto Maven ou Gradle. + +## O que você aprenderá + +- Configurar o motor Aspose OCR e aplicar sua licença. +- Carregar um JPEG, PNG ou TIFF na memória. +- Executar OCR e iterar sobre cada linha de texto reconhecido. +- Identificar linhas de baixa confiança para revisão manual. +- Expandir o exemplo para PDFs de várias páginas ou diferentes formatos de imagem. + +Nenhuma experiência prévia com Aspose é necessária, apenas um ambiente básico de desenvolvimento Java (JDK 11+ e qualquer IDE que você prefira). Vamos começar. + +![how to run ocr example](/images/ocr-demo.png){alt="exemplo de como executar ocr em um formulário escaneado"} + +## Etapa 1: Inicializar o motor OCR – **como executar ocr** + +A primeira coisa que você deve fazer antes de qualquer operação de OCR é criar uma instância `OcrEngine` e anexar uma licença válida. Sem uma licença, a biblioteca funciona em modo demo, o que limita o número de páginas que você pode processar. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Por que isso importa:** +O `OcrEngine` contém todas as configurações—idioma, modo de detecção e ajustes de desempenho. Ao definir a licença antecipadamente, você evita a mudança silenciosa para o modo de avaliação que, caso contrário, truncaria sua saída. + +## Etapa 2: Carregar a Imagem – **extrair texto de imagem** + +Em seguida, precisamos de um objeto `Image` que aponte para o arquivo que você deseja escanear. Aspose suporta uma ampla variedade de formatos, então você pode inserir uma página PDF escaneada que já converteu para PNG, um JPEG bruto ou até mesmo um TIFF de várias páginas. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Por que isso importa:** +Carregar a imagem como um objeto `Image` fornece ao motor acesso aos dados de pixel, informações de DPI e profundidade de cor—todos fatores que afetam a precisão do OCR. Se você pular esta etapa e passar um array de bytes bruto, perderá essas dicas úteis. + +## Etapa 3: Executar OCR – **reconhecer texto de formulário** + +Agora a parte divertida: realmente reconhecer os caracteres. O método `recognize` retorna um `RecognitionResult` que contém uma coleção de objetos `Line`, cada um com sua própria pontuação de confiança. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Por que isso importa:** +Chamar `recognize` desencadeia uma cascata de processos internos—pré‑processamento (correção de inclinação, remoção de ruído), segmentação, classificação de caracteres e pós‑processamento (correção ortográfica, modelo de linguagem). O objeto de resultado abstrai toda essa complexidade. + +## Etapa 4: Processar os Resultados – **ler imagem para ocr** saída + +Depois de obter o `RecognitionResult`, você pode iterar por cada linha, decidir o que manter automaticamente e sinalizar qualquer coisa que pareça instável. Um limiar de confiança de 85 % é um bom ponto de partida para a maioria dos formulários impressos. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Saída esperada (exemplo):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +No exemplo acima, o motor não tinha certeza sobre o último dígito do valor total, então imprimimos um aviso. Você poderia direcionar essas linhas para uma interface para correção manual ou registrá‑las para revisão posterior. + +### Casos Limite & Dicas + +- **Múltiplas páginas:** Se você tem um PDF de várias páginas, faça um loop sobre cada índice de página e chame `Image.fromPdf(pdfPath, pageIndex)`. +- **Idiomas diferentes:** Defina `engine.getLanguage().setLanguage(Language.Spanish);` antes de chamar `recognize`. +- **Qualidade da imagem:** Digitalizações de baixa resolução (< 150 DPI) frequentemente produzem confiança abaixo de 80 %. Redimensionar com `image.resize(300, 300)` pode ajudar, mas a melhor solução é uma digitalização melhor. +- **Desempenho:** Reutilizar a mesma instância `OcrEngine` para muitas imagens reduz a sobrecarga comparado a criar uma nova a cada vez. + +## Perguntas Frequentes + +**Posso executar isso em um servidor sem interface gráfica?** +Absolutamente. A biblioteca não tem dependências de GUI, então funciona bem dentro de contêineres Docker ou pipelines de CI. + +**E se eu ainda não tiver uma licença?** +Você ainda pode chamar `engine.recognize`, mas o modo demo parará após as primeiras 2 páginas e adicionará marca d'água à saída. É perfeito para testes rápidos. + +**Existe uma maneira de extrair dados estruturados (por exemplo, tabelas)?** +Aspose OCR fornece a classe `TableRecognizer`, mas isso está além do escopo deste guia para iniciantes. Depois de dominar o básico, consulte a documentação oficial para `TableRecognizer`. + +## Resumindo – **como executar ocr** em poucas palavras + +Cobrimos tudo o que você precisa para **como executar ocr** em um formulário escaneado: inicializar o motor, carregar a imagem, executar o reconhecimento e lidar com os resultados de forma inteligente. Com apenas algumas linhas de Java, você pode **extrair texto de imagem** de arquivos, **reconhecer texto de formulário** de documentos e **ler imagem para ocr** saída com pontuações de confiança que permitem decidir quando a revisão humana é necessária. + +Próximos passos? Experimente trocar o JPEG por um TIFF de várias páginas, experimente diferentes limiares de confiança ou integre a saída em um banco de dados para entrada de dados automatizada. As possibilidades são tão amplas quanto os documentos que você precisa processar. + +Têm mais perguntas sobre OCR, pré‑processamento de imagens ou licenciamento? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/portuguese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..a53f14b82 --- /dev/null +++ b/ocr/portuguese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,198 @@ +--- +category: general +date: 2026-05-03 +description: Como usar OCR para extrair texto de arquivos PDF em Java. Aprenda a reconhecer + texto de PDF, converter PDF em texto e lidar eficientemente com PDF de várias páginas + usando OCR. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: pt +og_description: Como usar OCR para extrair texto de arquivos PDF em Java. Este guia + mostra como reconhecer texto de PDF, converter PDF em texto e processar OCR em PDF + de várias páginas. +og_title: Como usar OCR em Java – Extrair texto de PDFs de várias páginas +tags: +- ocr +- java +- pdf +- aspose +title: Como usar OCR em Java – Extrair texto de PDFs de várias páginas +url: /pt/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Usar OCR em Java – Extrair Texto de PDFs de Múltiplas Páginas + +**Como usar OCR** em um projeto Java? Se você já precisou extrair texto de arquivos PDF sem depender da camada de texto interna do PDF, você está no lugar certo. Este tutorial guia você por uma solução completa e executável que **reconhece texto de PDF**, converte PDF para texto e ainda lida com um **PDF de várias páginas com OCR** em uma única chamada. + +> **O que você receberá:** um trecho de código Java pronto‑para‑executar usando Aspose.OCR, explicações sobre por que cada linha importa, dicas para armadilhas comuns e um exemplo de saída que você pode verificar instantaneamente. + +## O Que Você Precisa + +* **Java 17** (ou qualquer JDK recente) – o código funciona com versões mais antigas também, mas 17 é o ponto ideal. +* **Aspose OCR for Java** library – você pode baixar o JAR no site da Aspose ou adicioná-lo via Maven/Gradle. +* Um **PDF de várias páginas** (ou TIFF) que você deseja processar. Em nossos exemplos usaremos `contract_multipage.pdf` colocado em uma pasta chamada `YOUR_DIRECTORY`. +* Um arquivo de licença **Aspose OCR** válido (`Aspose.OCR.Java.lic`). Sem ele a biblioteca roda em modo de avaliação, o que serve para um teste rápido, mas adicionará uma marca d'água. + +É isso — sem motores OCR extras, sem binários nativos, apenas um único JAR e uma licença. + +![como usar OCR exemplo](https://example.com/ocr-demo.png "Como usar OCR em Java – visão geral visual do processo") + +*Image alt text: como usar OCR em Java – visão geral visual do carregamento, reconhecimento e saída de texto.* + +## Etapa 1: Configurar o Motor OCR – **Como Usar OCR** Corretamente + +A primeira coisa que você deve fazer é criar uma instância do motor OCR e aplicar sua licença. Sem a licença, o motor ainda funcionará, mas você verá uma marca d'água de avaliação na saída. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Por que isso importa:** +O `OcrEngine` é o objeto central que orquestra a análise de imagens, detecção de idioma e extração de texto. Definir a licença cedo impede que o motor volte ao modo de avaliação mais tarde, o que poderia afetar a precisão. + +## Etapa 2: Carregar o Documento – **Extrair Texto de PDF** Efetivamente + +Aspose OCR pode ler contêineres PDF e TIFF diretamente. Aqui carregamos um PDF de várias páginas que contém imagens escaneadas. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Por que isso importa:** +`PdfDocument.fromFile` analisa o contêiner e fornece acesso a cada página como uma imagem. Essa abstração permite que o motor OCR trate cada página de forma uniforme, independentemente do formato original. + +**Dica:** Se seu arquivo de origem for um TIFF, a mesma chamada funciona — o Aspose detecta automaticamente o formato. Nenhum código extra necessário. + +## Etapa 3: Reconhecer Todas as Páginas de Uma Vez – **Reconhecer Texto de PDF** Sem Emendas + +Em vez de percorrer as páginas manualmente, você pode solicitar ao motor que processe todo o documento em uma única chamada. Esta é a maneira mais eficiente de **converter PDF para texto** ao lidar com um **PDF de várias páginas com OCR**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Por que isso importa:** +Chamar `recognizeDocument` uma única vez reduz a sobrecarga causada por inicializações repetidas do motor. Também garante configurações de idioma consistentes entre as páginas, o que é crucial para documentos legais que frequentemente misturam fontes. + +## Etapa 4: Exportar o Texto Reconhecido – **Converter PDF para Texto** para Indexação + +Agora que cada página foi processada, simplesmente iteramos sobre os resultados e imprimimos as strings extraídas. Você também pode gravá‑las em um arquivo, em um banco de dados ou alimentá‑las em um índice de busca. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Saída esperada (truncada):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Se o PDF contiver 12 páginas, você verá doze seções `--- Page X ---`, cada uma seguida pelo texto extraído pelo OCR. + +## Dicas Avançadas para um **PDF de Múltiplas Páginas com OCR** + +### 1. Ajustar Configurações de Idioma + +Por padrão, o Aspose tenta detectar automaticamente o idioma, mas você pode acelerar o processo especificando‑o: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Controlar Pré‑Processamento de Imagem + +Contratos escaneados frequentemente têm ruído. Você pode habilitar correção de inclinação (deskewing) e binarização: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Lidar com Arquivos Grandes de Forma Elegante + +Se você estiver processando PDFs maiores que 100 MB, considere transmitir as páginas em vez de carregar todo o documento de uma vez: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Esse padrão reduz a pressão de memória e é útil para trabalhos em lote. + +### 4. Exportar para Formatos Estruturados + +Além de texto simples, você pode exportar para JSON ou XML para processamento posterior: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## Armadilhas Comuns & Como Evitá‑las + +| Armadilha | Por Que Acontece | Correção | +|-----------|------------------|----------| +| **Saída em branco** | Licença não aplicada ou caminho do arquivo errado. | Verifique o caminho de `setLicense` e confirme que o arquivo existe. | +| **Caracteres estranhos** | Configuração de idioma incorreta ou fonte de baixa resolução. | Defina o `Language` correto e assegure que as imagens de origem sejam ≥300 dpi. | +| **Erros de falta de memória** | Carregando um PDF enorme de uma só vez. | Use a abordagem de streaming mostrada acima. | +| **Reconhecimento parcial de página** | PDF contém camadas raster/vetor misturadas. | Achate o PDF primeiro: `pdfDoc.flatten();` antes do OCR. | + +## Recapitulação – O Que Cobrimos + +* **Como usar OCR** com Aspose em Java. +* **Extrair texto de PDF** (ou TIFF) em uma única chamada. +* **Reconhecer texto de PDF** em todas as páginas sem loops manuais. +* **Converter PDF para texto** e exportá‑lo de forma limpa. +* Dicas para lidar com um **PDF de várias páginas com OCR**, incluindo ajustes de idioma e streaming que economiza memória. + +Agora você tem um trecho completo, pronto para produção, que pode inserir em qualquer projeto Java. Sinta‑se à vontade para ajustar as opções de processamento de imagem, trocar o destino da saída ou integrar o resultado em um índice de busca. + +## Próximos Passos + +* **Explore os recursos avançados do Aspose OCR** – como reconhecimento de escrita à mão ou conformidade PDF/A. +* **Combine OCR com manipulação de PDF** (por exemplo, adicione uma camada de texto oculto de volta ao PDF para PDFs pesquisáveis). +* **Automatize o processamento em lote** lendo uma pasta de PDFs e gravando cada resultado em um arquivo `.txt` correspondente. + +Se você encontrar algum problema, os fóruns da Aspose são um ótimo lugar para pedir ajuda, e a referência da API fornece detalhes exaustivos sobre cada método usado aqui. + +Feliz codificação, e aproveite transformar essas digitalizações teimosas em texto 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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/portuguese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..683514aa2 --- /dev/null +++ b/ocr/portuguese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Leia arquivo binário Java para carregar uma licença Aspose OCR. Aprenda + o uso do FileInputStream, o tratamento de dados binários e dicas práticas neste + guia passo a passo. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: pt +og_description: Leia um arquivo binário em Java para carregar uma licença Aspose OCR. + Siga este guia completo para dominar FileInputStream e o tratamento de dados binários + em Java. +og_title: Ler Arquivo Binário Java – Carregar Bytes de Licença para Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Ler Arquivo Binário em Java – Carregar Bytes da Licença para Aspose OCR +url: /pt/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ler Arquivo Binário Java – Carregar Bytes de Licença para Aspose OCR + +Já precisou de **read binary file Java** ao lidar com uma licença de uma biblioteca de terceiros? Você não está sozinho. A maioria dos desenvolvedores Java encontra esse obstáculo ao tentar alimentar um arquivo `.lic` em um motor OCR, e os truques habituais de arquivos de texto simplesmente não funcionam. + +Neste tutorial, percorreremos um exemplo completo e executável que mostra exatamente como abrir um arquivo de licença binário, extrair seus bytes para a memória e passar esses bytes para o Aspose OCR for Java. Ao longo do caminho, você verá por que `FileInputStream` é a ferramenta certa, como lidar com possíveis `IOException`s e algumas dicas avançadas que talvez não estejam na documentação oficial. + +Ao final do guia, você será capaz de **read binary file Java** no estilo, criar um objeto `License` e atribuí‑lo a um `OcrEngine` sem esforço. + +## O que este guia cobre + +- Pré-requisitos: Java 17+, Maven (ou Gradle) e a biblioteca Aspose OCR for Java. +- Código passo a passo que lê um arquivo binário `.lic` usando `FileInputStream`. +- Explicação de cada linha para que você entenda o *porquê* por trás do *como*. +- Tratamento de casos extremos (arquivo ausente, bytes corrompidos) e dicas práticas de depuração. +- Um trecho final, autônomo, que você pode copiar‑colar no seu IDE e executar imediatamente. + +Se você já se perguntou se precisa de uma API especial para ler arquivos de licença, a resposta é um sonoro **não** — apenas o bom e velho I/O binário. Vamos mergulhar. + +## Etapa 1: Ler Arquivo Binário Java com FileInputStream + +A primeira coisa que precisamos é uma forma confiável de extrair bytes brutos do arquivo de licença no disco. Em Java, `FileInputStream` é a ferramenta principal para isso. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Por que isso funciona:** `Files.readAllBytes` cria internamente um `FileInputStream`, lê todo o fluxo e o fecha para você. É seguro, conciso e evita a armadilha clássica de “esquecer de fechar o stream”. Se preferir o padrão clássico, pode substituí‑lo por um bloco try‑with‑resources usando `FileInputStream` diretamente. + +### Dica profissional + +Se o arquivo de licença for enorme (improvável, mas possível), considere transmiti‑lo em blocos em vez de carregá‑lo tudo de uma vez. Para a maioria dos arquivos de licença OCR — geralmente com menos de alguns kilobytes — a abordagem de carregamento único funciona perfeitamente. + +## Etapa 2: Criar Objeto License para Aspose OCR + +Agora que temos os bytes brutos, precisamos transformá‑los em uma instância `License` compatível com Aspose. A biblioteca fornece a classe `License` que aceita um array de bytes. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Por que isso importa:** Ao passar os bytes diretamente, você evita quaisquer problemas relacionados a caminhos (como confusão de caminho relativo ao diretório de trabalho) e mantém sua implantação portátil — basta incluir o arquivo `.lic` onde quer que sua aplicação seja executada. + +## Etapa 3: Atribuir Licença ao OCR Engine + +Com o objeto `License` pronto, a etapa final é anexá‑lo a um `OcrEngine`. Essa etapa garante que o componente OCR seja executado em modo licenciado, em vez do sandbox de avaliação. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Nota:** Algumas versões mais antigas do Aspose expõem um campo público `license` em vez de um setter. Ajuste o código conforme necessário (`ocrEngine.license = license;`) se encontrar um erro de compilação. + +## Etapa 4: Verificar se a Licença foi Carregada com Sucesso (Opcional, mas Útil) + +Uma verificação rápida de sanidade economiza horas de depuração depois. A classe `License` não lança exceção em caso de sucesso, mas você pode tentar uma operação OCR inofensiva para confirmar. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Se você vir a mensagem “License applied successfully”, está tudo pronto. Caso contrário, verifique novamente o caminho do arquivo, a integridade dos bytes e se está usando a versão correta do Aspose. + +## Exemplo Completo Funcional + +Juntando todas as peças, obtém‑se um programa compacto, pronto para copiar‑colar. Sinta‑se à vontade para colocar isso em um arquivo `Main.java` e executá‑lo. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Saída esperada (supondo que a imagem fictícia exista):** + +``` +License applied successfully – OCR engine is ready. +``` + +Se o arquivo de licença estiver ausente ou corrompido, você verá uma mensagem de erro clara como: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Armadilhas Comuns & Como Evitá‑las + +- **Confusão de caminho:** Caminhos relativos são resolvidos em relação ao diretório de trabalho da JVM, não à localização do arquivo fonte. Use um caminho absoluto ou coloque o arquivo `.lic` ao lado do JAR e faça referência a ele com `getResourceAsStream`. +- **Ordem de bytes incorreta:** Nunca tente ler um arquivo binário com um `Reader` (orientado a caracteres). Isso corromperá os dados. Mantenha‑se nas APIs baseadas em `FileInputStream`. +- **Incompatibilidade de versão:** Algumas versões mais antigas do Aspose esperam `license.setLicense("path/to/file")` em vez de `setLicenseBytes`. Verifique as notas de versão da biblioteca se encontrar um `NoSuchMethodError`. +- **Esquecer de fechar streams:** Se você voltar ao método clássico `FileInputStream`, envolva‑o em um bloco try‑with‑resources para garantir o fechamento. + +## Conclusão + +Você agora sabe como **read binary file Java** para carregar uma licença Aspose OCR, criar um objeto `License` e conectá‑lo a um `OcrEngine`. O processo depende do manuseio adequado de dados binários com `FileInputStream` (ou o mais moderno `Files.readAllBytes`) e algumas chamadas de API simples. + +A partir daqui, você pode avançar para tarefas reais de OCR — extrair texto de PDFs, imagens ou até documentos escaneados — confiante de que a camada de licenciamento não lhe causará problemas. Se estiver curioso sobre tópicos relacionados, confira tutoriais sobre **Java FileInputStream**, **binary data handling Java** e **read license file Java** para outras bibliotecas. + +Feliz codificação, e que os resultados do seu OCR sejam cristalinos! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/portuguese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/portuguese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..cd13163d3 --- /dev/null +++ b/ocr/portuguese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Aprenda a reconhecer texto a partir de imagens e converter imagens em + texto usando o Aspose OCR para Java. Inclui dicas para melhorar a precisão do OCR + e executar OCR em arquivos PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: pt +og_description: Guia passo a passo para reconhecer texto a partir de imagem usando + Aspose OCR para Java. Aprenda a converter imagem em texto, melhorar a precisão do + OCR e executar OCR em PNG. +og_title: reconhecer texto de imagem com Aspose OCR – Tutorial Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Reconhecer texto de imagem com Aspose OCR – Guia Completo de Java +url: /pt/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconhecer texto de imagem com Aspose OCR – Guia Completo em Java + +Já precisou **reconhecer texto de imagem** mas não sabia qual biblioteca ofereceria resultados confiáveis? Você não está sozinho—muitos desenvolvedores encontram essa barreira ao tentar extrair dados de PDFs escaneados, recibos ou relatórios de laboratório. A boa notícia é que o Aspose OCR para Java torna todo o processo muito simples, e você pode até **converter imagem em texto** com apenas algumas linhas. + +Neste tutorial vamos percorrer tudo o que você precisa saber: desde carregar uma imagem para OCR, ajustar configurações para **melhorar a precisão do OCR**, até finalmente **executar OCR em arquivos PNG** e imprimir o texto extraído. Sem enrolação, apenas um exemplo prático e executável que você pode inserir no seu projeto hoje. + +--- + +## O que você precisará + +Antes de mergulharmos, certifique‑se de que tem o seguinte na sua máquina: + +| Pré‑requisito | Motivo | +|--------------|--------| +| Java 17 (ou superior) | O Aspose OCR tem como alvo Java 8+, mas o JDK mais recente oferece melhor desempenho. | +| Biblioteca Aspose OCR para Java (`aspose-ocr.jar`) | O motor principal que faz o trabalho pesado. | +| Arquivo de licença válido do Aspose OCR (`Aspose.OCR.Java.lic`) | Habilita o conjunto completo de recursos; caso contrário, você receberá uma marca d'água de avaliação. | +| Um arquivo de imagem (PNG, JPEG, TIFF, etc.) contendo texto legível | Usaremos `lab_report.png` como exemplo concreto. | +| Dicionário personalizado (opcional) | Melhora o reconhecimento para termos específicos de domínio, como “hemoglobin”. | + +Se algum desses itens lhe for desconhecido, não entre em pânico—instalar um JAR e criar um simples arquivo de texto são tarefas triviais que abordaremos a seguir. + +--- + +## Etapa 1 – Configurar o Projeto e Importar Dependências + +Primeiro, crie um novo projeto Maven (ou Gradle) e adicione a dependência do Aspose OCR. Usuários Maven podem colar este trecho no `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Se preferir Gradle, o equivalente é: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Dica profissional:** Fique de olho no número da versão; lançamentos mais recentes costumam conter correções de bugs que afetam diretamente **melhorar a precisão do OCR**. + +Agora, crie uma classe Java chamada `OcrDemo.java`. No topo do arquivo, importe as classes necessárias: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Etapa 2 – Inicializar o Motor OCR e Aplicar sua Licença + +Você não pode **executar OCR em PNG** sem antes informar ao motor que ele está licenciado. Veja como fazer isso: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Por que o objeto `License` extra? O Aspose separa o gerenciamento de licença do motor para permitir a troca de licenças em tempo real, o que pode ser útil em cenários SaaS multi‑tenant. + +--- + +## Etapa 3 – Carregar um Dicionário Personalizado (Opcional, mas Poderoso) + +Se você lida com terminologia médica, fórmulas químicas ou nomes de marcas, um dicionário personalizado pode **melhorar a precisão do OCR** drasticamente. O dicionário é um arquivo de texto simples com uma palavra por linha: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Por que funciona:** O motor OCR usa o dicionário para direcionar seu modelo de linguagem às palavras que importam, reduzindo erros como “hemo‑globin” → “hemoglobin”. + +Se você não tem um dicionário, basta pular esta linha—o Aspose ainda funciona bem com seus pacotes de idioma integrados. + +--- + +## Etapa 4 – Carregar a Imagem que Você Deseja Processar + +Agora realmente **carregamos a imagem para OCR**. O Aspose suporta muitos formatos, mas PNG é especialmente sem perdas, tornando‑a uma escolha segura para documentos escaneados. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Caso extremo:** Se sua imagem for muito grande (mais de 5 MB), considere redimensioná‑la primeiro para acelerar o processamento. A classe `Image` fornece um método `resize` que pode ser chamado antes do reconhecimento. + +--- + +## Etapa 5 – Executar o Processo OCR e Recuperar o Texto + +Com tudo configurado, dispare o motor OCR. O método `recognize` retorna um objeto `OcrResult` que contém a string extraída, pontuações de confiança e até caixas delimitadoras caso você precise de informações de layout. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Ao executar o programa, você deverá ver algo como: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +É isso—você reconheceu com sucesso **texto de imagem** e **converteu imagem em texto** usando o Aspose OCR. + +--- + +## Etapa 6 – Armadilhas Comuns e Como Corrigi‑las + +Mesmo com uma biblioteca robusta, alguns contratempos podem surgir: + +| Sintoma | Causa Provável | Solução | +|---------|----------------|---------| +| Saída em branco | Licença não aplicada ou expirada | Verifique o caminho para `Aspose.OCR.Java.lic` e assegure‑se de que corresponde à versão. | +| Caracteres estranhos | Imagem de baixa resolução ou muito comprimida | Use uma fonte de maior resolução ou pré‑procese a imagem (binarização, correção de inclinação). | +| Palavras específicas do domínio ausentes | Nenhum dicionário personalizado | Adicione um arquivo de dicionário com os termos faltantes, um por linha. | +| Processamento lento em lotes grandes | Falta de multithreading | Crie um pool de instâncias `OcrEngine` (são thread‑safe) e processe as imagens em paralelo. | + +--- + +## Etapa 7 – Extendendo o Exemplo: Salvando Resultados em um Arquivo + +Se precisar guardar o texto extraído para análise posterior, basta escrevê‑lo em um arquivo: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Agora você tem um pipeline reutilizável que **carrega imagem para OCR**, extrai o conteúdo e o armazena onde desejar. + +--- + +## Bônus: Executando OCR em Vários Arquivos PNG em uma Pasta + +Projetos reais costumam precisar processar dezenas de digitalizações. Aqui está um loop rápido que captura cada `.png` em um diretório: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Lembre‑se de reutilizar a mesma instância `ocrEngine`—criar uma nova para cada arquivo gera sobrecarga desnecessária. + +--- + +## Conclusão + +Você agora possui uma solução completa, de ponta a ponta, que **reconhece texto de imagem** usando o Aspose OCR para Java. Desde o carregamento da imagem, enriquecendo opcionalmente o motor com um dicionário personalizado para **melhorar a precisão do OCR**, até **executar OCR em PNG** e salvar a saída, o código está pronto para ser inserido em qualquer projeto Java. + +Qual o próximo passo? Experimente alimentar o texto extraído em um pipeline de processamento de linguagem natural, ou teste OCR em notas manuscritas (o Aspose também oferece modo de escrita à mão). As possibilidades são infinitas, e você acabou de desbloquear o primeiro passo. + +Boa codificação! Se encontrou algum obstáculo, sinta‑se à vontade para deixar um comentário abaixo—vamos solucionar juntos. + +![Captura de tela do resultado OCR no console – reconhecer texto de imagem](/images/ocr_console_result.png "exemplo de reconhecer texto de imagem") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/russian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..50b0fefa9 --- /dev/null +++ b/ocr/russian/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Извлечение таблиц из изображения с помощью Aspose OCR Java. Узнайте, + как загрузить изображение для OCR, извлечь таблицу из PNG, преобразовать текст таблицы + изображения и быстро распознать чек. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: ru +og_description: Извлечение таблиц из изображения с помощью Aspose OCR Java. Это руководство + показывает, как загрузить изображение для OCR, извлечь таблицу из PNG, преобразовать + текст таблицы изображения и распознать изображение чека. +og_title: Извлечение таблиц из изображения – учебник Aspose OCR Java +tags: +- Aspose OCR +- Java +- Image Processing +title: Извлечение таблиц из изображения – Полное руководство Aspose OCR для Java +url: /ru/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Извлечение таблиц из изображения – Полное руководство Aspose OCR для Java + +Когда‑нибудь вам нужно было **extract tables from image** файлы, но вы сталкивались с проблемами? Возможно, у вас есть отсканированный чек или сфотографированный счёт, и табличные данные спрятаны в PNG. В этом руководстве вы увидите, как *load image for OCR*, превратить изображение в структурированные строки и **convert image table text** в то, с чем можно работать в Java. + +Мы пройдем каждый шаг, от лицензирования движка Aspose OCR до вывода каждой ячейки обнаруженных таблиц. К концу вы сможете **recognize receipt image** файлы и извлекать их таблицы без усилий. + +## Что вы узнаете + +- Как инициализировать движок Aspose OCR и применить вашу лицензию. +- Почему включение обнаружения таблиц — ключ к **extract tables from image**. +- Точный код, необходимый для **load image for OCR** и запуска распознавания PNG. +- Способы обработки нескольких таблиц, сканов низкого разрешения и типичных подводных камней. +- Как **convert image table text** в печатный (или готовый к базе данных) формат. + +Никакой внешней документации не требуется — всё, что нужно, находится здесь. + +## Требования + +- Java 17 или новее (код использует современную модульную систему). +- Файл лицензии Aspose OCR for Java (`Aspose.OCR.Java.lic`). Если вы просто экспериментируете, подойдёт временный ключ оценки. +- PNG‑изображение, содержащее чёткую таблицу (например, `receipt_with_table.png`). +- Maven или Gradle для получения зависимости Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Держите файл лицензии рядом с папкой `src/main/resources`, чтобы путь оставался стабильным в разных окружениях. + +--- + +## Шаг 1 – Инициализировать OCR‑движок для **extract tables from image** + +Прежде чем движок сможет что‑либо сделать, он должен знать, что вы легальный пользователь. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Why this matters:* Без действующей лицензии OCR‑движок работает в режиме пробной версии, что может обрезать результаты или добавлять нежелательные водяные знаки — делая извлечение таблиц ненадёжным. + +--- + +## Шаг 2 – Включить обнаружение таблиц (**extract table from png**) + +Обнаружение таблиц по умолчанию отключено; нужно включить переключатель. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Включение этого флага сообщает Aspose OCR рассматривать группы выровненного текста как строки и столбцы, что именно то, что нужно, когда вы хотите **extract tables from image** файлы в формате PNG. + +--- + +## Шаг 3 – **Load image for OCR** и **recognize receipt image** + +Теперь мы действительно передаём изображение в движок. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Если вы работаете со сценарием **recognize receipt image**, возможно, потребуется предварительная обработка изображения (выравнивание, увеличение контрастности). Это выходит за рамки данного краткого руководства, но стоит изучить для шумных сканов. + +--- + +## Шаг 4 – Обработать результат OCR и **convert image table text** + +Объект `OcrResult` может содержать одну или несколько таблиц. Давайте пройдемся по ним и выведем каждую ячейку. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**What this does:** + +- Проверяет, найдены ли какие‑либо таблицы; если нет, предлагает улучшить качество. +- Для каждой таблицы выводит строки с ячейками, разделёнными табуляцией, что удобно для импорта в CSV. +- Вызов `Cell::getText` — сердце **convert image table text**: он извлекает необработанную строку OCR из каждой ячейки. + +### Ожидаемый вывод + +Предположим, `receipt_with_table.png` содержит простую таблицу 3 × 2, вы увидите примерно следующее: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Если изображение содержит несколько таблиц, каждая будет разделена пустой строкой. + +--- + +## Шаг 5 – Проверить извлечённые таблицы и обработать граничные случаи + +### Распространённые подводные камни + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **No tables detected** | Image too blurry or low contrast | Apply binarization (`ImageProcessing.applyThreshold`) before OCR | +| **Merged cells** | Table lines are faint, OCR treats them as one block | Increase `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Incorrect column order** | Skewed image causing mis‑alignment | Use `ImageProcessing.deskew` or rotate the image by 90° | + +### Что делать дальше + +- **Export to CSV** – замените `System.out.println(line);` на `FileWriter`, чтобы сохранять данные. +- **Feed into a database** – сопоставьте каждую строку с POJO и используйте JPA для сохранения. +- **Combine with other APIs** – для обработки чеков вы также можете извлекать суммы с помощью регулярных выражений из текста OCR. + +--- + +## Полный рабочий пример (готов к копированию) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Запустите эту программу, укажите PNG с чёткой таблицей и наблюдайте, как консоль заполняется аккуратно отформатированными строками. + +--- + +## Заключение + +Теперь у вас есть надёжное сквозное решение для **extract tables from image** файлов с использованием Aspose OCR для Java. От лицензирования до **load image for OCR**, включения **extract table from png** и, наконец, **convert image table text** — каждый шаг покрыт объяснениями и практическими советами. + +Далее попробуйте перенаправить вывод в CSV‑файл, загрузить строки в реляционную базу данных или объединить шаг OCR с процедурой извлечения общей суммы из чека. Та же схема работает для счетов‑фактур, прайс‑листов и любых отсканированных документов, где данные скрыты за сеткой. + +Есть вопросы о работе с низкокачественными чеками или масштабировании процесса для пакетной обработки? Оставляйте комментарий ниже, и удачной разработки! + +![Extract tables from image example](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/russian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..1a3816bff --- /dev/null +++ b/ocr/russian/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-05-03 +description: Извлечение текста из изображения на Python с использованием Aspose OCR. + Изучите пошаговый учебник по OCR на Python с поддержкой смешанного латинского и + кириллического текста. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: ru +og_description: Быстро извлекать текст из изображения с помощью Python. Это руководство + показывает, как использовать Aspose OCR в Python для изображений со смешанными латинскими + и кириллическими символами. +og_title: Извлечение текста из изображения на Python – Полное руководство по Aspose + OCR +tags: +- OCR +- Python +- Aspose +title: Извлечение текста из изображения на Python – Полное руководство по Aspose OCR +url: /ru/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Извлечение текста из изображения Python – Полное руководство по Aspose OCR + +Когда‑то вам нужно было **извлечь текст из изображения python**, но вы не знали, какая библиотека справится с миксом латинских и кириллических символов? Вы не одиноки — разработчики постоянно сталкиваются с этой проблемой при OCR‑обработке многоязычных скриншотов. + +Хорошая новость в том, что Aspose OCR для Python делает весь процесс почти безболезненным. В этом руководстве мы пройдём установку пакета, применение лицензии, загрузку изображения со смешанным языком и, наконец, извлечение распознанного текста в несколько строк кода. К концу вы получите готовый к запуску скрипт, который можно вставить в любой проект. + +## Что вы узнаете + +- Как настроить **Aspose OCR Python** в виртуальном окружении. +- Почему указание языков (например, латинского и кириллического) ускоряет обнаружение. +- Точный код, необходимый для **извлечения текста из изображения python** одним вызовом функции. +- Распространённые подводные камни при работе с многоязычным OCR и как их избежать. + +### Предварительные требования + +- Python 3.8 или новее, установленный на вашем компьютере. +- Файл лицензии Aspose OCR (`Aspose.OCR.Java.lic`). Бесплатная пробная версия подходит для тестов, но лицензия убирает водяные знаки. +- PNG/JPEG‑изображение, содержащее как латинские, так и кириллические символы (назовём его `mixed_latin_cyrillic.png`). + +Если все пункты отмечены, можно начинать — никаких дополнительных фреймворков или тяжёлых зависимостей не требуется. + +--- + +## Шаг 1 – Извлечение текста из изображения Python: установка Aspose OCR + +Первым делом: получаем библиотеку из PyPI и убеждаемся, что окружение может найти файл лицензии. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Совет:** Если возникла ошибка доступа, добавьте `--user` к команде `pip install` или запустите терминал от имени администратора. + +Теперь, когда пакет установлен, импортируем его и указываем движку наш файл лицензии. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Зачем нужна лицензия на этом этапе? Без неё движок работает в **режиме оценки**, что ограничивает количество страниц и добавляет водяной знак к результату. Предоставив лицензию заранее, вы гарантируете, что последующий вызов `recognize` вернёт чистый текст. + +--- + +## Шаг 2 – Загрузка изображения со смешанным латинско‑кириллическим содержимым + +Далее загружаем картинку в память. Aspose OCR работает со своим классом `Image`, который абстрагирует формат файла. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Интересуетесь, работают ли другие форматы? Да, поддерживаются JPEG, BMP, TIFF и даже PDF. Просто замените расширение файла, и метод `from_file` справится с остальным. + +--- + +## Шаг 3 – Указание языков для ускорения распознавания (необязательно, но полезно) + +Если вы знаете, какие языки присутствуют на изображении, можете дать движку подсказку. Это не обязательно, но **значительно сокращает время обработки** и повышает точность при многоязычном OCR. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +Список подсказок принимает любой язык, поддерживаемый Aspose OCR (например, `"Arabic"`, `"Japanese"`). Если пропустить этот шаг, движок будет пробовать каждый встроенный язык, что может замедлить работу при больших партиях. + +--- + +## Шаг 4 – Запуск OCR‑движка и извлечение текста + +Настал момент истины: распознаём символы. Метод `recognize` возвращает объект `OcrResult`, содержащий простой текст, оценки уверенности и даже ограничивающие рамки, если они понадобятся позже. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Почему это работает:** Под капотом Aspose OCR сочетает нейронный детектор текста с языковыми классификаторами. Передавая ему объект `Image`, вы обходите необходимость в ручной предобработке, такой как бинаризация. + +--- + +## Шаг 5 – Просмотр извлечённого текста + +Наконец, выведем результат в консоль. В реальном приложении вы можете записать его в файл, отправить в базу данных или передать в API перевода. + +```python +print("Recognised text:") +print(extracted_text) +``` + +При запуске скрипта вы должны увидеть что‑то вроде: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Этот вывод подтверждает, что мы успешно **извлекли текст из изображения python**, обработав одновременно латинские и кириллические символы в одном проходе. + +--- + +## Полный рабочий пример + +Ниже представлен полный скрипт, который можно скопировать в файл `extract_ocr.py`. Просто замените заполнители реальными путями к вашим файлам. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Сохраните файл, активируйте виртуальное окружение и запустите: + +```bash +python extract_ocr.py +``` + +Вы увидите распознанный текст в консоли, что подтверждает корректную работу скрипта от начала до конца. + +--- + +## Часто задаваемые вопросы и особые случаи + +**Что делать, если изображение размыто?** +Aspose OCR включает встроенные функции выпрямления и снижения шума, но для сильно повреждённых фото может потребоваться предобработка с помощью OpenCV (например, применение гауссового размытия и пороговой фильтрации). Класс `Image` также принимает массив NumPy, так что вы можете цепочкой применять собственные фильтры перед вызовом `recognize`. + +**Можно ли обработать целую папку изображений?** +Конечно. Оберните логику в цикл `for`, замените `from_file` на чтение каждого имени файла и сохраняйте результаты в словарь. Не забудьте учитывать ограничения скорости API, если используете облачную версию. + +**Нужна ли отдельная лицензия для каждого языка?** +Нет, одна лицензия Aspose OCR покрывает все поддерживаемые языки. Список `language_hints` — лишь подсказка для повышения производительности. + +**А как работать с PDF?** +Замените `Image.from_file` на `ocr.Image.from_file("document.pdf")`. OCR‑движок автоматически растеризует каждую страницу и вернёт объединённый текст. + +--- + +## Заключение + +Мы продемонстрировали лаконичный, готовый к продакшену способ **извлечения текста из изображения python** с помощью Aspose OCR. Шаги — установка, лицензия, загрузка, указание языков, распознавание и вывод — охватывают всё, что нужно для надёжных результатов при работе с латинско‑кириллическим контентом. + +Отсюда вы можете исследовать продвинутые темы, такие как **преобразование изображения в текст** для пакетной обработки, интегрировать вывод в **учебник по OCR на Python** для задач обработки естественного языка или экспериментировать с другими подсказками языков для многоязычных документов. Возможности безграничны, а код уже у вас в руках. + +Есть другой сценарий использования или возникли проблемы? Оставьте комментарий, поделитесь опытом, и давайте поддерживать разговор. Счастливого кодинга! + +![Извлечение текста из изображения python пример](/images/extract-text-from-image-python.png "Скриншот, показывающий вывод OCR – извлечение текста из изображения python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/russian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..0ff593b6c --- /dev/null +++ b/ocr/russian/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Извлекайте текст из изображения мгновенно с помощью Aspose OCR. Узнайте, + как определить область интереса, загрузить изображение для OCR и извлечь текст из + счета всего за несколько минут. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: ru +og_description: Извлекать текст из изображения с помощью Aspose OCR. Это руководство + показывает, как определить область интереса, загрузить изображение для OCR и эффективно + извлечь текст из счета‑фактуры. +og_title: Извлечение текста из изображения с помощью Aspose OCR – Полное руководство +tags: +- ocr +- python +- image-processing +title: Извлечение текста из изображения с помощью Aspose OCR – пошаговое руководство +url: /ru/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Извлечение текста из изображения с помощью Aspose OCR – пошаговое руководство + +Нужно быстро **извлечь текст из изображения**? Вы не одиноки — разработчики постоянно сталкиваются с шумными сканами, чеками и счетами. В этом руководстве мы пройдем полный процесс, который не только показывает, как *извлечь текст из изображения*, но и демонстрирует, как **определить область интереса**, **загрузить изображение для OCR** и получить точную строку из счета. + +Мы охватим всё: от установки библиотеки Aspose OCR до обработки особых случаев, таких как повернутые страницы. К концу вы получите готовый к запуску скрипт, который извлекает нужный текст одним вызовом — без ручного кадрирования. + +## Что вы узнаете + +- Как **загрузить изображение для OCR** с помощью Python‑API Aspose. +- Лучший способ **определить область интереса** (ROI), чтобы обрабатывать только нужную часть изображения. +- Как **извлечь текст из счета** без обработки всей страницы. +- Советы по **обработке изображения с OCR** эффективно и избежанию распространённых ошибок. + +**Prerequisites** – современная среда Python 3.9+, действующий файл лицензии Aspose OCR и изображение (например, PNG‑счёт). Другие внешние инструменты не требуются. + +--- + +## Шаг 1 – Инициализация OCR‑движка (основная настройка) + +Прежде чем вы сможете **обрабатывать изображение с OCR**, вам нужен экземпляр движка, содержащий вашу лицензию. Этот шаг критичен, потому что нелицензированный движок возвращает лишь ограниченный набор результатов. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Why this matters*: Объект `OcrEngine` — сердце библиотеки; он управляет языковыми моделями, предобработкой изображений и лицензированием. Установка лицензии заранее гарантирует полную точность и отсутствие водяных знаков. + +--- + +## Шаг 2 – Загрузить изображение для OCR + +Теперь, когда движок готов, нам нужно **загрузить изображение для OCR**. Aspose поддерживает множество форматов (PNG, JPEG, TIFF), но использование `Image.from_file` гарантирует корректную декодировку изображения. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: Храните файлы изображений размером до 5 МБ для максимальной скорости обработки. Большие файлы можно уменьшить с помощью `image.resize(width, height)` перед OCR. + +--- + +## Шаг 3 – Определить область интереса (ROI) + +Большинство счетов содержат много нерелевантного текста — блоки адресов, нижние колонтитулы и т.д. При **определении области интереса** мы указываем движку смотреть только туда, где находится сумма или дата, что повышает скорость и точность. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*How it works*: Класс `Rectangle` виртуально обрезает изображение; OCR‑движок никогда не видит пикселей за пределами прямоугольника, поэтому шум вне ROI игнорируется. + +--- + +## Шаг 4 – Распознать текст внутри ROI + +С готовыми движком, изображением и ROI мы наконец **извлекаем текст из изображения**. Метод `recognize` возвращает объект `OcrResult`, содержащий найденную строку и оценки уверенности. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Expected output** (пример типичной строки с общей суммой в счёте): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Если ROI расположен правильно, вы увидите только нужную строку — ничего больше. + +--- + +## Шаг 5 – Полный рабочий пример (готов к копированию) + +Ниже представлен полный скрипт, объединяющий все предыдущие шаги. Сохраните его как `extract_invoice_roi.py` и запустите `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Запустите скрипт, и в консоли должна появиться целевая строка. Если вы получаете пустую строку, дважды проверьте координаты ROI — иногда смещение на несколько пикселей полностью исключает текст. + +--- + +## Шаг 6 – Общие варианты и граничные случаи + +### a) Разные макеты счетов +Счета от разных поставщиков часто размещают поле общей суммы в разных местах. Чтобы **обрабатывать изображение с OCR** для разных макетов, рассмотрите: + +- **Multiple ROIs**: Запускайте движок последовательно с несколькими прямоугольниками и выбирайте результат с наивысшей уверенностью. +- **Dynamic ROI detection**: Используйте лёгкую библиотеку обработки изображений (например, OpenCV) для поиска метки «Total», а затем вычисляйте ROI относительно неё. + +### b) Повернутые или искривлённые изображения +Если скан наклонён, вызовите `image.rotate(angle)` перед распознаванием: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR также предлагает автоматическое выравнивание, но ручное вращение даёт более точный контроль. + +### c) Не‑латинские символы +Модель языка по умолчанию — английский. Чтобы **извлечь текст из счета**, написанного на другом языке, задайте язык перед распознаванием: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Большие PDF‑файлы +При работе с многостраничными PDF сначала извлеките каждую страницу как изображение (Aspose PDF → Image), а затем применяйте ту же логику ROI к каждой странице. + +--- + +## Шаг 7 – Советы по производительности и профессиональные рекомендации + +- **Cache the engine**: Создание `OcrEngine` в каждом цикле замедляет работу. Инстанцируйте его один раз и переиспользуйте. +- **Batch processing**: Если у вас десятки счетов, оберните вызов OCR в `ThreadPoolExecutor` для параллельной обработки ввода‑вывода. +- **Confidence check**: `ocr_result.confidence` возвращает число от 0 до 1. Отклоняйте результаты ниже 0.85 и переключайтесь на больший ROI или ручную проверку. + +> **Watch out**: Слишком маленький ROI может обрезать символы, приводя к искажённому выводу. Всегда тестируйте на нескольких примерах счетов перед масштабированием. + +--- + +## Заключение + +Теперь у вас есть надёжный, готовый к продакшену метод **извлечения текста из изображения** с помощью Aspose OCR, включающий способ **определить область интереса**, **загрузить изображение для OCR** и надёжно **извлечь текст из счета**. Ограничивая OCR узкой ROI, вы повышаете и скорость, и точность — идеально для пакетной обработки тысяч чеков. + +Готовы к следующему шагу? Попробуйте интегрировать этот скрипт в Flask‑API, чтобы ваше веб‑приложение могло загружать счёт и мгновенно возвращать общую сумму. Или поэкспериментируйте с несколькими ROI, чтобы за один проход получить дату, номер счета и название поставщика. Возможностей бесконечно много, а с фундаментальными знаниями, изложенными здесь, вы полностью подготовлены к любой задаче OCR. + +Happy coding, and may your extracted text always be clean! + +![Диаграмма рабочего процесса, показывающая, как извлечь текст из изображения с помощью Aspose OCR](workflow.png){: .center-image alt="Рабочий процесс извлечения текста из изображения с помощью Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/russian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..92fdd140a --- /dev/null +++ b/ocr/russian/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,257 @@ +--- +category: general +date: 2026-05-03 +description: Извлеките текст из изображения с помощью асинхронного OCR на Python. + Узнайте, как преобразовать TIFF в текст, загрузить изображение для OCR и эффективно + распознавать текст на изображении. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: ru +og_description: Извлеките текст из изображения с помощью асинхронного OCR на Python. + Это руководство показывает, как конвертировать tif в текст, загрузить изображение + для OCR и распознать текст на изображении. +og_title: Извлечение текста из изображения с помощью асинхронного OCR на Python – + полное руководство +tags: +- OCR +- Python +- AsyncIO +title: Извлечение текста из изображения с помощью асинхронного OCR на Python – Полное + руководство +url: /ru/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Извлечение текста из изображения с помощью Python Async OCR – Полное руководство + +Нужно **извлечь текст из изображения** быстро? С асинхронным OCR на Python это можно сделать всего в несколько строк кода. Будь то огромный .tif‑скан или несколько JPEG‑файлов, в этом руководстве показано, как конвертировать tif в текст, загрузить изображение для OCR и, наконец, распознать текст из изображения без блокировки вашего event loop. + +Суть в том, что большинство разработчиков берут синхронную библиотеку, а затем смотрят на замёрзший UI, пока движок обрабатывает пиксели. В этом руководстве мы поменяем сценарий, используя асинхронный API Aspose OCR Cloud, чтобы ваше приложение оставалось отзывчивым. К концу вы получите готовый к запуску скрипт, который извлекает текст из любого поддерживаемого формата изображения, и поймёте, почему каждый шаг нужен. + +## Что вы узнаете + +- Как настроить Aspose OCR Cloud SDK для Python. +- Точный код, необходимый для **загрузки изображения для OCR** и запуска асинхронной задачи распознавания. +- Советы по работе с большими .tif‑файлами и особенностями лицензирования. +- Способы **извлечения текста из изображения** безопасно, даже когда сервис возвращает ошибки. +- Полный, готовый к копированию пример, который можно вставить в свой проект. + +> **Prerequisite**: Python 3.8+ и файл лицензии Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Другие сторонние пакеты не требуются. + +--- + +![рабочий процесс извлечения текста из изображения](workflow.png){: .align-center alt="рабочий процесс извлечения текста из изображения"} + +## Извлечение текста из изображения – Обзор Async OCR + +Прежде чем погрузиться в код, разберём поток. Когда вы вызываете `recognize_async`, SDK отправляет изображение в облако Aspose, запускает фоновой процесс и возвращает объект `Task`. Ожидание этой задачи даёт `OcrResult`, содержащий текстовое представление картинки. Поскольку вызов асинхронный, вы можете запускать несколько задач параллельно — идеально для пакетной обработки больших архивов отсканированных документов. + +### Почему использовать Async? + +- **Non‑blocking I/O** – Ваш event loop остаётся свободным для выполнения других задач (например, обслуживания HTTP‑запросов). +- **Scalability** – Можно запустить десятки распознаваний одновременно; облако берёт на себя тяжёлую работу. +- **Responsiveness** – UI‑приложения не зависнут, пока ждут завершения OCR‑движка. + +Теперь, когда «почему» ясно, посмотрим «как». + +## Конвертация TIF в текст с помощью Aspose OCR + +Распространённая ошибка — предполагать, что каждая OCR‑библиотека нативно поддерживает .tif. Aspose поддерживает, но всё равно требуется передать объект `Image`. SDK абстрагирует формат, так что достаточно указать путь к файлу. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Пояснение ключевых строк** + +- `ocr_engine.license = ...` – Без действующей лицензии облако вернёт ошибку 403. Убедитесь, что файл `.lic` доступен из рабочей директории скрипта. +- `ocr.Image.from_file(image_path)` – Этот шаг **загружает изображение для OCR**; SDK автоматически определяет формат, так что предварительно конвертировать .tif не требуется. +- `recognize_async` – Возвращает задачу, совместимую с корутиной. При необходимости можно запустить несколько таких задач в вызове `gather`. + +> **Pro tip**: Если вы обрабатываете TIFF‑файлы гигабайтного размера, рассмотрите возможность разбиения их на страницы заранее. `Image.from_file` у Aspose принимает индекс страницы, что уменьшает нагрузку на память. + +## Асинхронное распознавание текста из изображения + +Посмотрим, как вызвать функцию из типичного скрипта. Точка входа `asyncio.run` — самый простой способ запустить корутину, когда вы не находитесь внутри уже работающего event loop (например, в обычном CLI‑инструменте). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Что ожидать** + +Запуск скрипта против чистого, высококачественного скана обычно выдаёт многострочную строку, соответствующую печатной странице. Если изображение шумное, Aspose всё равно попытается его очистить, но могут появиться искажённые символы. В этом случае рекомендуется предварительно обработать изображение с помощью OpenCV (например, пороговая бинаризация) перед передачей в OCR‑движок. + +### Обработка ошибок без сбоев + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Отлавливание `OcrException` гарантирует, что программа не упадёт, когда облако вернёт ошибку — частая проблема у новичков, забывающих о сетевых сбоях. + +## Загрузка изображения для OCR – Практические советы + +1. **Путь к файлу vs. байты** – SDK принимает путь к файлу, но также можно загрузить из объекта `bytes`, если изображение уже находится в памяти (`ocr.Image.from_bytes`). Это удобно, когда файл получен из S3 или базы данных. +2. **Поддерживаемые форматы** – Помимо .tif, Aspose работает с PDF, BMP, GIF и даже многостраничными TIFF‑файлами. Используйте `Image.from_file("doc.pdf")` для прямого OCR PDF‑файлов. +3. **Производительность** – Для пакетных задач переиспользуйте один экземпляр `OcrEngine`; создание нового движка для каждого файла добавляет лишние накладные расходы. + +## Полный рабочий пример (Все шаги в одном скрипте) + +Ниже представлен полностью готовый к запуску скрипт, включающий лицензирование, обработку ошибок и простой парсер аргументов командной строки. Скопируйте‑вставьте, укажите путь к лицензии, и всё готово. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Ожидаемый вывод** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Если изображение содержит простой абзац, консоль отобразит те же строки, сохраняя разрывы строк. Для многостраничных TIFF‑файлов SDK объединит страницы в правильном порядке. + +## Часто задаваемые вопросы (FAQ) + +**Q: Работает ли это с другими асинхронными фреймворками, например FastAPI?** +A: Абсолютно. Замените вызов `asyncio.run` на `await async_ocr(path)` внутри вашего эндпоинта, и FastAPI позаботится о event loop. + +**Q: Что делать, если нужно обработать сотни файлов одновременно?** +A: Используйте `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Можно ли извлечь текст из PDF, защищённого паролем?** +A: Не напрямую. Сначала нужно снять защиту с PDF (например, с помощью `pikepdf`), а затем передать расшифрованные байты в `ocr.Image.from_bytes`. + +**Q: Как работать с языками, отличными от английского?** +A: Установите язык перед распознаванием: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose поддерживает более 60 языков; проверьте документацию для точных идентификаторов. + +## Заключение + +Теперь у вас есть надёжное решение для **извлечения текста из изображения**, использующее `asyncio` в Python и асинхронный API Aspose OCR Cloud. Следуя описанным шагам, вы сможете **конвертировать tif в текст**, **загружать изображение для OCR** и **распознавать текст из изображения** без блокировки — идеально как для CLI‑утилит, так и для высоконагруженных веб‑сервисов. + +Что дальше? Попробуйте пакетную обработку папки со сканами, поэкспериментируйте с настройками языков или передайте вывод OCR в последующий NLP‑конвейер. Возможности безграничны. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/russian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..68f9a1ae3 --- /dev/null +++ b/ocr/russian/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Быстро извлекайте текст с помощью Aspose OCR. Узнайте, как улучшить точность + OCR, загрузить изображение для OCR, предобработать изображение для OCR и выполнить + сканирование OCR в Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: ru +og_description: Быстро извлекайте текст с помощью Aspose OCR. Освойте, как улучшить + точность OCR, загружать изображения для OCR, предварительно обрабатывать изображения + для OCR и выполнять сканирование OCR в Python. +og_title: Извлечение текста OCR – Полное руководство с Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Извлечение текста OCR – Полное руководство с Aspose OCR +url: /ru/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# извлечение текста OCR – Полное руководство с Aspose OCR + +Когда‑нибудь вам нужно было **extract text ocr** из нечеткого скана, но вы не понимали, почему результаты выглядели как набор бессмыслицы? Вы не одиноки — многие разработчики сталкиваются с этим, когда изображение наклонено, зашумлено или просто имеет низкий контраст. Хорошая новость в том, что несколько настроек конфигурации могут превратить неаккуратную картинку в чистый, пригодный для поиска текст. В этом руководстве мы пройдем полный пример от начала до конца, показывающий, как **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, и, наконец, выполнить OCR‑сканирование с Aspose OCR for Python. + +К концу этого руководства у вас будет исполняемый скрипт, который читает отсканированный JPEG, автоматически очищает его и выводит извлеченный текст в консоль. Никаких загадочных ссылок «см. документацию» — всё, что нужно, находится здесь. + +## Что понадобится + +- **Python 3.8+** (последний стабильный релиз работает лучше всего) +- **Aspose.OCR for Python via .NET** — установить с помощью `pip install aspose-ocr` +- Файл **license** (`Aspose.OCR.Java.lic`), если вы приобрели его (бесплатная пробная версия подходит для тестирования) +- Изображение, которое вы хотите обработать (например, `skewed_scanned_doc.jpg`) + +Вот и всё. Если у вас есть эти компоненты, можно сразу переходить к коду. + +## Шаг 1: Извлечение текста OCR с помощью Aspose OCR Engine + +Первое, что нужно сделать, — запустить OCR‑движок и применить вашу лицензию. Думайте о движке как о мозге, который будет читать изображение; без лицензии он откажется работать дальше небольшого демо‑лимита. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Почему это важно:** Применение лицензии заранее предотвращает тихий сбой позже. Если пропустить этот шаг, движок перейдет в ограниченный режим, и вы получите лишь несколько символов — определённо не то, что вы ожидаете, когда пытаетесь **extract text ocr**. + +## Шаг 2: Повышение точности OCR с помощью предварительной обработки + +Сканы, которые кривые или зернистые, — главная боль любого OCR‑проекта. Aspose позволяет переключать несколько удобных настроек, которые автоматически исправляют наклон, удаляют шум и повышают контраст. Это и есть суть **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** — вращает изображение обратно в горизонтальное положение, что критично, когда оригинальный документ не был идеально плоским. +- **remove_noise** — удаляет случайные пятна, которые часто появляются в JPEG низкого разрешения. +- **enhance_contrast** — делает темный текст темнее, а светлый фон светлее, помогая движку различать символы. +- **binarization = "Otsu"** — классический алгоритм, определяющий оптимальный порог для преобразования в черно‑белое. + +> **Совет:** Если вы знаете, что исходные изображения уже чистые, вы можете отключить эти опции для ускорения обработки. Но для большинства реальных сканов лучше оставить их включенными. + +## Шаг 3: Загрузка изображения OCR для сканирования + +Теперь, когда движок готов, нам нужно **load image ocr**. Метод `Image.from_file` из Aspose поддерживает JPEG, PNG, TIFF и несколько других форматов. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Замените `YOUR_DIRECTORY` на фактический путь на вашем компьютере. Если вы работаете с потоковым массивом байтов в памяти (например, из веб‑загрузки), вы также можете использовать `ocr.Image.from_bytes(byte_data)` — тот же движок справится с этим. + +> **Особый случай:** Большие файлы TIFF могут потреблять много памяти. Если вы получаете `MemoryError`, рассмотрите возможность предварительно уменьшить разрешение изображения или использовать `ocr_engine.config.max_image_size` для ограничения размеров. + +## Шаг 4: Выполнение OCR‑сканирования и получение результатов + +После загрузки изображения и включения предварительной обработки последний шаг — **run OCR scan**. Этот вызов выполняет всю тяжелую работу за кулисами. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Объект `ocr_result` содержит несколько полезных свойств: + +- `ocr_result.text` — простая строка, которая вам нужна. +- `ocr_result.confidence` — числовой показатель (0‑100), указывающий общую надежность. +- `ocr_result.words` — список объектов слов с координатами ограничивающих рамок, удобно для подсветки. + +## Шаг 5: Вывод извлечённого текста + +Наконец, выводим результат. В реальном приложении вы можете записать текст в файл, базу данных или передать его в поисковый индекс. Для этого руководства достаточно простого `print`. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Ожидаемый вывод** (пример для простого счета): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Если уверенность низкая (< 80), возможно, стоит пересмотреть параметры предварительной обработки или попробовать другой метод бинаризации, например `"Sauvola"`. + +## Бонус: Визуализация конвейера предварительной обработки (опционально) + +Иногда полезно увидеть, что движок сделал с изображением. Aspose позволяет экспортировать обработанный битмап: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Затем вы можете вставить изображение в документацию: + +диаграмма рабочего процесса extract text ocr, показывающая шаги предварительной обработки + +> **Зачем это нужно:** Когда результат OCR выглядит неверно, быстрый взгляд на `processed_debug.png` часто показывает, слишком ли темное изображение, всё ещё наклонено или осталось шум. + +## Часто задаваемые вопросы и подводные камни + +- **Что если мой документ многостраничный?** + Aspose OCR работает постранично. Пройдите по каждому изображению страницы и объедините `ocr_result.text`. + +- **Можно ли распознавать языки, отличные от английского?** + Да — установите `ocr_engine.config.language = "fra"` (или любой код ISO‑639‑2) перед вызовом `recognize`. + +- **Есть ли ограничение по размеру изображения?** + По умолчанию движок ограничивает размер до 10 МП. Увеличьте `ocr_engine.config.max_image_size`, если нужны более крупные сканы, но следите за потреблением памяти. + +- **Нужен ли отдельный OCR‑движок для PDF?** + Для PDF вы можете либо сначала извлечь каждую страницу как изображение (используя Aspose.PDF), либо воспользоваться встроенной функцией PDF OCR. Шаги, показанные здесь, остаются теми же после получения изображения. + +## Итоги + +Мы рассмотрели, как **extract text ocr** с помощью Aspose OCR for Python, от лицензирования движка до настройки параметров, которые **improve ocr accuracy**, загрузки исходного файла и, наконец, **run OCR scan** для получения чистого текста. Полный скрипт готов к копированию и вставке, и теперь вы понимаете, почему каждый флаг конфигурации важен. + +## Что дальше? + +- **Экспериментируйте с разными методами бинаризации** (`"Sauvola"`, `"Bradley"`). Некоторые шрифты лучше реагируют на адаптивные пороги. +- **Интегрируйте с поисковым движком** (например, Elasticsearch), используя показатель уверенности для ранжирования результатов. +- **Комбинируйте с библиотеками пост‑обработки OCR** вроде `pyspellchecker` для исправления типичных ошибок распознавания. +- **Исследуйте пакетную обработку** для сотен сканов — оберните шаги в функцию и передайте ей папку с изображениями. + +Не стесняйтесь менять код, добавлять собственный логгинг или подключать его к более крупному конвейеру управления документами. Если столкнётесь с проблемами, оставьте комментарий ниже — приятного кодинга! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/russian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..5ac72e184 --- /dev/null +++ b/ocr/russian/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Как выполнять OCR PDF с помощью Aspose OCR Java. Узнайте, как запускать + OCR для PDF, распознавать текст в PDF, конвертировать PDF в JSON и загружать PDF + для OCR всего в несколько строк кода. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: ru +og_description: Как выполнять OCR PDF с помощью Aspose OCR Java. Это руководство показывает, + как запустить OCR на PDF, распознать текст PDF, конвертировать PDF в JSON и быстро + загрузить PDF для OCR. +og_title: Как выполнить OCR PDF с помощью Aspose OCR – Полный учебник по программированию +tags: +- Aspose OCR +- Java +- PDF processing +title: Как выполнить OCR PDF с помощью Aspose OCR – Полное пошаговое руководство +url: /ru/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как выполнять OCR PDF с Aspose OCR – Полное пошаговое руководство + +Вы когда‑нибудь задумывались, **как выполнять OCR PDF** файлов без борьбы с инструментами командной строки или оплаты дорогих SaaS‑решений? Вы не одиноки. Во многих проектах — автоматизация обработки счетов, архивирование отсканированных контрактов или создание поисковой базы знаний — возникает необходимость быстро и надёжно извлекать текст из PDF. + +Хорошие новости? С Aspose OCR for Java вы можете **выполнять OCR на PDF**, распознавать текст на страницах PDF, **конвертировать PDF в JSON**, и даже **загружать PDF для OCR** в несколько строк кода. В этом руководстве мы пройдем весь процесс, объясним, почему каждый шаг важен, и предоставим готовый к запуску пример кода, который вы сможете добавить в свой проект. + +## Что вы узнаете + +- Как настроить движок Aspose OCR и применить вашу лицензию. +- Точный способ **загружать PDF для OCR** и передавать его распознавателю. +- Как **распознавать текст PDF** на всех страницах одним вызовом. +- Экспорт полного результата OCR в файл **JSON** (идеально для downstream API) и отдельной страницы в **XML**. +- Советы, подводные камни и варианты, которые могут понадобиться при работе с многостраничными PDF или пользовательскими языковыми пакетами. + +> **Требования** – Вам нужен Java 8 или новее, действительный файл лицензии Aspose OCR for Java (`Aspose.OCR.Java.lic`) и JAR Aspose OCR в вашем classpath. Другие внешние библиотеки не требуются. + +--- + +## Как выполнять OCR PDF – Инициализация движка Aspose OCR + +Первое, что вы должны сделать, — создать экземпляр `OcrEngine` и прикрепить вашу лицензию. Этот шаг разблокирует весь набор функций и удаляет водяной знак оценки. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Почему это важно:** +Без лицензии Aspose OCR работает в ограниченном режиме «пробной версии», который ограничивает количество страниц и добавляет водяной знак к результату. Применение лицензии заранее гарантирует, что остальная часть конвейера будет работать без неожиданных ограничений. + +--- + +## Выполнение OCR на PDF – Загрузка документа и распознавание текста + +Теперь мы **загружаем PDF для OCR**. Aspose OCR рассматривает PDF как специальный тип `PdfDocument`, который внутри извлекает каждую страницу как изображение перед передачей её распознавателю. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Что происходит «под капотом»?** +`recognizeDocument` перебирает каждую страницу, растеризует её с оптимальным DPI, а затем запускает OCR‑движок. Результатом является массив `OcrPage`, где каждый элемент содержит обнаруженный текст, оценки уверенности и информацию о разметке. Такой подход гораздо надёжнее, чем передача сырых байтов PDF в общую OCR‑библиотеку. + +--- + +## Конвертация результата OCR в JSON – Экспорт полного отчёта + +Большинство downstream‑систем предпочитают JSON, потому что его легко десериализовать в Java, JavaScript, Python или даже PowerShell. Aspose OCR поставляется с вспомогательным классом `JsonExport`, который сериализует весь массив `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Когда это может понадобиться?** +Если вам нужно передать вывод OCR в поисковый индекс (Elasticsearch, Solr) или в конвейер данных, формат JSON предоставляет структурированное представление каждой страницы, строки и слова, включая значения уверенности. + +--- + +## Экспорт первой страницы в XML – Сохранение отдельной страницы + +Иногда вам нужна только одна страница — возможно, первая страница содержит заголовок или номер счета. Класс `XmlExport` позволяет выгрузить отдельный `OcrPage` в аккуратный XML‑файл. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Почему XML?** +Унаследованные системы или некоторые корпоративные рабочие процессы всё ещё полагаются на XML‑схемы для загрузки. Сгенерированный файл соответствует собственной схеме Aspose, что упрощает валидацию. + +--- + +## Проверка вывода – Проверка файлов JSON и XML + +После завершения программы вы должны увидеть два файла в `YOUR_DIRECTORY`: + +- `report_ocr.json` – Содержит массив объектов страниц. Пример фрагмента может выглядеть так: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Содержит ту же информацию для страницы 1, обёрнутую в теги ``. + +Откройте их в любом редакторе; вы увидите необработанные строки OCR, оценки уверенности и координаты ограничивающих рамок. Если JSON выглядит пустым, проверьте, что входной PDF действительно содержит растровый контент (отсканированные изображения), а не выделяемый текст — Aspose OCR работает только с изображениями. + +--- + +## Распространённые подводные камни и профессиональные советы + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Пустой JSON** | PDF содержит нативный текст, а не изображения. | Используйте `PdfDocument.fromFile(..., true)` чтобы принудительно растеризовать, или предварительно конвертировать страницы в изображения. | +| **Низкая уверенность** | Исходный PDF имеет низкое разрешение или сильно сжат. | Увеличьте DPI, вызвав `ocrEngine.getImageProcessingOptions().setDpi(300)` перед `recognizeDocument`. | +| **Лицензия не найдена** | Неправильный путь или отсутствует файл. | Используйте абсолютный путь или разместите файл `.lic` в classpath и вызовите `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory на больших PDF** | Все страницы загружаются в память одновременно. | Обрабатывайте страницы пакетами: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Расширение примера + +- **Выполнять OCR на PDF с определённым языком** – установите `ocrEngine.getLanguage().setLanguage(Language.English)` или загрузите пользовательский языковой пакет. +- **Экспортировать каждую страницу в отдельный JSON‑файл** – пройдитесь по `ocrPages` и вызовите `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Интеграция с поисковым движком** – передайте JSON в процессор `attachment` Elasticsearch для полнотекстового поиска. + +--- + +## Заключение + +Теперь у вас есть полное, готовое к продакшену решение для **как выполнять OCR PDF** с использованием Aspose OCR for Java. Инициализируя движок, загружая PDF, выполняя OCR и экспортируя как **JSON**, так и **XML**, вы можете интегрировать OCR в любой бэкенд‑рабочий процесс — независимо от того, нужно ли вам **выполнять OCR на PDF**, **распознавать текст PDF**, **конвертировать PDF в JSON** или просто **загружать PDF для OCR**. + +Попробуйте, настройте DPI или параметры языка, и наблюдайте, как ваши ранее нечитаемые PDF‑файлы становятся поисковыми ресурсами. Хотите идти дальше? Попробуйте индексировать JSON в Elasticsearch или пост‑обработать XML с помощью XSLT для создания пользовательских отчётов. + +Удачной разработки, и пусть ваши 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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/russian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..23469897f --- /dev/null +++ b/ocr/russian/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'Как быстро запустить OCR: научитесь извлекать текст из изображения и + распознавать текст из формы с помощью Aspose OCR Java. Простые шаги для чтения изображения + для OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: ru +og_description: 'как быстро запустить OCR: научитесь извлекать текст из изображения + и распознавать текст из формы с помощью Aspose OCR Java. Простые шаги для чтения + изображения для OCR.' +og_title: как запустить OCR на форме – извлечь текст из изображения +tags: +- ocr +- java +- image-processing +title: как запустить OCR на форме – извлечь текст из изображения +url: /ru/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# как запустить OCR на форме – извлечение текста из изображения + +Задумывались ли вы когда‑нибудь **how to run ocr** на отсканированном документе, не тратя часы на возню с непонятными библиотеками? Вы не одиноки. Во многих проектах — будь то оцифровка счетов, архивирование контрактов или извлечение данных из рукописных форм — возможность **extract text from image** файлов является ежедневной проблемой. + +Дело в том, что Aspose OCR for Java делает весь процесс почти безболезненным. В этом руководстве мы пройдем каждую строку кода, необходимую для **recognize text from form** файлов, объясним, почему каждый шаг важен, и покажем, как **read image for ocr** результаты с оценками уверенности. К концу у вас будет готовый к запуску класс Java, который можно добавить в любой проект Maven или Gradle. + +## Что вы узнаете + +- Настроить движок Aspose OCR и применить вашу лицензию. +- Загрузить JPEG, PNG или TIFF в память. +- Запустить OCR и пройтись по каждой строке распознанного текста. +- Обнаружить строки с низкой уверенностью для ручного просмотра. +- Расширить пример для многостраничных PDF или разных форматов изображений. + +Предыдущий опыт работы с Aspose не требуется, достаточно базовой среды разработки Java (JDK 11+ и любой понравившийся IDE). Приступим. + +![пример запуска OCR](/images/ocr-demo.png){alt="пример запуска OCR на отсканированной форме"} + +## Шаг 1: Инициализация OCR‑движка – **how to run ocr** + +Первое, что вы должны сделать перед любой операцией OCR, — создать экземпляр `OcrEngine` и прикрепить действующую лицензию. Без лицензии библиотека работает в демо‑режиме, который ограничивает количество обрабатываемых страниц. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Почему это важно:** +`OcrEngine` хранит всю конфигурацию — язык, режим обнаружения и настройки производительности. Установив лицензию заранее, вы избегаете тихого перехода в пробный режим, который иначе обрезает ваш вывод. + +## Шаг 2: Загрузка изображения – **extract text from image** + +Далее нам нужен объект `Image`, указывающий на файл, который вы хотите сканировать. Aspose поддерживает широкий спектр форматов, поэтому вы можете передать отсканированную страницу PDF, уже конвертированную в PNG, необработанный JPEG или даже многостраничный TIFF. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Почему это важно:** +Загрузка изображения как объекта `Image` предоставляет движку доступ к пиксельным данным, информации о DPI и глубине цвета — всё это влияет на точность OCR. Если пропустить этот шаг и передать необработанный массив байтов, вы потеряете эти полезные подсказки. + +## Шаг 3: Запуск OCR – **recognize text from form** + +Теперь самая интересная часть: фактическое распознавание символов. Метод `recognize` возвращает `RecognitionResult`, содержащий коллекцию объектов `Line`, каждый из которых имеет свою оценку уверенности. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Почему это важно:** +Вызов `recognize` запускает каскад внутренних процессов — предобработку (выравнивание, удаление шума), сегментацию, классификацию символов и постобработку (проверка орфографии, языковая модель). Объект результата скрывает всю эту сложность. + +## Шаг 4: Обработка результатов – **read image for ocr** вывод + +Получив `RecognitionResult`, вы можете пройтись по каждой строке, автоматически решить, что сохранять, и пометить всё, что выглядит сомнительно. Порог уверенности 85 % является хорошей отправной точкой для большинства печатных форм. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Ожидаемый вывод (пример):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +В приведённом выше примере движок был не уверен в последней цифре общей суммы, поэтому мы вывели предупреждение. Вы можете направить эти строки в пользовательский интерфейс для ручной коррекции или записать их в журнал для последующего просмотра. + +### Особые случаи и советы + +- **Multiple pages:** Если у вас многостраничный PDF, выполните цикл по каждому индексу страницы и вызовите `Image.fromPdf(pdfPath, pageIndex)`. +- **Different languages:** Установите `engine.getLanguage().setLanguage(Language.Spanish);` перед вызовом `recognize`. +- **Image quality:** Сканирование с низким разрешением (< 150 DPI) часто даёт уверенность ниже 80 %. Увеличение масштаба с помощью `image.resize(300, 300)` может помочь, но лучшее решение — более качественный скан. +- **Performance:** Повторное использование того же экземпляра `OcrEngine` для множества изображений уменьшает накладные расходы по сравнению с созданием нового каждый раз. + +## Часто задаваемые вопросы + +**Можно ли запускать это на сервере без графического интерфейса?** +Абсолютно. Библиотека не имеет зависимостей от GUI, поэтому она отлично работает внутри Docker‑контейнеров или в CI‑конвейерах. + +**Что если у меня ещё нет лицензии?** +Вы всё равно можете вызвать `engine.recognize`, но демо‑режим остановится после первых 2 страниц и добавит водяной знак к выводу. Это идеально для быстрых тестов. + +**Есть ли способ извлечь структурированные данные (например, таблицы)?** +Aspose OCR предоставляет класс `TableRecognizer`, но это выходит за рамки данного руководства для начинающих. После освоения основ ознакомьтесь с официальной документацией по `TableRecognizer`. + +## Подводя итоги – **how to run ocr** в двух словах + +Мы рассмотрели всё, что нужно для **how to run ocr** на отсканированной форме: инициализировать движок, загрузить изображение, выполнить распознавание и интеллектуально обработать результаты. Всего лишь несколькими строками Java вы можете **extract text from image** файлы, **recognize text from form** документы и **read image for ocr** вывод с оценками уверенности, позволяющими решить, когда требуется человеческая проверка. + +Следующие шаги? Попробуйте заменить JPEG на многостраничный 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/russian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..e1268abf3 --- /dev/null +++ b/ocr/russian/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-05-03 +description: Как использовать OCR для извлечения текста из PDF‑файлов в Java. Узнайте, + как распознавать текст из PDF, конвертировать PDF в текст и эффективно обрабатывать + многостраничные PDF с OCR. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: ru +og_description: Как использовать OCR для извлечения текста из PDF‑файлов в Java. Это + руководство показывает, как распознавать текст из PDF, конвертировать PDF в текст + и обрабатывать многостраничные PDF с помощью OCR. +og_title: Как использовать OCR в Java — извлечение текста из многостраничных PDF +tags: +- ocr +- java +- pdf +- aspose +title: Как использовать OCR в Java — извлекать текст из многостраничных PDF +url: /ru/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как использовать OCR в Java – извлечение текста из многостраничных PDF + +**How to use OCR** в Java‑проекте? Если вам когда‑нибудь нужно было извлекать текст из PDF‑файлов, не полагаясь на внутренний текстовый слой PDF, вы попали в нужное место. Этот учебник проведёт вас через полное, готовое к запуску решение, которое **распознаёт текст из PDF**, преобразует PDF в текст и даже обрабатывает **OCR multi page PDF** одним вызовом. + +Представьте, что вы получили отсканированный контракт — 12‑страничный TIFF внутри PDF. Вам нужен индексируемый текст для поиска, но в файле нет встроенных символов. Нет проблем; мы покажем вам точно, как это сделать, шаг за шагом. + +> **Что вы получите:** готовый к запуску фрагмент Java с использованием Aspose.OCR, объяснения, почему каждая строка важна, советы по распространённым подводным камням и пример вывода, который вы можете сразу проверить. + +## Что понадобится + +* **Java 17** (или любой современный JDK) – код работает и со старыми версиями, но 17 — оптимальный вариант. +* **Aspose OCR for Java** library – вы можете скачать JAR с сайта Aspose или добавить его через Maven/Gradle. +* **Многостраничный PDF** (или TIFF), который вы хотите обработать. В наших примерах мы будем использовать `contract_multipage.pdf`, размещённый в папке `YOUR_DIRECTORY`. +* Действительный **файл лицензии Aspose OCR** (`Aspose.OCR.Java.lic`). Без него библиотека работает в режиме оценки, что приемлемо для быстрой проверки, но будет добавлять водяной знак. + +Вот и всё — никаких дополнительных OCR‑движков, нативных бинарных файлов, только один JAR и лицензия. + +![пример использования OCR](https://example.com/ocr-demo.png "Как использовать OCR в Java – визуальный обзор процесса") + +*Текст alt изображения: пример использования OCR в Java – визуальный обзор загрузки, распознавания и вывода текста.* + +## Шаг 1: Настройка OCR‑движка – **How to Use OCR** правильно + +Первое, что вы должны сделать, — создать экземпляр OCR‑движка и применить вашу лицензию. Без лицензии движок всё равно будет работать, но в выводе вы увидите водяной знак пробной версии. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Почему это важно:** +`OcrEngine` — основной объект, который управляет анализом изображений, определением языка и извлечением текста. Раннее применение лицензии предотвращает переход движка в режим пробной версии позже, что может повлиять на точность. + +## Шаг 2: Загрузка документа – **Extract Text from PDF** эффективно + +Aspose OCR может напрямую читать как PDF, так и TIFF‑контейнеры. Здесь мы загружаем многостраничный PDF, содержащий отсканированные изображения. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Почему это важно:** +`PdfDocument.fromFile` разбирает контейнер и предоставляет доступ к каждой странице в виде изображения. Эта абстракция позволяет OCR‑движку обрабатывать каждую страницу одинаково, независимо от исходного формата. + +**Подсказка:** Если ваш исходный файл — TIFF, тот же вызов работает — Aspose автоматически определяет формат. Дополнительный код не требуется. + +## Шаг 3: Распознавание всех страниц за один раз – **Recognize Text from PDF** без проблем + +Вместо того чтобы вручную перебирать страницы, вы можете попросить движок обработать весь документ одним вызовом. Это самый эффективный способ **convert PDF to text**, когда работаете с **OCR multi page PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Почему это важно:** +Вызов `recognizeDocument` один раз уменьшает накладные расходы, связанные с многократной инициализацией движка. Это также гарантирует согласованные настройки языка на всех страницах, что критично для юридических документов, часто содержащих смешанные шрифты. + +## Шаг 4: Вывод распознанного текста – **Convert PDF to Text** для индексации + +Теперь, когда каждая страница обработана, мы просто проходим по результатам и выводим извлечённые строки. Вы также можете записать их в файл, базу данных или передать в поисковый индекс. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Ожидаемый вывод (усечённый):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Если PDF содержит 12 страниц, вы увидите двенадцать секций `--- Page X ---`, каждая из которых будет содержать OCR‑извлечённый текст. + +## Расширенные советы для **OCR Multi Page PDF** + +### 1. Настройка параметров языка + +По умолчанию Aspose пытается автоматически определить язык, но вы можете ускорить процесс, указав его явно: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Управление предобработкой изображений + +Отсканированные контракты часто содержат шум. Вы можете включить исправление наклона и бинаризацию: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Обработка больших файлов без проблем + +Если вы обрабатываете PDF размером более 100 МБ, рассмотрите возможность потоковой загрузки страниц вместо загрузки всего документа сразу: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Этот подход снижает нагрузку на память и удобен для пакетных заданий. + +### 4. Экспорт в структурированные форматы + +Помимо простого текста, вы можете экспортировать в JSON или XML для дальнейшей обработки: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## Распространённые подводные камни и как их избежать + +| Проблема | Почему происходит | Решение | +|---------|-------------------|--------| +| **Пустой вывод** | Лицензия не применена или неверный путь к файлу. | Проверьте путь в `setLicense` и убедитесь, что файл существует. | +| **Неправильные символы** | Неправильная настройка языка или низкое разрешение источника. | Установите правильный `Language` и убедитесь, что исходные изображения ≥300 dpi. | +| **Ошибка out‑of‑memory** | Загрузка огромного PDF целиком. | Используйте потоковый подход, показанный выше. | +| **Частичное распознавание страниц** | PDF содержит смешанные растровые/векторные слои. | Сначала выполните выравнивание PDF: `pdfDoc.flatten();` перед OCR. | + +## Итоги – Что мы рассмотрели + +* **How to use OCR** с Aspose в Java. +* **Extract text from PDF** (или TIFF) одним вызовом. +* **Recognize text from PDF** на всех страницах без ручных циклов. +* **Convert PDF to Text** и вывести его чисто. +* Советы по работе с **OCR multi page PDF**, включая настройки языка и потоковую обработку, экономящую память. + +Теперь у вас есть полностью готовый к продакшн фрагмент, который можно вставить в любой Java‑проект. Не стесняйтесь менять параметры обработки изображений, менять место вывода или интегрировать результат в поисковый индекс. + +## Следующие шаги + +* **Explore Aspose OCR’s advanced features** — например, распознавание рукописного текста или соответствие PDF/A. +* **Combine OCR with PDF manipulation** (например, добавить скрытый текстовый слой обратно в PDF для создания поисковых PDF). +* **Automate batch processing** — считывая папку с PDF и записывая каждый результат в соответствующий файл `.txt`. + +Если у вас возникнут какие‑либо проблемы, форумы Aspose — отличное место для получения помощи, а справочник API предоставляет исчерпывающие детали по каждому использованному здесь методу. + +Удачной разработки, и наслаждайтесь превращением упорных сканов в поисковый текст! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/russian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..2d24ea014 --- /dev/null +++ b/ocr/russian/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Чтение бинарного файла в Java для загрузки лицензии Aspose OCR. Узнайте, + как использовать FileInputStream, работать с бинарными данными и практические советы + в этом пошаговом руководстве. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: ru +og_description: Чтение бинарного файла в Java для загрузки лицензии Aspose OCR. Следуйте + этому полному руководству, чтобы освоить FileInputStream и работу с бинарными данными + в Java. +og_title: Чтение бинарного файла в Java – загрузка байтов лицензии для Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Чтение бинарного файла Java – загрузка байтов лицензии для Aspose OCR +url: /ru/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Чтение бинарного файла Java – загрузка байтов лицензии для Aspose OCR + +Когда‑то вам нужно было **read binary file Java** при работе с лицензией сторонней библиотеки? Вы не одиноки. Большинство Java‑разработчиков сталкиваются с этой проблемой, когда пытаются передать файл `.lic` в OCR‑движок, и обычные трюки с текстовыми файлами просто не работают. + +В этом руководстве мы пройдём полный, готовый к запуску пример, который показывает, как открыть бинарный файл лицензии, загрузить его байты в память и передать их Aspose OCR for Java. По пути вы узнаете, почему `FileInputStream` — правильный инструмент, как обрабатывать возможные `IOException`, а также несколько профессиональных советов, которых нет в официальной документации. + +К концу руководства вы сможете **read binary file Java**‑стилем, создать объект `License` и присвоить его `OcrEngine` без усилий. + +## Что охватывает это руководство + +- Предварительные требования: Java 17+, Maven (или Gradle) и библиотека Aspose OCR for Java. +- Пошаговый код, который читает бинарный файл `.lic` с помощью `FileInputStream`. +- Пояснение каждой строки, чтобы вы понимали *почему* за *как*. +- Обработка крайних случаев (отсутствующий файл, повреждённые байты) и практические советы по отладке. +- Финальный, автономный фрагмент кода, который можно скопировать‑вставить в IDE и сразу запустить. + +Если вы когда‑нибудь задавались вопросом, нужен ли специальный API для чтения файлов лицензий, ответ — решительное **no** — просто хорошее старое бинарное I/O. Приступим. + +## Шаг 1: Чтение бинарного файла Java с помощью FileInputStream + +Первое, что нам нужно, — надёжный способ получить необработанные байты из файла лицензии на диске. В Java `FileInputStream` именно для этого и предназначен. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Почему это работает:** `Files.readAllBytes` внутри создаёт `FileInputStream`, читает весь поток и закрывает его за вас. Это безопасно, лаконично и избегает классической ошибки «забыть закрыть поток». Если вам ближе классический подход, замените его блоком `try‑with‑resources`, используя `FileInputStream` напрямую. + +### Профессиональный совет + +Если файл лицензии огромный (маловероятно, но возможно), рассмотрите возможность чтения его кусками вместо загрузки целиком. Для большинства OCR‑лицензий — обычно менее нескольких килобайт — однократный подход более чем приемлем. + +## Шаг 2: Создание объекта License для Aspose OCR + +Теперь, когда у нас есть необработанные байты, нужно превратить их в совместимый с Aspose объект `License`. Библиотека предоставляет класс `License`, принимающий массив байтов. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Почему это важно:** Передавая байты напрямую, вы избегаете проблем, связанных с путями (например, путаница с относительным путём к рабочей директории) и делаете развертывание портативным — просто включите файл `.lic` туда, где запускается ваше приложение. + +## Шаг 3: Присвоение лицензии OCR‑движку + +С готовым объектом `License` последний шаг — прикрепить его к `OcrEngine`. Это гарантирует, что компонент OCR работает в лицензированном режиме, а не в режиме оценки. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Примечание:** В некоторых старых версиях Aspose публичное поле `license` используется вместо сеттера. При необходимости скорректируйте код (`ocrEngine.license = license;`), если получите ошибку компиляции. + +## Шаг 4: Проверка успешной загрузки лицензии (необязательно, но полезно) + +Быстрая проверка экономит часы отладки позже. Класс `License` не бросает исключения при успехе, но вы можете выполнить безвредную OCR‑операцию, чтобы убедиться. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Если вы видите сообщение «License applied successfully», всё готово к работе. Если нет — проверьте путь к файлу, целостность байтов и используемую версию Aspose. + +## Полный рабочий пример + +Собрав все части вместе, получаем компактную программу, готовую к копированию и вставке. Смело поместите её в файл `Main.java` и запустите. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Ожидаемый вывод (при наличии тестового изображения):** + +``` +License applied successfully – OCR engine is ready. +``` + +Если файл лицензии отсутствует или повреждён, вы увидите чёткое сообщение об ошибке, например: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Распространённые подводные камни и как их избежать + +- **Путаница с путями:** Относительные пути разрешаются относительно рабочей директории JVM, а не места расположения исходного файла. Используйте абсолютный путь или разместите файл `.lic` рядом с JAR‑файлом и получайте его через `getResourceAsStream`. +- **Неправильный порядок байтов:** Никогда не пытайтесь читать бинарный файл с помощью `Reader` (ориентированного на символы). Это испортит данные. Оставайтесь на API, основанных на `FileInputStream`. +- **Несоответствие версий:** В некоторых старых релизах Aspose ожидается вызов `license.setLicense("path/to/file")` вместо `setLicenseBytes`. Проверьте примечания к выпуску библиотеки, если получите `NoSuchMethodError`. +- **Забыли закрыть потоки:** При возврате к классическому подходу с `FileInputStream` оберните его в блок `try‑with‑resources`, чтобы гарантировать закрытие. + +## Заключение + +Теперь вы знаете, как **read binary file Java** для загрузки лицензии Aspose OCR, создать объект `License` и подключить его к `OcrEngine`. Процесс опирается на правильную работу с бинарными данными через `FileInputStream` (или более современный `Files.readAllBytes`) и несколько простых вызовов API. + +Далее вы можете переходить к реальным OCR‑задачам — извлечению текста из PDF, изображений или отсканированных документов — будучи уверенными, что слой лицензирования не создаст проблем. Если вам интересны смежные темы, ознакомьтесь с руководствами по **Java FileInputStream**, **binary data handling Java** и **read license file Java** для других библиотек. + +Счастливого кодинга, и пусть результаты 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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/russian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..379776ec3 --- /dev/null +++ b/ocr/russian/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-05-03 +description: Узнайте, как распознавать текст с изображения и преобразовывать изображение + в текст с помощью Aspose OCR для Java. Включает советы по повышению точности OCR + и запуску OCR для PNG‑файлов. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: ru +og_description: Пошаговое руководство по распознаванию текста с изображения с помощью + Aspose OCR для Java. Узнайте, как преобразовать изображение в текст, улучшить точность + OCR и выполнить OCR для PNG. +og_title: Распознавание текста с изображения с помощью Aspose OCR – Java‑урок +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Распознавание текста с изображения с помощью Aspose OCR – Полное руководство + по Java +url: /ru/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# распознавание текста с изображения с помощью Aspose OCR – Полное руководство по Java + +Когда‑нибудь вам нужно было **распознать текст с изображения**, но вы не были уверены, какая библиотека даст надёжные результаты? Вы не одиноки — многие разработчики сталкиваются с этой проблемой, когда впервые пытаются извлечь данные из отсканированных PDF, чеков или лабораторных отчётов. Хорошая новость в том, что Aspose OCR для Java делает весь процесс простым, и вы даже можете **преобразовать изображение в текст** всего несколькими строками. + +В этом руководстве мы пройдём всё, что вам нужно знать: от загрузки изображения для OCR, настройки параметров для **улучшения точности OCR**, до окончательного **запуска OCR на PNG**‑файлах и вывода извлечённого текста. Без лишних слов, только практический, готовый к запуску пример, который вы можете сразу добавить в свой проект. + +--- + +## Что понадобится + +| Требование | Причина | +|--------------|--------| +| Java 17 (или новее) | Aspose OCR поддерживает Java 8+, но последняя JDK обеспечивает лучшую производительность. | +| Библиотека Aspose OCR for Java (`aspose-ocr.jar`) | Ядро движка, которое выполняет основную работу. | +| Действительный файл лицензии Aspose OCR (`Aspose.OCR.Java.lic`) | Активирует полный набор функций; иначе будет водяной знак пробной версии. | +| Файл изображения (PNG, JPEG, TIFF и т.д.) с чётким текстом | Мы будем использовать `lab_report.png` как конкретный пример. | +| Пользовательский словарь (необязательно) | Улучшает распознавание терминов специфических для области, например “hemoglobin”. | + +Если что‑то из этого вам незнакомо, не паникуйте — установка JAR‑файла и создание простого текстового файла — тривиальные задачи, которые мы рассмотрим чуть позже. + +--- + +## Шаг 1 – Настройка проекта и импорт зависимостей + +Сначала создайте новый проект Maven (или Gradle) и добавьте зависимость Aspose OCR. Пользователи Maven могут вставить этот фрагмент в свой `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Если вы предпочитаете Gradle, эквивалент выглядит так: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Pro tip:** Следите за номером версии; новые релизы часто содержат исправления багов, которые напрямую влияют на **улучшение точности OCR**. + +Теперь создайте Java‑класс под названием `OcrDemo.java`. В начале файла импортируйте необходимые классы: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Шаг 2 – Инициализация OCR‑движка и применение лицензии + +Вы не сможете **запустить OCR на PNG**‑файлах, пока не укажете движку, что у вас есть лицензия. Делается это так: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Зачем нужен отдельный объект `License`? Aspose отделяет работу с лицензией от движка, чтобы вы могли менять лицензии «на лету», что удобно в сценариях SaaS с несколькими клиентами. + +--- + +## Шаг 3 – Загрузка пользовательского словаря (необязательно, но эффективно) + +Если вы работаете с медицинской терминологией, химическими формулами или брендовыми названиями, пользовательский словарь может **значительно улучшить точность OCR**. Словарь — это обычный текстовый файл, в котором каждое слово находится на отдельной строке: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Почему это работает:** OCR‑движок использует словарь, чтобы сместить языковую модель в сторону нужных вам слов, уменьшая ошибки типа “hemo­globin” → “hemoglobin”. + +Если у вас нет словаря, просто пропустите эту строку — Aspose всё равно хорошо работает со встроенными языковыми пакетами. + +--- + +## Шаг 4 – Загрузка изображения для обработки + +Теперь мы действительно **загружаем изображение для OCR**. Aspose поддерживает множество форматов, но PNG особенно без потерь, что делает его безопасным выбором для отсканированных документов. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** Если ваше изображение очень большое (более 5 МБ), подумайте о предварительном уменьшении масштаба, чтобы ускорить обработку. Класс `Image` предоставляет метод `resize`, который можно вызвать перед распознаванием. + +--- + +## Шаг 5 – Запуск OCR‑процесса и получение текста + +Когда всё готово, запускаем OCR‑движок. Метод `recognize` возвращает объект `OcrResult`, содержащий извлечённую строку, оценки уверенности и даже ограничивающие рамки, если нужны сведения о разметке. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +При запуске программы вы должны увидеть что‑то вроде: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Вот и всё — вы успешно **распознали текст с изображения** и **преобразовали изображение в текст** с помощью Aspose OCR. + +--- + +## Шаг 6 – Распространённые подводные камни и как их исправить + +Даже с надёжной библиотекой могут возникнуть небольшие проблемы: + +| Симптом | Вероятная причина | Решение | +|---------|-------------------|---------| +| Пустой вывод | Лицензия не применена или истекла | Проверьте путь к `Aspose.OCR.Java.lic` и убедитесь, что он соответствует версии. | +| Искажённые символы | Изображение низкого разрешения или сильно сжатое | Используйте источник с более высоким разрешением или предварительно обработайте изображение (бинаризация, исправление наклона). | +| Отсутствуют термины специфические для домена | Отсутствует пользовательский словарь | Добавьте файл словаря с недостающими терминами, по одному слову в строке. | +| Медленная обработка больших пакетов | Отсутствует многопоточность | Создайте пул экземпляров `OcrEngine` (они потокобезопасны) и обрабатывайте изображения параллельно. | + +--- + +## Шаг 7 – Расширение примера: сохранение результатов в файл + +Если вам нужно сохранить извлечённый текст для последующего анализа, просто запишите его в файл: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Теперь у вас есть переиспользуемый конвейер, который **загружает изображение для OCR**, извлекает содержимое и сохраняет его туда, куда вам нужно. + +--- + +## Бонус: Запуск OCR на нескольких PNG‑файлах в папке + +В реальных проектах часто требуется обработать десятки сканов. Вот простой цикл, который берёт каждый `.png` в указанной директории: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Не забывайте переиспользовать один и тот же экземпляр `ocrEngine` — создание нового объекта для каждого файла добавляет лишние накладные расходы. + +--- + +## Заключение + +Теперь у вас есть полнофункциональное решение «конец‑в‑конец», которое **распознаёт текст с изображения** с помощью Aspose OCR для Java. От загрузки изображения, при желании обогащения движка пользовательским словарём для **улучшения точности OCR**, до **запуска OCR на PNG**‑файлах и сохранения результата — код готов к использованию в любом Java‑проекте. + +Что дальше? Попробуйте передать извлечённый текст в конвейер обработки естественного языка или поэкспериментировать с OCR рукописных заметок (Aspose также предлагает режим распознавания рукописного текста). Возможностей много, и вы только сделали первый шаг. + +Счастливого кодинга! Если столкнётесь с проблемами, оставляйте комментарий ниже — разберём вместе. + +![Скриншот результата OCR в консоли – распознавание текста с изображения](/images/ocr_console_result.png "пример распознавания текста с изображения") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/spanish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..14404b76c --- /dev/null +++ b/ocr/spanish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Extrae tablas de una imagen usando Aspose OCR Java. Aprende a cargar + la imagen para OCR, extraer la tabla de un PNG, convertir el texto de la tabla de + la imagen y reconocer rápidamente una imagen de recibo. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: es +og_description: Extrae tablas de una imagen con Aspose OCR Java. Esta guía muestra + cómo cargar una imagen para OCR, extraer una tabla de un PNG, convertir el texto + de la tabla de la imagen y reconocer una imagen de recibo. +og_title: Extraer tablas de una imagen – Tutorial de Aspose OCR para Java +tags: +- Aspose OCR +- Java +- Image Processing +title: Extraer tablas de la imagen – Guía completa de Aspose OCR Java +url: /es/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraer tablas de imagen – Guía completa de Aspose OCR Java + +¿Alguna vez necesitaste **extraer tablas de imagen** pero te encontraste con un obstáculo? Tal vez tienes un recibo escaneado o una factura fotografiada y los datos tabulares están ocultos en un PNG. En este tutorial verás exactamente cómo *cargar imagen para OCR*, convertir esa foto en filas estructuradas y **convertir texto de tabla de imagen** en algo con lo que puedas trabajar en Java. + +Recorreremos cada paso, desde licenciar el motor Aspose OCR hasta imprimir cada celda de las tablas detectadas. Al final podrás **reconocer imágenes de recibos** y extraer sus tablas sin esfuerzo. + +## Lo que aprenderás + +- Cómo inicializar el motor Aspose OCR y aplicar tu licencia. +- Por qué habilitar la detección de tablas es la clave para **extraer tablas de imagen**. +- El código exacto necesario para **cargar imagen para OCR** y ejecutar el reconocimiento en un PNG. +- Formas de manejar múltiples tablas, escaneos de baja resolución y problemas comunes. +- Cómo **convertir texto de tabla de imagen** en un formato imprimible (o listo para base de datos). + +No se requiere documentación externa—todo lo que necesitas está aquí. + +## Requisitos previos + +- Java 17 o superior (el código usa el sistema de módulos moderno). +- Un archivo de licencia Aspose OCR for Java (`Aspose.OCR.Java.lic`). Si solo estás experimentando, una clave de evaluación temporal también funciona. +- Una imagen PNG que contenga una tabla clara (p. ej., `receipt_with_table.png`). +- Maven o Gradle para obtener la dependencia Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Consejo profesional:** Mantén el archivo de licencia junto a tu carpeta `src/main/resources` para que la ruta permanezca estable en todos los entornos. + +--- + +## Paso 1 – Inicializar el motor OCR para **extraer tablas de imagen** + +Antes de que el motor pueda hacer algo, necesita saber que eres un usuario legítimo. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Por qué es importante:* Sin una licencia válida el motor OCR funciona en modo de prueba, lo que puede truncar resultados o añadir marcas de agua no deseadas—haciendo que la extracción de tablas sea poco fiable. + +--- + +## Paso 2 – Habilitar la detección de tablas (**extract table from png**) + +La detección de tablas no está activada por defecto; debes activar la opción. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Activar esta bandera indica a Aspose OCR que trate los grupos de texto alineado como filas y columnas, que es exactamente lo que necesitas cuando deseas **extraer tablas de imagen** en archivos PNG. + +--- + +## Paso 3 – **Cargar imagen para OCR** y **reconocer imagen de recibo** + +Ahora realmente alimentamos la imagen al motor. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Si estás manejando un escenario de **reconocer imagen de recibo**, quizás quieras pre‑procesar la imagen (desinclinar, aumentar el contraste). Eso está fuera del alcance de esta guía rápida pero vale la pena explorar para escaneos ruidosos. + +--- + +## Paso 4 – Procesar el resultado OCR y **convertir texto de tabla de imagen** + +El objeto `OcrResult` puede contener una o más tablas. Iteremos sobre ellas e imprimamos cada celda. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Qué hace esto:** + +- Verifica si se encontraron tablas; si no, sugiere un ajuste de calidad. +- Para cada tabla, imprime filas con celdas separadas por tabulaciones, lo cual es un formato conveniente para importaciones CSV. +- La llamada `Cell::getText` es el corazón de **convertir texto de tabla de imagen** – extrae la cadena OCR cruda de cada celda. + +### Salida esperada + +Suponiendo que `receipt_with_table.png` contiene una tabla simple de 3 × 2, verás algo como: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Si la imagen tiene múltiples tablas, cada una se separará con una línea en blanco. + +--- + +## Paso 5 – Verificar las tablas extraídas y manejar casos límite + +### Problemas comunes + +| Problema | Por qué ocurre | Solución rápida | +|----------|----------------|-----------------| +| **No se detectaron tablas** | Imagen demasiado borrosa o con bajo contraste | Aplicar binarización (`ImageProcessing.applyThreshold`) antes de OCR | +| **Celdas fusionadas** | Las líneas de la tabla son tenues, OCR las trata como un bloque único | Incrementar `TableDetectionSensitivity` en `ocrEngine.getConfig()` | +| **Orden de columnas incorrecto** | Imagen inclinada que causa desalineación | Usar `ImageProcessing.deskew` o rotar la imagen 90° | + +### Qué hacer a continuación + +- **Exportar a CSV** – reemplaza `System.out.println(line);` con un `FileWriter` para persistir los datos. +- **Alimentar a una base de datos** – mapear cada fila a un POJO y usar JPA para la persistencia. +- **Combinar con otras APIs** – para el procesamiento de recibos también podrías extraer totales usando expresiones regulares sobre el texto OCR. + +--- + +## Ejemplo completo funcional (Listo para copiar‑pegar) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Ejecuta este programa, apunta a un PNG que contenga una tabla clara, y observa cómo la consola se llena con filas formateadas ordenadamente. + +--- + +## Conclusión + +Ahora tienes una solución sólida, de extremo a extremo, para **extraer tablas de imagen** usando Aspose OCR for Java. Desde la licencia hasta **cargar imagen para OCR**, habilitando **extract table from png**, y finalmente **convertir texto de tabla de imagen**, cada paso está cubierto con explicaciones y consejos prácticos. + +A continuación, intenta encadenar la salida a un archivo CSV, insertar las filas en una base de datos relacional, o combinar el paso OCR con una rutina de extracción de totales de recibos. El mismo patrón funciona para facturas, listas de precios y cualquier documento escaneado que oculte datos detrás de una cuadrícula. + +¿Tienes preguntas sobre cómo manejar recibos de baja resolución o escalar esto a procesamiento por lotes? ¡Deja un comentario abajo y feliz codificación! + +![Ejemplo de extracción de tablas de imagen](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/spanish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..86486baac --- /dev/null +++ b/ocr/spanish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Extrae texto de una imagen con Python usando Aspose OCR. Aprende un tutorial + paso a paso de OCR en Python con soporte mixto de latín‑cirílico. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: es +og_description: Extrae texto de una imagen con Python rápidamente. Esta guía muestra + cómo usar Aspose OCR en Python para imágenes mixtas latín‑cirílico. +og_title: Extraer texto de una imagen con Python – Guía completa de Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Extraer texto de una imagen con Python – Guía completa de Aspose OCR +url: /es/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraer texto de una imagen con Python – Guía completa de Aspose OCR + +¿Alguna vez necesitaste **extract text from image python** pero no estabas seguro de qué biblioteca podía manejar una mezcla de caracteres latinos y cirílicos? No eres el único—los desarrolladores se topan constantemente con ese problema al hacer OCR en capturas de pantalla multilingües. + +La buena noticia es que Aspose OCR para Python hace que todo el proceso sea casi indoloro. En este tutorial recorreremos la instalación del paquete, la aplicación de tu licencia, la carga de una imagen multilingüe y, finalmente, la extracción del texto reconocido en unas pocas líneas de código. Al final tendrás un script listo para ejecutar que podrás incorporar a cualquier proyecto. + +## Lo que aprenderás + +- Cómo configurar **Aspose OCR Python** en un entorno virtual. +- Por qué indicar los idiomas (como latín y cirílico) acelera la detección. +- El código exacto necesario para **extract text from image python** con una única llamada a función. +- Trampas comunes al trabajar con OCR multilingüe y cómo evitarlas. + +### Requisitos previos + +- Python 3.8 o superior instalado en tu máquina. +- Un archivo de licencia Aspose OCR (`Aspose.OCR.Java.lic`). La versión de prueba gratuita sirve para pruebas, pero un archivo con licencia elimina las marcas de agua. +- Una imagen PNG/JPEG que contenga tanto caracteres latinos como cirílicos (la llamaremos `mixed_latin_cyrillic.png`). + +Si tienes esos puntos marcados, estás listo para continuar—no se requieren frameworks adicionales ni dependencias pesadas. + +--- + +## Paso 1 – Extraer texto de una imagen con Python: Instalar Aspose OCR + +Primero lo primero: obtener la biblioteca desde PyPI y asegurarse de que tu entorno pueda localizar el archivo de licencia. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Consejo profesional:** Si encuentras un error de permisos, agrega `--user` al comando `pip install` o ejecuta la terminal como administrador. + +Ahora que el paquete está en tu sistema, lo importaremos y apuntaremos el motor a nuestra licencia. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +¿Por qué necesitamos una licencia en este punto? Sin ella el motor funciona en **modo de evaluación**, lo que limita el número de páginas y añade una marca de agua al resultado. Proveer la licencia de antemano garantiza que la llamada posterior a `recognize` devuelva texto limpio. + +--- + +## Paso 2 – Cargar tu imagen con contenido mixto latín‑cirílico + +A continuación, cargamos la imagen en memoria. Aspose OCR trabaja con su propia clase `Image`, que abstrae el formato subyacente del archivo. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Si te preguntas si funcionan otros formatos—sí, JPEG, BMP, TIFF e incluso PDF son compatibles. Simplemente cambia la extensión del archivo y el método `from_file` se encargará del resto. + +--- + +## Paso 3 – Sugerir idiomas para una detección más rápida (Opcional pero útil) + +Cuando sabes qué idiomas están presentes en la imagen, puedes darle al motor una pista. No es obligatorio, pero **reduce significativamente el tiempo de procesamiento** y mejora la precisión para OCR multilingüe. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +La lista de sugerencias acepta cualquier idioma soportado por Aspose OCR (p. ej., `"Arabic"`, `"Japanese"`). Si omites este paso, el motor intentará todos los idiomas incorporados, lo que puede ser más lento en lotes grandes. + +--- + +## Paso 4 – Ejecutar el motor OCR y extraer texto + +Ahora llega el momento de la verdad: reconocer realmente los caracteres. El método `recognize` devuelve un objeto `OcrResult` que contiene el texto plano, puntuaciones de confianza e incluso cajas delimitadoras si las necesitas más adelante. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Por qué funciona:** Internamente Aspose OCR combina un detector de texto basado en redes neuronales con clasificadores específicos por idioma. Al proporcionarle un objeto `Image`, evitas cualquier necesidad de preprocesamiento manual como la binarización. + +--- + +## Paso 5 – Ver el texto extraído + +Finalmente, imprimamos el resultado en la consola. En una aplicación real podrías escribirlo en un archivo, enviarlo a una base de datos o pasarlo a una API de traducción. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Al ejecutar el script, deberías ver algo como: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Ese resultado confirma que hemos **extract text from image python** con éxito, manejando tanto caracteres latinos como cirílicos en una sola pasada. + +--- + +## Ejemplo completo en funcionamiento + +A continuación tienes el script completo que puedes copiar y pegar en un archivo llamado `extract_ocr.py`. Sólo reemplaza las rutas de ejemplo por tus directorios reales. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Guarda el archivo, activa tu entorno virtual y ejecuta: + +```bash +python extract_ocr.py +``` + +Deberías ver el texto reconocido impreso, confirmando que el script funciona de extremo a extremo. + +--- + +## Preguntas frecuentes y casos límite + +**¿Qué pasa si la imagen está borrosa?** +Aspose OCR incluye desdoblamiento y reducción de ruido integrados, pero para fotos muy degradadas podrías pre‑procesar con OpenCV (p. ej., aplicar un desenfoque gaussiano y umbral). La clase `Image` también acepta un array NumPy, por lo que puedes encadenar filtros personalizados antes de llamar a `recognize`. + +**¿Puedo procesar una carpeta completa de imágenes?** +Absolutamente. Envuelve la lógica en un bucle `for`, cambia `from_file` para leer cada nombre de archivo y almacena los resultados en un diccionario. Recuerda respetar los límites de velocidad de la API si utilizas la versión en la nube. + +**¿Necesito una licencia separada para cada idioma?** +No, una única licencia Aspose OCR cubre todos los idiomas soportados. La lista `language_hints` es solo una pista de rendimiento. + +**¿Qué pasa con la entrada PDF?** +Reemplaza `Image.from_file` por `ocr.Image.from_file("document.pdf")`. El motor OCR rasterizará automáticamente cada página y devolverá el texto concatenado. + +--- + +## Conclusión + +Acabamos de mostrar una forma concisa y lista para producción de **extract text from image python** usando Aspose OCR. Los pasos—instalar, licenciar, cargar, sugerir idiomas, reconocer y mostrar—cubren todo lo que necesitas para obtener resultados fiables con contenido mixto latín‑cirílico. + +Desde aquí puedes explorar temas avanzados como **conversión de imagen a texto** para procesamiento por lotes, integrar la salida con un **tutorial de OCR en Python** sobre procesamiento de lenguaje natural, o experimentar con otras sugerencias de idioma para documentos multilingües. El cielo es el límite, y el código ya está en tus manos. + +¿Tienes otro caso de uso o encontraste un problema? Deja un comentario, comparte tu experiencia y sigamos la conversación. ¡Feliz codificación! + +![Ejemplo de extracción de texto de una imagen con python](/images/extract-text-from-image-python.png "Captura de pantalla que muestra la salida del OCR – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/spanish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..2a2b30951 --- /dev/null +++ b/ocr/spanish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Extrae texto de la imagen al instante usando Aspose OCR. Aprende a definir + la región de interés, cargar la imagen para OCR y extraer texto de una factura en + solo minutos. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: es +og_description: Extrae texto de una imagen usando Aspose OCR. Esta guía muestra cómo + definir la región de interés, cargar la imagen para OCR y extraer texto de una factura + de manera eficiente. +og_title: Extraer texto de una imagen con Aspose OCR – Tutorial completo +tags: +- ocr +- python +- image-processing +title: Extraer texto de una imagen con Aspose OCR – Guía paso a paso +url: /es/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraer texto de una imagen con Aspose OCR – Guía paso a paso + +¿Necesitas **extraer texto de una imagen** rápidamente? No estás solo: los desarrolladores se enfrentan constantemente a escaneos ruidosos, recibos y facturas. En este tutorial recorreremos una solución completa que no solo muestra cómo *extraer texto de una imagen*, sino que también demuestra cómo **definir una región de interés**, **cargar la imagen para OCR** y obtener la línea exacta que necesitas de una factura. + +Cubriremos todo, desde la instalación de la biblioteca Aspose OCR hasta el manejo de casos extremos como páginas rotadas. Al final, tendrás un script ejecutable que extrae el texto deseado en una sola llamada—sin necesidad de recortes manuales. + +## Qué aprenderás + +- Cómo **cargar la imagen para OCR** usando la API de Python de Aspose. +- La mejor manera de **definir una región de interés** (ROI) para procesar solo la parte de la imagen que importa. +- Cómo **extraer texto de campos de factura** sin procesar toda la página. +- Consejos para **procesar imágenes con OCR** de forma eficiente y evitar errores comunes. + +**Requisitos previos** – un entorno reciente de Python 3.9+, un archivo de licencia válido de Aspose OCR y una imagen (p. ej., un PNG de factura). No se requieren otras herramientas externas. + +--- + +## Paso 1 – Inicializar el motor OCR (Configuración primaria) + +Antes de poder **procesar imágenes con OCR**, necesitas una instancia del motor que contenga tu licencia. Este paso es crucial porque un motor sin licencia solo devolverá un conjunto limitado de resultados. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Por qué es importante*: El objeto `OcrEngine` es el corazón de la biblioteca; gestiona los modelos de idioma, el preprocesamiento de imágenes y la licencia. Configurar la licencia desde el principio garantiza la máxima precisión y la ausencia de marcas de agua. + +--- + +## Paso 2 – Cargar la imagen para OCR + +Ahora que el motor está listo, debemos **cargar la imagen para OCR**. Aspose admite muchos formatos (PNG, JPEG, TIFF), pero usar `Image.from_file` garantiza que la imagen se decodifique correctamente. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Consejo profesional**: Mantén tus archivos de imagen por debajo de 5 MB para un procesamiento más rápido. Los archivos más grandes pueden reducirse con `image.resize(width, height)` antes del OCR. + +--- + +## Paso 3 – Definir la región de interés (ROI) + +La mayoría de las facturas contienen mucho texto irrelevante—bloques de direcciones, pies de página, etc. Al **definir una región de interés** le indicamos al motor que solo examine donde se encuentra el importe o la fecha, lo que mejora la velocidad y la precisión. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Cómo funciona*: La clase `Rectangle` recorta la imagen de forma virtual; el motor OCR nunca ve píxeles fuera del rectángulo, por lo que el ruido fuera de la ROI se ignora. + +--- + +## Paso 4 – Reconocer texto dentro de la ROI + +Con el motor, la imagen y la ROI preparados, finalmente **extraemos texto de la imagen**. El método `recognize` devuelve un objeto `OcrResult` que contiene la cadena detectada y los puntajes de confianza. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Salida esperada** (ejemplo de una línea típica de total de factura): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Si la ROI está posicionada correctamente, verás solo la línea que necesitas—nada más. + +--- + +## Paso 5 – Ejemplo completo (Listo para copiar y pegar) + +A continuación tienes el script completo que une todos los pasos anteriores. Guárdalo como `extract_invoice_roi.py` y ejecútalo con `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Ejecuta el script y deberías ver la línea objetivo impresa en la consola. Si obtienes una cadena vacía, verifica las coordenadas de la ROI—a veces unos pocos píxeles de diferencia excluyen el texto por completo. + +--- + +## Paso 6 – Variaciones comunes y casos límite + +### a) Diferentes diseños de factura +Las facturas de distintos proveedores a menudo desplazan el recuadro del importe total. Para **procesar imágenes con OCR** en varios diseños, considera: + +- **Múltiples ROIs**: Ejecuta el motor secuencialmente con varios rectángulos y elige el resultado con mayor confianza. +- **Detección dinámica de ROI**: Usa una biblioteca ligera de procesamiento de imágenes (p. ej., OpenCV) para localizar primero la etiqueta “Total”, y luego calcula la ROI relativa a ella. + +### b) Imágenes rotadas o sesgadas +Si el escaneo está inclinado, llama a `image.rotate(angle)` antes del reconocimiento: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR también ofrece auto‑deskew, pero la rotación manual te brinda un control más preciso. + +### c) Caracteres no latinos +El modelo de idioma predeterminado es inglés. Para **extraer texto de una factura** escrita en otro idioma, establece el idioma antes del reconocimiento: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) PDFs grandes +Al trabajar con PDFs multipágina, extrae cada página como una imagen primero (Aspose PDF → Image) y luego aplica la misma lógica de ROI por página. + +--- + +## Paso 7 – Consejos de rendimiento y trucos profesionales + +- **Cachea el motor**: Crear `OcrEngine` repetidamente dentro de un bucle lo ralentiza. Instáncialo una sola vez y reutilízalo. +- **Procesamiento por lotes**: Si tienes decenas de facturas, envuelve la llamada OCR en un `ThreadPoolExecutor` para paralelizar el trabajo I/O‑bound. +- **Verificación de confianza**: `ocr_result.confidence` devuelve un número flotante entre 0 y 1. Rechaza resultados por debajo de 0.85 y recurre a una ROI más grande o a una revisión manual. + +> **Cuidado**: Definir la ROI demasiado pequeña puede cortar caracteres, generando una salida distorsionada. Siempre prueba con algunas facturas de muestra antes de escalar. + +--- + +## Conclusión + +Ahora dispones de un método sólido y listo para producción para **extraer texto de una imagen** usando Aspose OCR, con una forma de **definir una región de interés**, **cargar la imagen para OCR** y extraer de forma fiable **texto de campos de factura**. Al limitar el OCR a una ROI estrecha aumentas tanto la velocidad como la precisión—ideal para el procesamiento por lotes de miles de recibos. + +¿Listo para el siguiente paso? Prueba integrar este script en una API Flask para que tu aplicación web pueda subir una factura y devolver instantáneamente el importe total. O experimenta con múltiples ROIs para extraer la fecha, el número de factura y el nombre del proveedor en una sola pasada. Las posibilidades son infinitas, y con los fundamentos cubiertos aquí, estás bien preparado para afrontar cualquier desafío de OCR. + +¡Feliz codificación, y que tu texto extraído siempre sea limpio! + +![Diagrama de flujo que muestra cómo extraer texto de una imagen usando Aspose OCR](workflow.png){: .center-image alt="Diagrama de flujo para extraer texto de una imagen usando Aspose OCR"} + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/spanish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..5a68538c4 --- /dev/null +++ b/ocr/spanish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Extrae texto de una imagen usando OCR asíncrono de Python. Aprende cómo + convertir tif a texto, cargar la imagen para OCR y reconocer texto de la imagen + de manera eficiente. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: es +og_description: Extrae texto de una imagen usando OCR asíncrono en Python. Esta guía + muestra cómo convertir tif a texto, cargar la imagen para OCR y reconocer texto + de la imagen. +og_title: Extraer texto de una imagen con OCR asíncrono en Python – Guía completa +tags: +- OCR +- Python +- AsyncIO +title: Extraer texto de una imagen con OCR asíncrono en Python – Guía completa +url: /es/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extraer texto de una imagen con OCR async en Python – Guía completa + +¿Necesitas **extraer texto de una imagen** rápidamente? Con el OCR async de Python puedes hacerlo en solo unas pocas líneas de código. Ya sea que estés trabajando con un escaneo masivo .tif o con un puñado de JPEGs, este tutorial te muestra cómo convertir tif a texto, cargar la imagen para OCR y, finalmente, reconocer texto de la imagen sin bloquear tu bucle de eventos. + +La cuestión es que la mayoría de los desarrolladores recurre a una biblioteca sincrónica y luego observa una UI congelada mientras el motor procesa los píxeles. En esta guía cambiaremos el guion usando la API asíncrona de Aspose OCR Cloud, de modo que tu aplicación permanezca receptiva. Al final tendrás un script ejecutable que extrae texto de cualquier formato de imagen compatible, y comprenderás el porqué de cada paso. + +## Lo que aprenderás + +- Cómo configurar el Aspose OCR Cloud SDK para Python. +- El código exacto necesario para **cargar imagen para OCR** e iniciar una tarea de reconocimiento async. +- Consejos para manejar archivos .tif grandes y particularidades de licencias. +- Formas de **extraer texto de la imagen** de manera segura, incluso cuando el servicio devuelve errores. +- Un ejemplo completo, listo para copiar y pegar, que puedes incorporar a tu propio proyecto. + +> **Prerequisite**: Python 3.8+ y un archivo de licencia de Aspose OCR Cloud (`Aspose.OCR.Java.lic`). No se requieren otros paquetes de terceros. + +--- + +![extract text from image workflow](workflow.png){: .align-center alt="flujo de extracción de texto de imagen"} + +## Extraer texto de una imagen – Visión general del OCR async + +Antes de sumergirnos en el código, desglosaremos el flujo. Cuando llamas a `recognize_async` el SDK envía la imagen a la nube de Aspose, inicia un trabajo en segundo plano y te devuelve un objeto `Task`. Esperar esa tarea produce un `OcrResult` que contiene la representación en texto plano de la imagen. Como la llamada es asíncrona, puedes lanzar múltiples trabajos en paralelo—perfecto para el procesamiento por lotes de grandes archivos escaneados. + +### ¿Por qué usar async? + +- **E/S no bloqueante** – Tu bucle de eventos permanece libre para atender otras tareas (p. ej., servir solicitudes HTTP). +- **Escalabilidad** – Puedes iniciar decenas de reconocimientos a la vez; la nube realiza el trabajo pesado. +- **Responsividad** – Las aplicaciones UI no se congelarán mientras esperan al motor OCR. + +Ahora que el “por qué” está claro, veamos el **cómo**. + +## Convertir TIF a texto usando Aspose OCR + +Un obstáculo frecuente es asumir que todas las bibliotecas OCR soportan .tif de forma nativa. Aspose sí lo hace, pero aún necesitas proporcionarle un objeto `Image`. El SDK abstrae el formato, por lo que simplemente puedes apuntar a la ruta del archivo. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Explicación de las líneas clave** + +- `ocr_engine.license = ...` – Sin una licencia válida la nube devuelve un error 403. Asegúrate de que el archivo `.lic` sea accesible desde el directorio de trabajo de tu script. +- `ocr.Image.from_file(image_path)` – Este paso **carga imagen para OCR**; el SDK detecta automáticamente el formato, por lo que no tienes que convertir el .tif previamente. +- `recognize_async` – Devuelve una tarea compatible con corutinas. Puedes lanzar varias de estas en una llamada `gather` si tienes un lote. + +> **Pro tip**: Si procesas TIFFs de varios gigabytes, considera dividirlos en páginas primero. `Image.from_file` de Aspose puede aceptar un índice de página, lo que reduce la presión de memoria. + +## Reconocer texto de una imagen de forma asíncrona + +Veamos cómo llamarías a la función desde un script típico. El punto de entrada `asyncio.run` es la forma más sencilla de lanzar la corutina cuando no estás ya dentro de un bucle de eventos (p. ej., una herramienta CLI simple). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Qué esperar** + +Ejecutar el script contra un escaneo claro y de alta resolución normalmente produce una cadena multilínea que coincide con la página impresa. Si la imagen es ruidosa, Aspose aún intenta limpiarla, pero podrías ver caracteres distorsionados. En ese caso, considera pre‑procesar con OpenCV (p. ej., umbralizado) antes de pasar el archivo al motor OCR. + +### Manejo de errores de forma elegante + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Capturar `OcrException` garantiza que tu programa no se caiga cuando la nube devuelve un error—algo que suele sorprender a los recién llegados que olvidan los posibles problemas de red. + +## Cargar imagen para OCR – Consejos prácticos + +1. **Ruta de archivo vs. bytes** – El SDK acepta una ruta de archivo, pero también puedes cargar desde un objeto `bytes` si la imagen está en memoria (`ocr.Image.from_bytes`). Esto es útil cuando ya has obtenido el archivo de S3 o de una base de datos. +2. **Formatos soportados** – Además de .tif, Aspose maneja PDF, BMP, GIF e incluso TIFFs multipágina. Usa `Image.from_file("doc.pdf")` para OCR directamente sobre PDFs. +3. **Rendimiento** – Para trabajos por lotes, reutiliza la misma instancia de `OcrEngine`; crear un motor nuevo para cada archivo genera una sobrecarga innecesaria. + +## Ejemplo completo (todos los pasos en un solo script) + +A continuación tienes el script completo, listo para ejecutar, que incorpora licenciamiento, manejo de errores y un sencillo analizador de argumentos de línea de comandos. Copia‑pega, ajusta la ruta de la licencia y listo. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Salida esperada** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Si la imagen contiene un párrafo simple, la consola mostrará las mismas líneas, preservando los saltos de línea. Para TIFFs multipágina, el SDK concatena las páginas en orden. + +## Preguntas frecuentes (FAQ) + +**P: ¿Funciona esto con otros frameworks async como FastAPI?** +R: Absolutamente. Reemplaza la llamada `asyncio.run` por `await async_ocr(path)` dentro de tu endpoint, y FastAPI gestionará el bucle de eventos por ti. + +**P: ¿Qué pasa si necesito procesar cientos de archivos a la vez?** +R: Usa `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**P: ¿Puedo extraer texto de un PDF protegido con contraseña?** +R: No directamente. Primero deberás desbloquear el PDF (p. ej., con `pikepdf`) y luego pasar los bytes descifrados a `ocr.Image.from_bytes`. + +**P: ¿Cómo manejo idiomas distintos al inglés?** +R: Establece el idioma antes del reconocimiento: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose soporta más de 60 idiomas; consulta la documentación para los identificadores exactos. + +## Conclusión + +Ahora dispones de una solución robusta para **extraer texto de una imagen** que aprovecha `asyncio` de Python y la API asíncrona de Aspose OCR Cloud. Siguiendo los pasos anteriores puedes **convertir tif a texto**, **cargar imagen para OCR** y **reconocer texto de la imagen** de forma no bloqueante—ideal tanto para utilidades de línea de comandos como para servicios web de alto tráfico. + +¿Qué sigue? Prueba a procesar por lotes una carpeta de escaneos, experimenta con la configuración de idiomas o canaliza la salida OCR a una canalización NLP posterior. El cielo es el límite. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/spanish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..474ce5324 --- /dev/null +++ b/ocr/spanish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Extrae texto OCR rápidamente usando Aspose OCR. Aprende cómo mejorar + la precisión del OCR, cargar imágenes para OCR, preprocesar imágenes para OCR y + ejecutar un escaneo OCR en Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: es +og_description: extrae texto OCR rápidamente usando Aspose OCR. Domina cómo mejorar + la precisión del OCR, cargar imágenes OCR, preprocesar imágenes OCR y ejecutar un + escaneo OCR en Python. +og_title: extraer texto OCR – Guía completa con Aspose OCR +tags: +- OCR +- Python +- Aspose +title: extraer texto OCR – Guía completa con Aspose OCR +url: /es/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Guía completa con Aspose OCR + +¿Alguna vez necesitaste **extraer texto ocr** de un escaneo inclinado y no sabías por qué los resultados parecían un galimatías? No estás solo: muchos desarrolladores se topan con ese problema cuando la imagen está sesgada, ruidosa o simplemente tiene bajo contraste. La buena noticia es que unos pocos ajustes de configuración pueden convertir una foto desordenada en texto limpio y buscable. En este tutorial recorreremos un ejemplo completo, de extremo a extremo, que muestra cómo **mejorar la precisión del OCR**, cargar la imagen para OCR, pre‑procesar la imagen y, finalmente, ejecutar el escaneo OCR con Aspose OCR para Python. + +Al final de esta guía tendrás un script ejecutable que lee un JPEG escaneado, lo limpia automáticamente y muestra el texto extraído en la consola. Sin enlaces misteriosos de “ver la documentación”; todo lo que necesitas está aquí. + +## Lo que necesitarás + +- **Python 3.8+** (la última versión estable funciona mejor) +- **Aspose.OCR for Python via .NET** – instálalo con `pip install aspose-ocr` +- Un **archivo de licencia** (`Aspose.OCR.Java.lic`) si has adquirido uno (la prueba gratuita sirve para pruebas) +- Una imagen que quieras procesar (por ejemplo, `skewed_scanned_doc.jpg`) + +Eso es todo. Si tienes esos elementos, podemos pasar directamente al código. + +## Paso 1: Extraer texto OCR con el motor Aspose OCR + +Lo primero es iniciar el motor OCR y aplicar tu licencia. Piensa en el motor como el cerebro que leerá la imagen; sin licencia se negará a trabajar más allá de un límite de demostración muy pequeño. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Por qué es importante:** Aplicar la licencia al principio evita un fallo silencioso más adelante. Si omites este paso, el motor volverá a un modo restringido y solo obtendrás unos pocos caracteres—definitivamente no lo que esperas al intentar **extraer texto ocr**. + +## Paso 2: Mejorar la precisión del OCR con pre‑procesamiento + +Los escaneos torcidos o granulados son la pesadilla de cualquier proyecto OCR. Aspose te permite activar un conjunto de configuraciones útiles que automáticamente corrigen la inclinación, eliminan ruido y aumentan el contraste. Este es el corazón de **mejorar la precisión del OCR**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – rota la imagen de nuevo a la horizontal, lo cual es crucial cuando el documento original no estaba perfectamente plano. +- **remove_noise** – elimina manchas aleatorias que suelen aparecer en JPEGs de baja resolución. +- **enhance_contrast** – hace que el texto oscuro sea más oscuro y el fondo claro más claro, ayudando al motor a distinguir los caracteres. +- **binarization = "Otsu"** – un algoritmo clásico que decide el mejor umbral para la conversión a blanco y negro. + +> **Consejo profesional:** Si sabes que tus imágenes de origen ya están limpias, puedes desactivar estas opciones para acelerar el procesamiento. Pero para la mayoría de los escaneos del mundo real, dejarlas activas es la opción más segura. + +## Paso 3: Cargar imagen OCR para escanear + +Ahora que el motor está listo, necesitamos **cargar la imagen OCR**. El método `Image.from_file` de Aspose admite JPEG, PNG, TIFF y algunos formatos más. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Reemplaza `YOUR_DIRECTORY` con la ruta real en tu máquina. Si trabajas con un flujo de bytes en memoria (por ejemplo, desde una carga web), también puedes usar `ocr.Image.from_bytes(byte_data)`—el mismo motor lo manejará. + +> **Caso límite:** Los archivos TIFF grandes pueden consumir mucha memoria. Si obtienes un `MemoryError`, considera reducir la resolución de la imagen primero o usar `ocr_engine.config.max_image_size` para limitar las dimensiones. + +## Paso 4: Ejecutar escaneo OCR y obtener resultados + +Con la imagen cargada y el pre‑procesamiento activado, el paso final es **ejecutar el escaneo OCR**. Esta llamada realiza todo el trabajo pesado detrás de escena. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +El objeto `ocr_result` contiene varias propiedades útiles: + +- `ocr_result.text` – la cadena simple que te interesa. +- `ocr_result.confidence` – una puntuación numérica (0‑100) que indica la fiabilidad general. +- `ocr_result.words` – una lista de objetos palabra con coordenadas de cuadro delimitador, útil para resaltar. + +## Paso 5: Imprimir el texto extraído + +Finalmente, mostramos el resultado. En una aplicación real podrías escribir el texto a un archivo, una base de datos o enviarlo a un índice de búsqueda. Para este tutorial, un simple `print` basta. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Salida esperada** (ejemplo de una factura sencilla): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Si la confianza es baja (< 80), quizá quieras revisar las opciones de pre‑procesamiento o probar un método de binarización diferente como `"Sauvola"`. + +## Bonus: Visualizar la cadena de pre‑procesamiento (Opcional) + +A veces ayuda ver qué hizo el motor con la imagen. Aspose permite exportar el bitmap procesado: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Luego podrías incrustar la imagen en la documentación: + +diagrama del flujo de extracción de texto OCR que muestra los pasos de preprocesamiento + +> **Por qué hacerlo:** Cuando el resultado del OCR parece incorrecto, una rápida mirada a `processed_debug.png` suele revelar si la imagen sigue demasiado oscura, inclinada o con ruido residual. + +## Preguntas frecuentes y trampas comunes + +- **¿Qué pasa si mi documento tiene varias páginas?** + Aspose OCR funciona página por página. Recorre cada imagen de página y concatena `ocr_result.text`. + +- **¿Puedo reconocer idiomas distintos al inglés?** + Sí—establece `ocr_engine.config.language = "fra"` (o cualquier código ISO‑639‑2) antes de llamar a `recognize`. + +- **¿Hay un límite de tamaño de imagen?** + El motor limita a 10 MP por defecto. Aumenta `ocr_engine.config.max_image_size` si necesitas escaneos mayores, pero vigila el uso de memoria. + +- **¿Necesito un motor OCR separado para PDFs?** + Para PDFs puedes extraer cada página como imagen primero (usando Aspose.PDF) o usar la función OCR integrada para PDF. Los pasos mostrados aquí siguen siendo los mismos después de obtener una imagen. + +## Recapitulación + +Hemos cubierto cómo **extraer texto ocr** usando Aspose OCR para Python, desde licenciar el motor hasta ajustar configuraciones que **mejoran la precisión del OCR**, cargar el archivo fuente y finalmente **ejecutar el escaneo OCR** para obtener texto limpio. El script completo está listo para copiar‑pegar, y ahora comprendes por qué cada bandera de configuración es importante. + +## ¿Qué sigue? + +- **Experimenta con diferentes métodos de binarización** (`"Sauvola"`, `"Bradley"`). Algunas tipografías responden mejor a umbrales adaptativos. +- **Integra con un motor de búsqueda** (p. ej., Elasticsearch) usando la puntuación de confianza para ordenar resultados. +- **Combina con bibliotecas de post‑procesamiento OCR** como `pyspellchecker` para corregir errores comunes de reconocimiento. +- **Explora el procesamiento por lotes** para cientos de escaneos—encapsula los pasos en una función y pásale una carpeta de imágenes. + +Siéntete libre de modificar el código, añadir tus propios logs o incorporarlo a una canalización de gestión documental más grande. Si encuentras algún problema, deja un comentario abajo—¡feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/spanish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..30340c1b5 --- /dev/null +++ b/ocr/spanish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Cómo hacer OCR a PDF usando Aspose OCR Java. Aprende cómo ejecutar OCR + en PDF, reconocer texto en PDF, convertir PDF a JSON y cargar PDF para OCR en solo + unas pocas líneas de código. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: es +og_description: Cómo hacer OCR de PDF usando Aspose OCR Java. Esta guía muestra cómo + ejecutar OCR en PDF, reconocer texto en PDF, convertir PDF a JSON y cargar PDF para + OCR rápidamente. +og_title: Cómo hacer OCR a PDF con Aspose OCR – Tutorial completo de programación +tags: +- Aspose OCR +- Java +- PDF processing +title: Cómo hacer OCR a PDF con Aspose OCR – Guía completa paso a paso +url: /es/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo hacer OCR a PDF con Aspose OCR – Guía completa paso a paso + +¿Alguna vez te has preguntado **cómo hacer OCR a PDF** sin luchar con herramientas de línea de comandos o pagar por costosos SaaS? No eres el único. En muchos proyectos—automatización de facturas, archivado de contratos escaneados o creación de una base de conocimientos searchable—te encontrarás con la necesidad de extraer texto de PDFs de forma rápida y fiable. + +¿La buena noticia? Con Aspose OCR para Java puedes **run OCR on PDF**, reconocer texto en páginas PDF, **convert PDF to JSON**, e incluso **load PDF for OCR** en unas pocas líneas. En este tutorial recorreremos todo el flujo de trabajo, explicaremos por qué cada paso es importante y te daremos un ejemplo de código listo para ejecutar que puedes incorporar a tu propio proyecto. + +## Qué aprenderás + +- Cómo configurar el motor Aspose OCR y aplicar tu licencia. +- La forma exacta de **load PDF for OCR** y pasarla al recognizer. +- Cómo **recognize text PDF** en todas las páginas con una sola llamada. +- Exportar el resultado completo de OCR a un archivo **JSON** (perfecto para APIs downstream) y una página individual a **XML**. +- Consejos, trampas y variaciones que podrías necesitar al trabajar con PDFs multipágina o paquetes de idioma personalizados. + +> **Prerequisites** – Necesitas Java 8 o superior, un archivo de licencia válido de Aspose OCR para Java (`Aspose.OCR.Java.lic`) y el JAR de Aspose OCR en tu classpath. No se requieren otras bibliotecas externas. + +--- + +## How to OCR PDF – Initialize Aspose OCR Engine + +Lo primero que debes hacer es crear una instancia de `OcrEngine` y adjuntar tu licencia. Este paso desbloquea el conjunto completo de funciones y elimina la marca de agua de evaluación. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Why this matters:** +Sin una licencia, Aspose OCR se ejecuta en modo “trial” limitado que restringe el número de páginas y añade una marca de agua al resultado. Aplicar la licencia al inicio garantiza que el resto del pipeline funcione sin restricciones inesperadas. + +--- + +## Run OCR on PDF – Load Document and Recognize Text + +Ahora **load PDF for OCR**. Aspose OCR trata los PDFs como un tipo especial `PdfDocument`, que internamente extrae cada página como una imagen antes de pasarla al recognizer. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**What’s happening under the hood?** +`recognizeDocument` itera sobre cada página, la rasteriza al DPI óptimo y luego ejecuta el motor OCR. El resultado es un arreglo `OcrPage` donde cada elemento contiene el texto detectado, puntuaciones de confianza e información de layout. Este enfoque es mucho más fiable que alimentar bytes de PDF crudos a una biblioteca OCR genérica. + +--- + +## Convert OCR Result to JSON – Export Full Report + +La mayoría de los sistemas downstream prefieren JSON porque es fácil de deserializar en Java, JavaScript, Python o incluso PowerShell. Aspose OCR incluye un helper `JsonExport` que serializa todo el arreglo `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**When would you use this?** +Si necesitas alimentar la salida OCR a un índice de búsqueda (Elasticsearch, Solr) o a un data‑pipeline, el formato JSON te brinda una representación estructurada de cada página, línea y palabra, completa con valores de confianza. + +--- + +## Export First Page to XML – Save Individual Page + +A veces solo te importa una página—quizá la primera contiene un título o un número de factura. La clase `XmlExport` te permite volcar un solo `OcrPage` a un archivo XML ordenado. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Why XML?** +Sistemas heredados o ciertos flujos de trabajo empresariales aún dependen de esquemas XML para la ingestión. El archivo generado sigue el propio esquema de Aspose, lo que hace que la validación sea sencilla. + +--- + +## Verify the Output – Check JSON and XML Files + +Después de que el programa termine, deberías ver dos archivos en `YOUR_DIRECTORY`: + +- `report_ocr.json` – Contiene un arreglo de objetos página. Un fragmento rápido podría verse así: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Contiene la misma información para la página 1, envuelta en etiquetas ``. + +Ábrelos en cualquier editor; verás las cadenas OCR crudas, puntuaciones de confianza y coordenadas de bounding‑box. Si el JSON aparece vacío, verifica que el PDF de entrada realmente contenga contenido rasterizado (imágenes escaneadas) y no texto seleccionable—Aspose OCR solo funciona sobre imágenes. + +--- + +## Common Pitfalls & Pro Tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Empty JSON** | PDF contains native text, not images. | Use `PdfDocument.fromFile(..., true)` to force rasterization, or pre‑convert pages to images. | +| **Low confidence** | Source PDF is low‑resolution or heavily compressed. | Increase DPI by calling `ocrEngine.getImageProcessingOptions().setDpi(300)` before `recognizeDocument`. | +| **License not found** | Wrong path or missing file. | Use an absolute path or place the `.lic` file on the classpath and call `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory on huge PDFs** | All pages are loaded into memory at once. | Process pages in batches: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Extending the Example + +- **Run OCR on PDF with a specific language** – set `ocrEngine.getLanguage().setLanguage(Language.English)` or load a custom language pack. +- **Export each page to separate JSON files** – iterate over `ocrPages` and call `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrate with a search engine** – feed the JSON into Elasticsearch’s `attachment` processor for full‑text search. + +--- + +## Conclusion + +Ahora tienes una solución completa y lista para producción sobre **how to OCR PDF** usando Aspose OCR para Java. Al inicializar el motor, cargar el PDF, ejecutar OCR y exportar tanto **JSON** como **XML**, puedes integrar OCR en cualquier flujo de trabajo backend—ya sea que necesites **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, o simplemente **load PDF for OCR**. + +Pruébalo, ajusta el DPI o la configuración de idioma, y observa cómo tus PDFs antes opacos se convierten en activos searchable. ¿Quieres ir más allá? Intenta indexar el JSON en Elasticsearch o post‑procesar el XML con XSLT para generar reportes personalizados. + +¡Feliz codificación, y que tus PDFs siempre sean legibles! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/spanish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..48249fe09 --- /dev/null +++ b/ocr/spanish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'cómo ejecutar OCR rápidamente: aprende a extraer texto de una imagen + y reconocer texto de un formulario usando Aspose OCR Java. Pasos simples para leer + una imagen para OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: es +og_description: 'cómo ejecutar OCR rápidamente: aprende a extraer texto de una imagen + y reconocer texto de un formulario usando Aspose OCR Java. Pasos simples para leer + una imagen para OCR.' +og_title: cómo ejecutar OCR en un formulario – extraer texto de una imagen +tags: +- ocr +- java +- image-processing +title: cómo ejecutar OCR en un formulario – extraer texto de una imagen +url: /es/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# cómo ejecutar ocr en un formulario – extraer texto de una imagen + +¿Alguna vez te has preguntado **cómo ejecutar ocr** en un documento escaneado sin pasar horas jugando con bibliotecas poco conocidas? No estás solo. En muchos proyectos—ya sea digitalizando facturas, archivando contratos o extrayendo datos de formularios manuscritos—poder **extraer texto de una imagen** es un problema diario. + +Esto es lo que ocurre: Aspose OCR for Java hace que toda la canalización sea casi indolora. En este tutorial repasaremos cada línea de código que necesitas para **reconocer texto de formularios** archivos, explicaremos por qué cada paso es importante y te mostraremos cómo **leer la imagen para ocr** resultados con puntuaciones de confianza. Al final tendrás una clase Java lista‑para‑ejecutar que podrás insertar en cualquier proyecto Maven o Gradle. + +## Lo que aprenderás + +- Configura el motor Aspose OCR y aplica tu licencia. +- Carga un JPEG, PNG o TIFF en memoria. +- Ejecuta OCR e itera sobre cada línea de texto reconocido. +- Detecta líneas de baja confianza para revisión manual. +- Amplía el ejemplo a PDFs de varias páginas o diferentes formatos de imagen. + +No se requiere experiencia previa con Aspose, solo un entorno básico de desarrollo Java (JDK 11+ y cualquier IDE que prefieras). Vamos a comenzar. + +![how to run ocr example](/images/ocr-demo.png){alt="how to run ocr on a scanned form example"} + +## Paso 1: Inicializar el motor OCR – **cómo ejecutar ocr** + +Lo primero que debes hacer antes de cualquier operación OCR es crear una instancia de `OcrEngine` y adjuntar una licencia válida. Sin una licencia, la biblioteca se ejecuta en modo demo, lo que limita la cantidad de páginas que puedes procesar. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Por qué es importante:** +El `OcrEngine` contiene toda la configuración—idioma, modo de detección y ajustes de rendimiento. Al establecer la licencia al principio evitas el cambio silencioso al modo de prueba que de otro modo truncaría tu salida. + +## Paso 2: Cargar la imagen – **extraer texto de una imagen** + +A continuación necesitamos un objeto `Image` que apunte al archivo que deseas escanear. Aspose admite una amplia gama de formatos, por lo que puedes proporcionar una página PDF escaneada que ya hayas convertido a PNG, un JPEG sin procesar o incluso un TIFF de varias páginas. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Por qué es importante:** +Cargar la imagen como un objeto `Image` brinda al motor acceso a los datos de píxeles, información DPI y profundidad de color—todos los cuales afectan la precisión del OCR. Si omites este paso y pasas un arreglo de bytes sin procesar, perderás esas pistas útiles. + +## Paso 3: Ejecutar OCR – **reconocer texto de formularios** + +Ahora la parte divertida: reconocer realmente los caracteres. El método `recognize` devuelve un `RecognitionResult` que contiene una colección de objetos `Line`, cada uno con su propia puntuación de confianza. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Por qué es importante:** +Llamar a `recognize` desencadena una cascada de procesos internos—pre‑procesamiento (desviación, eliminación de ruido), segmentación, clasificación de caracteres y post‑procesamiento (corrección ortográfica, modelo de lenguaje). El objeto de resultado abstrae toda esa complejidad. + +## Paso 4: Procesar los resultados – salida de **leer la imagen para ocr** + +Una vez que tienes el `RecognitionResult`, puedes iterar a través de cada línea, decidir qué conservar automáticamente y marcar cualquier cosa que parezca inestable. Un umbral de confianza del 85 % es un buen punto de partida para la mayoría de los formularios impresos. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Salida esperada (ejemplo):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +En el ejemplo anterior el motor no estaba seguro del último dígito del importe total, por lo que imprimimos una advertencia. Puedes canalizar esas líneas a una interfaz para corrección manual o registrarlas para revisarlas más tarde. + +### Casos límite y consejos + +- **Múltiples páginas:** Si tienes un PDF de varias páginas, recorre cada índice de página y llama a `Image.fromPdf(pdfPath, pageIndex)`. +- **Diferentes idiomas:** Configura `engine.getLanguage().setLanguage(Language.Spanish);` antes de llamar a `recognize`. +- **Calidad de la imagen:** Los escaneos de baja resolución (< 150 DPI) a menudo generan una confianza inferior al 80 %. Aumentar la escala con `image.resize(300, 300)` puede ayudar, pero la mejor solución es un escaneo de mayor calidad. +- **Rendimiento:** Reutilizar la misma instancia de `OcrEngine` para muchas imágenes reduce la sobrecarga en comparación con crear una nueva cada vez. + +## Preguntas frecuentes + +**¿Puedo ejecutar esto en un servidor sin interfaz gráfica?** +Absolutamente. La biblioteca no tiene dependencias de GUI, por lo que funciona sin problemas dentro de contenedores Docker o pipelines de CI. + +**¿Qué pasa si aún no tengo una licencia?** +Aún puedes llamar a `engine.recognize`, pero el modo demo se detendrá después de las primeras 2 páginas y añadirá una marca de agua a la salida. Es perfecto para pruebas rápidas. + +**¿Hay alguna forma de extraer datos estructurados (p. ej., tablas)?** +Aspose OCR proporciona una clase `TableRecognizer`, pero eso está fuera del alcance de esta guía para principiantes. Una vez que domines lo básico, revisa la documentación oficial de `TableRecognizer`. + +## Resumiendo todo – **cómo ejecutar ocr** en pocas palabras + +Hemos cubierto todo lo que necesitas para **cómo ejecutar ocr** en un formulario escaneado: inicializar el motor, cargar la imagen, ejecutar el reconocimiento y manejar los resultados de forma inteligente. Con solo unas pocas líneas de Java, puedes **extraer texto de una imagen** archivos, **reconocer texto de formularios** documentos y **leer la imagen para ocr** salida con puntuaciones de confianza que te permiten decidir cuándo se requiere revisión humana. + +¿Próximos pasos? Prueba cambiar el JPEG por un TIFF de varias páginas, experimenta con diferentes umbrales de confianza o integra la salida en una base de datos para la entrada de datos automatizada. Las posibilidades son tan amplias como los documentos que necesitas procesar. + +¿Tienes más preguntas sobre OCR, preprocesamiento de imágenes o licencias? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/spanish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..57fbd3a2c --- /dev/null +++ b/ocr/spanish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-05-03 +description: Cómo usar OCR para extraer texto de archivos PDF en Java. Aprende a reconocer + texto de PDF, convertir PDF a texto y manejar eficientemente PDF de varias páginas + con OCR. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: es +og_description: Cómo usar OCR para extraer texto de archivos PDF en Java. Esta guía + muestra cómo reconocer texto de PDF, convertir PDF a texto y procesar PDF multipágina + con OCR. +og_title: Cómo usar OCR en Java – Extraer texto de PDFs multipágina +tags: +- ocr +- java +- pdf +- aspose +title: Cómo usar OCR en Java – Extraer texto de PDFs de varias páginas +url: /es/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo usar OCR en Java – Extraer texto de PDFs de varias páginas + +**Cómo usar OCR** en un proyecto Java? Si alguna vez necesitaste extraer texto de archivos PDF sin depender de la capa de texto interna del PDF, estás en el lugar correcto. Este tutorial te guía a través de una solución completa y ejecutable que **recognizes text from PDF**, converts PDF to text, and even handles an **OCR multi page PDF** with a single call. + +Imagina que recibes un contrato escaneado — un TIFF de 12 páginas dentro de un PDF. Quieres el texto buscable para indexar, pero el archivo no tiene caracteres incrustados. No hay problema; te mostraremos exactamente cómo hacerlo, paso a paso. + +> **Lo que obtendrás:** un fragmento de Java listo para ejecutar usando Aspose.OCR, explicaciones de por qué cada línea es importante, consejos para errores comunes y una salida de ejemplo que puedes verificar al instante. + +--- + +## Lo que necesitarás + +* **Java 17** (o cualquier JDK reciente) – el código funciona con versiones anteriores también, pero 17 es el punto óptimo. +* **Aspose OCR for Java** library – puedes descargar el JAR desde el sitio de Aspose o añadirlo mediante Maven/Gradle. +* Un **PDF de varias páginas** (o TIFF) que deseas procesar. En nuestros ejemplos usaremos `contract_multipage.pdf` ubicado en una carpeta llamada `YOUR_DIRECTORY`. +* Un archivo de licencia **Aspose OCR** válido (`Aspose.OCR.Java.lic`). Sin él, la biblioteca funciona en modo de evaluación, lo cual está bien para una prueba rápida pero añadirá una marca de agua. + +Eso es todo—sin motores OCR adicionales, sin binarios nativos, solo un único JAR y una licencia. + +![ejemplo de cómo usar OCR](https://example.com/ocr-demo.png "Cómo usar OCR en Java – visión general visual del proceso") + +*Texto alternativo de la imagen: cómo usar OCR en Java – visión general visual de la carga, reconocimiento y salida de texto.* + +## Paso 1: Configurar el motor OCR – **Cómo usar OCR** correctamente + +Lo primero que debes hacer es crear una instancia del motor OCR y aplicar tu licencia. Sin la licencia, el motor seguirá funcionando, pero verás una marca de agua de prueba en la salida. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Por qué es importante:** +El `OcrEngine` es el objeto central que orquesta el análisis de imágenes, la detección de idioma y la extracción de texto. Establecer la licencia al principio evita que el motor vuelva al modo de prueba más adelante, lo que podría afectar la precisión. + +## Paso 2: Cargar el documento – **Extraer texto de PDF** eficientemente + +Aspose OCR puede leer directamente contenedores PDF y TIFF. Aquí cargamos un PDF de varias páginas que contiene imágenes escaneadas. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Por qué es importante:** +`PdfDocument.fromFile` analiza el contenedor y te brinda acceso a cada página como una imagen. Esta abstracción permite que el motor OCR trate cada página de forma uniforme, sin importar el formato original. + +**Consejo:** Si tu archivo de origen es un TIFF, la misma llamada funciona—Aspose detecta automáticamente el formato. No se requiere código adicional. + +## Paso 3: Reconocer todas las páginas de una vez – **Reconocer texto de PDF** sin problemas + +En lugar de iterar sobre las páginas tú mismo, puedes pedir al motor que procese todo el documento en una sola llamada. Esta es la forma más eficiente de **convertir PDF a texto** cuando se trata de un **PDF de varias páginas con OCR**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Por qué es importante:** +Llamar a `recognizeDocument` una sola vez reduce la sobrecarga causada por inicializar repetidamente el motor. También garantiza configuraciones de idioma consistentes entre páginas, lo cual es crucial para documentos legales que a menudo combinan fuentes. + +## Paso 4: Exportar el texto reconocido – **Convertir PDF a texto** para indexación + +Ahora que cada página ha sido procesada, simplemente iteramos sobre los resultados e imprimimos las cadenas extraídas. También podrías escribirlas en un archivo, una base de datos o alimentarlas a un índice de búsqueda. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Salida esperada (truncada):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Si el PDF contiene 12 páginas, verás doce secciones `--- Page X ---`, cada una seguida del texto extraído por OCR. + +## Consejos avanzados para un **PDF de varias páginas con OCR** + +### 1. Ajustar la configuración de idioma + +Por defecto Aspose intenta detectar automáticamente el idioma, pero puedes acelerar el proceso especificándolo: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Controlar el pre‑procesamiento de imágenes + +Los contratos escaneados a menudo tienen ruido. Puedes habilitar la corrección de inclinación y la binarización: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Manejar archivos grandes de forma eficiente + +Si estás procesando PDFs de más de 100 MB, considera transmitir las páginas en lugar de cargar todo el documento de una vez: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Este patrón reduce la presión de memoria y es útil para trabajos por lotes. + +### 4. Exportar a formatos estructurados + +Más allá del texto plano, puedes exportar a JSON o XML para procesamiento posterior: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +## Errores comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **Salida en blanco** | Licencia no aplicada o ruta del archivo incorrecta. | Verifica la ruta de `setLicense` y confirma que el archivo exista. | +| **Caracteres basura** | Configuración de idioma incorrecta o fuente de baja resolución. | Establece el `Language` correcto y asegura que las imágenes de origen sean ≥300 dpi. | +| **Errores de falta de memoria** | Cargar un PDF enorme de una sola vez. | Utiliza el enfoque de transmisión mostrado arriba. | +| **Reconocimiento parcial de página** | El PDF contiene capas raster/vector mixtas. | Aplana el PDF primero: `pdfDoc.flatten();` antes de OCR. | + +## Recapitulación – Lo que cubrimos + +* **How to use OCR** con Aspose en Java. +* **Extract text from PDF** (o TIFF) en una sola llamada. +* **Recognize text from PDF** en todas las páginas sin bucles manuales. +* **Convert PDF to Text** y exportarlo de forma limpia. +* Consejos para manejar un **OCR multi page PDF**, incluyendo ajustes de idioma y transmisión amigable con la memoria. + +Ahora tienes un fragmento completo y listo para producción que puedes insertar en cualquier proyecto Java. Siéntete libre de ajustar las opciones de procesamiento de imágenes, cambiar el destino de salida o integrar el resultado en un índice de búsqueda. + +## Próximos pasos + +* **Explore Aspose OCR’s advanced features** – como reconocimiento de escritura a mano o cumplimiento PDF/A. +* **Combine OCR with PDF manipulation** (p. ej., añadir una capa de texto oculta al PDF para PDFs buscables). +* **Automate batch processing** leyendo una carpeta de PDFs y escribiendo cada resultado en un archivo `.txt` correspondiente. + +Si encuentras algún problema, los foros de Aspose son un excelente lugar para pedir ayuda, y la referencia de la API proporciona detalles exhaustivos sobre cada método usado aquí. + +¡Feliz codificación, y disfruta convirtiendo esas escaneos rebeldes en texto buscable! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/spanish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..775cf79bb --- /dev/null +++ b/ocr/spanish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-05-03 +description: Leer archivo binario en Java para cargar una licencia Aspose OCR. Aprende + el uso de FileInputStream, el manejo de datos binarios y consejos prácticos en esta + guía paso a paso. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: es +og_description: Leer archivo binario en Java para cargar una licencia Aspose OCR. + Sigue esta guía completa para dominar FileInputStream y el manejo de datos binarios + en Java. +og_title: Leer archivo binario Java – Cargar bytes de licencia para Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Leer archivo binario en Java – Cargar bytes de licencia para Aspose OCR +url: /es/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Leer archivo binario Java – Cargar bytes de licencia para Aspose OCR + +¿Alguna vez necesitaste **leer archivo binario Java** al trabajar con una licencia para una biblioteca de terceros? No estás solo. La mayoría de los desarrolladores Java se topan con este problema cuando intentan cargar un archivo `.lic` en un motor OCR, y los trucos habituales para archivos de texto simplemente no sirven. + +En este tutorial recorreremos un ejemplo completo y ejecutable que muestra exactamente cómo abrir un archivo de licencia binario, extraer sus bytes a la memoria y pasar esos bytes a Aspose OCR for Java. En el camino verás por qué `FileInputStream` es la herramienta adecuada, cómo manejar posibles `IOException`s y algunos consejos profesionales que quizás no encuentres en la documentación oficial. + +Al final de la guía podrás **leer archivo binario Java**, crear un objeto `License` y asignarlo a un `OcrEngine` sin sudar. + +## Qué cubre esta guía + +- Requisitos previos: Java 17+, Maven (o Gradle) y la biblioteca Aspose OCR for Java. +- Código paso a paso que lee un archivo binario `.lic` usando `FileInputStream`. +- Explicación de cada línea para que comprendas el *por qué* detrás del *cómo*. +- Manejo de casos límite (archivo faltante, bytes corruptos) y consejos prácticos de depuración. +- Un fragmento final, autónomo, que puedes copiar y pegar en tu IDE y ejecutar de inmediato. + +Si alguna vez te has preguntado si necesitas una API especial para leer archivos de licencia, la respuesta es un rotundo **no**, solo el buen y viejo I/O binario. Vamos a sumergirnos. + +## Paso 1: Leer archivo binario Java con FileInputStream + +Lo primero que necesitamos es una forma fiable de extraer bytes crudos del archivo de licencia en disco. En Java, `FileInputStream` es la herramienta adecuada para eso. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Por qué funciona:** `Files.readAllBytes` crea internamente un `FileInputStream`, lee todo el flujo y lo cierra por ti. Es seguro, conciso y evita el clásico error de “olvidar cerrar el stream”. Si prefieres el patrón clásico, puedes reemplazarlo con un bloque try‑with‑resources usando `FileInputStream` directamente. + +### Consejo pro + +Si el archivo de licencia es enorme (poco probable, pero posible), considera leerlo en fragmentos en lugar de cargarlo todo de una vez. Para la mayoría de los archivos de licencia OCR—generalmente menos de unos pocos kilobytes—el enfoque de una sola lectura es perfectamente válido. + +## Paso 2: Crear objeto License para Aspose OCR + +Ahora que tenemos los bytes crudos, necesitamos convertirlos en una instancia `License` compatible con Aspose. La biblioteca proporciona una clase `License` que acepta un arreglo de bytes. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Por qué es importante:** Al pasar los bytes directamente, evitas problemas relacionados con rutas (como confusiones de rutas relativas al directorio de trabajo) y mantienes tu despliegue portátil—simplemente incluye el archivo `.lic` donde sea que tu aplicación se ejecute. + +## Paso 3: Asignar licencia al motor OCR + +Con el objeto `License` listo, el paso final es adjuntarlo a un `OcrEngine`. Este paso garantiza que el componente OCR se ejecute en modo con licencia en lugar del sandbox de evaluación. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Nota:** Algunas versiones antiguas de Aspose exponen un campo público `license` en lugar de un setter. Ajusta el código en consecuencia (`ocrEngine.license = license;`) si encuentras un error de compilación. + +## Paso 4: Verificar que la licencia se cargó correctamente (Opcional pero útil) + +Una rápida comprobación de sanidad ahorra horas de depuración más adelante. La clase `License` no lanza excepción al cargar correctamente, pero puedes intentar una operación OCR inocua para confirmar. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Si ves el mensaje “License applied successfully”, todo está listo. Si no, verifica la ruta del archivo, la integridad de los bytes y que estés usando la versión correcta de Aspose. + +## Ejemplo completo y funcional + +Unir todas las piezas produce un programa compacto, listo para copiar y pegar. Siéntete libre de colocar esto en un archivo `Main.java` y ejecutarlo. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Salida esperada (asumiendo que la imagen de prueba existe):** + +``` +License applied successfully – OCR engine is ready. +``` + +Si el archivo de licencia falta o está corrupto, verás un mensaje de error claro como: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Errores comunes y cómo evitarlos + +- **Confusión de rutas:** Las rutas relativas se resuelven respecto al directorio de trabajo de la JVM, no a la ubicación del archivo fuente. Usa una ruta absoluta o coloca el archivo `.lic` junto al JAR y refiérelo con `getResourceAsStream`. +- **Orden de bytes incorrecto:** Nunca intentes leer un archivo binario con un `Reader` (orientado a caracteres). Corruptará los datos. Mantente con APIs basadas en `FileInputStream`. +- **Desajuste de versión:** Algunas versiones antiguas de Aspose esperan `license.setLicense("path/to/file")` en lugar de `setLicenseBytes`. Revisa las notas de la versión de la biblioteca si encuentras un `NoSuchMethodError`. +- **Olvidar cerrar streams:** Si vuelves al enfoque clásico con `FileInputStream`, envuélvelo en un bloque try‑with‑resources para garantizar su cierre. + +## Conclusión + +Ahora sabes cómo **leer archivo binario Java** para cargar una licencia Aspose OCR, crear un objeto `License` y conectarlo a un `OcrEngine`. El proceso depende del manejo adecuado de datos binarios con `FileInputStream` (o el más moderno `Files.readAllBytes`) y unas pocas llamadas de API sencillas. + +Desde aquí puedes pasar a tareas reales de OCR—extraer texto de PDFs, imágenes o documentos escaneados—con la confianza de que la capa de licenciamiento no te detendrá. Si tienes curiosidad por temas relacionados, revisa los tutoriales sobre **Java FileInputStream**, **binary data handling Java** y **read license file Java** para otras bibliotecas. + +¡Feliz codificación, y que tus resultados OCR sean cristalinos! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/spanish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/spanish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..cda8fd77e --- /dev/null +++ b/ocr/spanish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Aprende a reconocer texto a partir de una imagen y convertir la imagen + a texto usando Aspose OCR para Java. Incluye consejos para mejorar la precisión + del OCR y ejecutar OCR en archivos PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: es +og_description: Guía paso a paso para reconocer texto a partir de una imagen usando + Aspose OCR para Java. Aprende a convertir imágenes a texto, mejorar la precisión + del OCR y ejecutar OCR en PNG. +og_title: reconocer texto de una imagen con Aspose OCR – Tutorial de Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Reconocer texto de una imagen con Aspose OCR – Guía completa de Java +url: /es/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# reconocer texto de imagen con Aspose OCR – Guía completa de Java + +¿Alguna vez necesitaste **reconocer texto de imagen** pero no estabas seguro de qué biblioteca te daría resultados fiables? No estás solo—muchos desarrolladores se topan con ese obstáculo cuando intentan extraer datos de PDFs escaneados, recibos o informes de laboratorio. La buena noticia es que Aspose OCR para Java hace que todo el proceso sea pan comido, y puedes incluso **convertir imagen a texto** con solo unas cuantas líneas. + +En este tutorial repasaremos todo lo que necesitas saber: desde cargar una imagen para OCR, ajustar configuraciones para **mejorar la precisión de OCR**, hasta finalmente **ejecutar OCR en PNG** y imprimir el texto extraído. Sin rodeos, solo un ejemplo práctico y ejecutable que puedes incorporar a tu proyecto hoy. + +--- + +## Lo que necesitarás + +Antes de sumergirnos, asegúrate de tener lo siguiente en tu máquina: + +| Requisito | Razón | +|--------------|--------| +| Java 17 (or newer) | Aspose OCR está dirigido a Java 8+, pero el JDK más reciente ofrece mejor rendimiento. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | El motor central que realiza el trabajo pesado. | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | Habilita el conjunto completo de funciones; de lo contrario obtendrás una marca de agua de prueba. | +| An image file (PNG, JPEG, TIFF, etc.) containing clear text | Usaremos `lab_report.png` como ejemplo concreto. | +| A custom dictionary (optional) | Mejora el reconocimiento de términos específicos del dominio como “hemoglobin”. | + +Si alguno de estos te suena desconocido, no te alarmes—instalar un JAR y crear un archivo de texto simple son tareas triviales que cubriremos en breve. + +--- + +## Paso 1 – Configurar el proyecto e importar dependencias + +Primero, crea un nuevo proyecto Maven (o Gradle) y agrega la dependencia de Aspose OCR. Los usuarios de Maven pueden pegar este fragmento en su `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Si prefieres Gradle, el equivalente es: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Consejo profesional:** Mantén atención al número de versión; las versiones más recientes a menudo contienen correcciones de errores que afectan directamente a **mejorar la precisión de OCR**. + +Ahora, crea una clase Java llamada `OcrDemo.java`. En la parte superior del archivo, importa las clases requeridas: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Paso 2 – Inicializar el motor OCR y aplicar tu licencia + +No puedes **ejecutar OCR en PNG** sin antes indicar al motor que está licenciado. Así es como se hace: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +¿Por qué el objeto `License` adicional? Aspose separa la gestión de licencias del motor para permitirte cambiar licencias sobre la marcha, lo que puede ser útil en escenarios SaaS multi‑tenant. + +--- + +## Paso 3 – Cargar un diccionario personalizado (opcional pero potente) + +Si trabajas con terminología médica, fórmulas químicas o nombres de marcas, un diccionario personalizado puede **mejorar la precisión de OCR** drásticamente. El diccionario es un archivo de texto plano con una palabra por línea: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Por qué funciona:** El motor OCR utiliza el diccionario para sesgar su modelo de lenguaje hacia las palabras que te importan, reduciendo los errores de reconocimiento como “hemo­globin” → “hemoglobin”. + +Si no tienes un diccionario, simplemente omite esta línea—Aspose aún funciona bien con sus paquetes de idioma incorporados. + +--- + +## Paso 4 – Cargar la imagen que deseas procesar + +Ahora realmente **cargamos la imagen para OCR**. Aspose soporta muchos formatos, pero PNG es especialmente sin pérdida, lo que lo convierte en una opción segura para documentos escaneados. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Caso límite:** Si tu imagen es enorme (más de 5 MB), considera reducirla primero para acelerar el procesamiento. La clase `Image` proporciona un método `resize` que puedes llamar antes del reconocimiento. + +--- + +## Paso 5 – Ejecutar el proceso OCR y obtener el texto + +Con todo configurado, dispara el motor OCR. El método `recognize` devuelve un objeto `OcrResult` que contiene la cadena extraída, puntuaciones de confianza e incluso cajas delimitadoras si necesitas información de diseño. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Al ejecutar el programa, deberías ver algo como: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Eso es todo—has **reconocido texto de imagen** y **convertido imagen a texto** con éxito usando Aspose OCR. + +--- + +## Paso 6 – Problemas comunes y cómo solucionarlos + +Incluso con una biblioteca sólida, algunos contratiempos pueden molestarte: + +| Síntoma | Causa probable | Solución | +|---------|----------------|----------| +| Salida en blanco | Licencia no aplicada o expirada | Verifica la ruta a `Aspose.OCR.Java.lic` y asegúrate de que coincida con la versión. | +| Caracteres distorsionados | La imagen tiene baja resolución o está fuertemente comprimida | Utiliza una fuente de mayor resolución o preprocesa la imagen (binarización, corrección de inclinación). | +| Faltan palabras específicas del dominio | No hay diccionario personalizado | Agrega un archivo de diccionario con los términos faltantes, uno por línea. | +| Procesamiento lento en lotes grandes | No hay multihilo | Crea un pool de instancias `OcrEngine` (son seguras para hilos) y procesa imágenes en paralelo. | + +--- + +## Paso 7 – Extender el ejemplo: guardar resultados en un archivo + +Si necesitas conservar el texto extraído para análisis posterior, simplemente escríbelo en un archivo: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Ahora tienes una canalización reutilizable que **carga la imagen para OCR**, extrae el contenido y lo almacena donde desees. + +--- + +## Bonus: Ejecutar OCR en varios archivos PNG en una carpeta + +Los proyectos del mundo real a menudo necesitan procesar docenas de escaneos. Aquí hay un bucle rápido que recoge cada `.png` en un directorio: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Recuerda reutilizar la misma instancia `ocrEngine`—crear una nueva para cada archivo agrega una sobrecarga innecesaria. + +--- + +## Conclusión + +Ahora tienes una solución completa, de extremo a extremo, que **reconoce texto de imagen** usando Aspose OCR para Java. Desde cargar la imagen, opcionalmente enriquecer el motor con un diccionario personalizado para **mejorar la precisión de OCR**, hasta **ejecutar OCR en PNG** y guardar la salida, el código está listo para incorporarse a cualquier proyecto Java. + +¿Qué sigue? Intenta alimentar el texto extraído a una canalización de procesamiento de lenguaje natural, o experimenta con OCR en notas manuscritas (Aspose también ofrece un modo de escritura a mano). Las posibilidades son infinitas, y acabas de desbloquear el primer paso. + +¡Feliz codificación! Si te encontraste con algún problema, no dudes en dejar un comentario abajo—solucionemos juntos. + +![Captura de pantalla del resultado OCR en la consola – reconocer texto de imagen](/images/ocr_console_result.png "ejemplo de reconocer texto de imagen") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/swedish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..54f1d7f26 --- /dev/null +++ b/ocr/swedish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Extrahera tabeller från en bild med Aspose OCR Java. Lär dig att ladda + en bild för OCR, extrahera tabell från PNG, konvertera bildtabellens text och snabbt + känna igen kvittobilder. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: sv +og_description: Extrahera tabeller från en bild med Aspose OCR Java. Den här guiden + visar hur du laddar en bild för OCR, extraherar en tabell från en PNG, konverterar + bildtabellens text och känner igen en kvittobild. +og_title: Extrahera tabeller från bild – Aspose OCR Java-handledning +tags: +- Aspose OCR +- Java +- Image Processing +title: Extrahera tabeller från bild – komplett Aspose OCR Java‑guide +url: /sv/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahera tabeller från bild – Complete Aspose OCR Java Guide + +Har du någonsin behövt **extract tables from image**‑filer men stött på hinder? Kanske har du ett skannat kvitto eller en fotograferad faktura och den tabulära datan är gömd i en PNG. I den här handledningen får du se exakt hur du *load image for OCR*, omvandlar bilden till strukturerade rader och **convert image table text** till något du kan arbeta med i Java. + +Vi går igenom varje steg, från att licensiera Aspose OCR‑motorn till att skriva ut varje cell i de upptäckta tabellerna. När du är klar kan du **recognize receipt image**‑filer och plocka ut deras tabeller utan problem. + +## Vad du kommer att lära dig + +- Hur du initierar Aspose OCR‑motorn och applicerar din licens. +- Varför aktivering av table detection är nyckeln till **extract tables from image**. +- Den exakta koden som behövs för att **load image for OCR** och köra igenkänning på en PNG. +- Sätt att hantera flera tabeller, lågupplösta skanningar och vanliga fallgropar. +- Hur du **convert image table text** till ett utskrivbart (eller databas‑klart) format. + +Ingen extern dokumentation behövs – allt du behöver finns här. + +## Förutsättningar + +- Java 17 eller senare (koden använder det moderna modul‑systemet). +- En Aspose OCR for Java‑licensfil (`Aspose.OCR.Java.lic`). Om du bara experimenterar fungerar en tillfällig utvärderingsnyckel också. +- En PNG‑bild som innehåller en tydlig tabell (t.ex. `receipt_with_table.png`). +- Maven eller Gradle för att hämta Aspose OCR‑beroendet: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** Placera licensfilen bredvid din `src/main/resources`‑mapp så att sökvägen förblir stabil i olika miljöer. + +--- + +## Steg 1 – Initiera OCR‑motorn för **extract tables from image** + +Innan motorn kan göra någonting måste den veta att du är en legit användare. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Varför detta är viktigt:* Utan en giltig licens körs OCR‑motorn i provläge, vilket kan kapa resultat eller lägga till oönskade vattenstämplar – vilket gör tabellutdragning opålitlig. + +--- + +## Steg 2 – Aktivera table detection (**extract table from png**) + +Table detection är avstängt som standard; du måste slå på den. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Att sätta på denna flagga får Aspose OCR att behandla grupper av justerad text som rader och kolumner, exakt vad du behöver när du vill **extract tables from image**‑filer som är PNG‑bilder. + +--- + +## Steg 3 – **Load image for OCR** och **recognize receipt image** + +Nu matar vi faktiskt in bilden i motorn. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Om du arbetar med ett **recognize receipt image**‑scenario kan det vara bra att förbehandla bilden (räta upp, öka kontrast). Det ligger utanför denna snabba guide men är värt att utforska för brusiga skanningar. + +--- + +## Steg 4 – Bearbeta OCR‑resultatet och **convert image table text** + +`OcrResult`‑objektet kan innehålla en eller flera tabeller. Låt oss iterera över dem och skriva ut varje cell. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Vad detta gör:** + +- Kontrollerar om några tabeller hittades; om inte föreslås en kvalitetsjustering. +- För varje tabell skriver den ut rader med tab‑separerade celler, ett bekvämt format för CSV‑import. +- Anropet `Cell::getText` är kärnan i **convert image table text** – det hämtar den råa OCR‑strängen från varje cell. + +### Förväntad utskrift + +Om `receipt_with_table.png` innehåller en enkel 3 × 2‑tabell får du något i stil med: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Om bilden har flera tabeller separeras varje tabell med en tom rad. + +--- + +## Steg 5 – Verifiera de extraherade tabellerna och hantera kantfall + +### Vanliga fallgropar + +| Problem | Varför det händer | Snabb fix | +|---------|-------------------|-----------| +| **Inga tabeller upptäckta** | Bilden är för suddig eller har låg kontrast | Applicera binarisering (`ImageProcessing.applyThreshold`) före OCR | +| **Sammanfogade celler** | Tabelllinjer är svaga, OCR behandlar dem som ett block | Öka `TableDetectionSensitivity` i `ocrEngine.getConfig()` | +| **Fel kolumnordning** | Sned bild som orsakar feljustering | Använd `ImageProcessing.deskew` eller rotera bilden 90° | + +### Vad du kan göra härnäst + +- **Exportera till CSV** – ersätt `System.out.println(line);` med en `FileWriter` för att spara data. +- **Mata in i en databas** – mappa varje rad till en POJO och använd JPA för persistens. +- **Kombinera med andra API:er** – för kvitto‑behandling kan du även extrahera totalsummor med reguljära uttryck på OCR‑texten. + +--- + +## Fullt fungerande exempel (Kopiera‑klistra‑klart) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Kör detta program, peka på en PNG som innehåller en tydlig tabell, och se konsolen fyllas med snyggt formaterade rader. + +--- + +## Slutsats + +Du har nu en solid, end‑to‑end‑lösning för att **extract tables from image**‑filer med Aspose OCR för Java. Från licensiering till **load image for OCR**, aktivering av **extract table from png**, och slutligen **convert image table text**, är varje steg täckt med förklaringar och praktiska tips. + +Nästa steg: kedja utdata till en CSV‑fil, skicka raderna till en relationsdatabas, eller kombinera OCR‑steget med en rutin för att extrahera kvitto‑totalsummor. Samma mönster fungerar för fakturor, prislistor och alla skannade dokument som gömmer data bakom ett rutnät. + +Har du frågor om hantering av lågupplösta kvitton eller hur du skalar detta till batch‑bearbetning? Lämna en kommentar nedan, och lycka till med kodandet! + +![Extract tables from image example](https://example.com/assets/extract-tables-from-image.png "Extract tables from image – sample output") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/swedish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..63027040f --- /dev/null +++ b/ocr/swedish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-05-03 +description: Extrahera text från bild med Python och Aspose OCR. Lär dig en steg‑för‑steg + Python OCR‑handledning med blandat latin‑kyrilliskt stöd. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: sv +og_description: Extrahera text från bild i Python snabbt. Den här guiden visar hur + du använder Aspose OCR i Python för blandade latin‑kyrilliska bilder. +og_title: Extrahera text från bild med Python – Fullständig Aspose OCR-genomgång +tags: +- OCR +- Python +- Aspose +title: Extrahera text från bild i Python – Komplett Aspose OCR-guide +url: /sv/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahera text från bild med Python – Komplett Aspose OCR-guide + +Har du någonsin behövt **extract text from image python** men varit osäker på vilket bibliotek som kan hantera en blandning av latinska och kyrilliska tecken? Du är inte ensam—utvecklare stöter ständigt på detta problem när de OCR:ar flerspråkiga skärmbilder. + +Den goda nyheten är att Aspose OCR för Python gör hela processen nästan smärtfri. I den här handledningen går vi igenom hur du installerar paketet, applicerar din licens, laddar en bild med blandade språk och slutligen hämtar den igenkända texten i några rader kod. I slutet har du ett färdigt skript som du kan släppa in i vilket projekt som helst. + +## Vad du kommer att lära dig + +- Hur du sätter upp **Aspose OCR Python** i en virtuell miljö. +- Varför språk‑hintning (som latin och kyrilliska) påskyndar detektering. +- Den exakta koden som behövs för att **extract text from image python** med ett enda funktionsanrop. +- Vanliga fallgropar när du arbetar med OCR för blandade språk och hur du undviker dem. + +### Förutsättningar + +- Python 3.8 eller nyare installerat på din maskin. +- En Aspose OCR-licensfil (`Aspose.OCR.Java.lic`). Gratis provversion fungerar för testning, men en licensierad fil tar bort vattenstämplar. +- En PNG/JPEG‑bild som innehåller både latinska och kyrilliska tecken (vi kallar den `mixed_latin_cyrillic.png`). + +Om du har markerat dessa rutor är du redo att köra—inga extra ramverk eller tunga beroenden krävs. + +--- + +## Steg 1 – Extrahera text från bild med Python: Installera Aspose OCR + +Först och främst: hämta biblioteket från PyPI och se till att din miljö kan hitta licensfilen. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** Om du får ett behörighetsfel, lägg till `--user` till `pip install`‑kommandot eller kör terminalen som administratör. + +Nu när paketet är på ditt system kommer vi att importera det och peka motorn mot vår licens. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Varför behöver vi en licens i detta skede? Utan den körs motorn i **evaluation mode**, vilket begränsar antalet sidor och lägger till en vattenstämpel i resultatet. Att tillhandahålla licensen i förväg säkerställer att det efterföljande `recognize`‑anropet returnerar ren text. + +## Steg 2 – Ladda din bild med blandat latin‑kyrilliskt innehåll + +Nästa steg är att ladda bilden i minnet. Aspose OCR arbetar med sin egen `Image`‑klass, som abstraherar bort det underliggande filformatet. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Om du undrar om andra format fungerar—ja, JPEG, BMP, TIFF och till och med PDF stöds. Byt bara filändelsen så hanterar `from_file`‑metoden resten. + +## Steg 3 – Hint språk för snabbare detektering (valfritt men hjälpsamt) + +När du vet vilka språk som finns i bilden kan du ge motorn en förvarning. Detta är inte obligatoriskt, men det **minskar bearbetningstiden avsevärt** och förbättrar noggrannheten för OCR med blandade språk. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +Hint‑listan accepterar alla språk som stöds av Aspose OCR (t.ex. `"Arabic"`, `"Japanese"`). Om du hoppar över detta steg kommer motorn att prova varje inbyggt språk, vilket kan vara långsammare på stora batcher. + +## Steg 4 – Kör OCR‑motorn och extrahera text + +Nu är det sant: faktiskt känna igen tecknen. `recognize`‑metoden returnerar ett `OcrResult`‑objekt som innehåller ren text, förtroendescore och även avgränsningsrutor om du behöver dem senare. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Varför detta fungerar:** Under huven kombinerar Aspose OCR en neuronnäts‑textdetektor med språk‑specifika klassificerare. Genom att mata den med ett `Image`‑objekt kringgår du behovet av manuell förbehandling som binarisering. + +## Steg 5 – Visa den extraherade texten + +Till sist, låt oss skriva ut resultatet till konsolen. I en riktig applikation kan du skriva det till en fil, skicka det till en databas eller mata in det i ett översättnings‑API. + +```python +print("Recognised text:") +print(extracted_text) +``` + +När du kör skriptet bör du se något liknande: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Det resultatet bekräftar att vi framgångsrikt **extract text from image python**, hanterar både latinska och kyrilliska tecken i ett enda pass. + +--- + +## Fullt fungerande exempel + +Nedan är det kompletta skriptet som du kan kopiera‑klistra in i en fil som heter `extract_ocr.py`. Byt bara ut platshållar‑sökvägarna mot dina faktiska kataloger. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Spara filen, aktivera din virtuella miljö och kör: + +```bash +python extract_ocr.py +``` + +Du bör se den igenkända texten skrivas ut, vilket bekräftar att skriptet fungerar från början till slut. + +--- + +## Vanliga frågor & edge‑cases + +**Vad händer om bilden är suddig?** +Aspose OCR inkluderar inbyggd de‑skevning och brusreducering, men för kraftigt förvrängda foton kan du vilja förbehandla med OpenCV (t.ex. applicera en Gaussisk oskärpa och tröskel). `Image`‑klassen kan också ta emot en NumPy‑array, så du kan kedja egna filter innan du anropar `recognize`. + +**Kan jag bearbeta en hel mapp med bilder?** +Absolut. Packa in logiken i en `for`‑loop, ändra `from_file` så att den läser varje filnamn och lagra resultaten i en dictionary. Kom ihåg att respektera API‑hastighetsgränser om du använder molnversionen. + +**Behöver jag en separat licens för varje språk?** +Nej, en enda Aspose OCR‑licens täcker alla stödjade språk. `language_hints`‑listan är bara ett prestandahint. + +**Vad händer med PDF‑inmatning?** +Byt ut `Image.from_file` mot `ocr.Image.from_file("document.pdf")`. OCR‑motorn rasteriserar automatiskt varje sida och returnerar sammanslagen text. + +## Slutsats + +Vi har just visat ett koncist, produktionsklart sätt att **extract text from image python** med Aspose OCR. Stegen—installera, licens, ladda, hint språk, känna igen och visa—täcker allt du behöver för att få pålitliga resultat för blandat latin‑kyrilliskt innehåll. + +Härifrån kan du utforska avancerade ämnen som **image to text conversion** för batch‑bearbetning, integrera resultatet med en **Python OCR tutorial** om naturlig språkbehandling, eller experimentera med andra språk‑hintar för flerspråkiga dokument. Himlen är gränsen, och koden är redan i dina händer. + +Har du ett annat användningsfall eller stött på ett problem? Lämna en kommentar, dela din erfarenhet, och låt oss fortsätta samtalet. Lycka till med kodandet! + +![Exempel på extrahering av text från bild med python](/images/extract-text-from-image-python.png "Skärmbild som visar OCR‑utdata – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/swedish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..04bb88a8d --- /dev/null +++ b/ocr/swedish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Extrahera text från bild omedelbart med Aspose OCR. Lär dig att definiera + intresseområde, ladda bild för OCR och extrahera text från faktura på bara några + minuter. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: sv +og_description: Extrahera text från bild med Aspose OCR. Denna guide visar hur du + definierar intresseområde, laddar bilden för OCR och extraherar text från faktura + på ett effektivt sätt. +og_title: Extrahera text från bild med Aspose OCR – Komplett handledning +tags: +- ocr +- python +- image-processing +title: Extrahera text från bild med Aspose OCR – Steg‑för‑steg‑guide +url: /sv/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahera text från bild med Aspose OCR – Steg‑för‑steg guide + +Behöver du **extrahera text från bild** snabbt? Du är inte ensam—utvecklare kämpar ständigt med brusiga skanningar, kvitton och fakturor. I den här handledningen går vi igenom en komplett lösning som inte bara visar hur man *extraherar text från bild* utan också demonstrerar hur man **definierar intresseområde**, **laddar bild för OCR**, och hämtar den exakta raden du behöver från en faktura. + +Vi täcker allt från installation av Aspose OCR‑biblioteket till hantering av kantfall som roterade sidor. I slutet har du ett körbart skript som extraherar önskad text i ett enda anrop—ingen manuell beskärning krävs. + +## Vad du kommer att lära dig + +- Hur man **laddar bild för OCR** med Aspose's Python‑API. +- Det bästa sättet att **definiera intresseområde** (ROI) så att du bara bearbetar den del av bilden som är relevant. +- Hur man **extraherar text från fakturafält** utan att hämta hela sidan. +- Tips för att **bearbeta bild med OCR** effektivt och undvika vanliga fallgropar. + +**Förutsättningar** – en aktuell Python 3.9+‑miljö, en giltig Aspose OCR‑licensfil och en bild (t.ex. en faktura‑PNG). Inga andra externa verktyg krävs. + +--- + +## Steg 1 – Initiera OCR‑motorn (Primär konfiguration) + +Innan du kan **bearbeta bild med OCR**, behöver du en motorinstans som innehåller din licens. Detta steg är avgörande eftersom en olicensierad motor bara returnerar ett begränsat resultat. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Varför detta är viktigt*: `OcrEngine`‑objektet är bibliotekets hjärta; det hanterar språkmodeller, bildförbehandling och licensiering. Att ställa in licensen i förväg säkerställer full noggrannhet och inga vattenstämplar. + +--- + +## Steg 2 – Ladda bild för OCR + +Nu när motorn är klar behöver vi **ladda bild för OCR**. Aspose stödjer många format (PNG, JPEG, TIFF), men att använda `Image.from_file` garanterar att bilden avkodas korrekt. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Proffstips**: Håll dina bildfiler under 5 MB för snabbast bearbetning. Större filer kan skalas ner med `image.resize(width, height)` före OCR. + +--- + +## Steg 3 – Definiera intresseområde (ROI) + +De flesta fakturor innehåller mycket irrelevant text—adressblock, sidfötter osv. Genom att **definiera intresseområde** talar vi om för motorn att bara titta där beloppet eller datumet finns, vilket förbättrar hastighet och noggrannhet. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Hur det fungerar*: `Rectangle`‑klassen beskär bilden virtuellt; OCR‑motorn ser aldrig pixlar utanför rektangeln, så brus utanför ROI ignoreras. + +--- + +## Steg 4 – Känn igen text inom ROI + +Med motorn, bilden och ROI redo, **extraherar vi slutligen text från bild**. `recognize`‑metoden returnerar ett `OcrResult`‑objekt som innehåller den upptäckta strängen och förtroendesiffror. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Förväntad output** (exempel för en typisk fakturatotalrad): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Om ROI är korrekt placerad ser du bara den rad du behöver—inget annat. + +--- + +## Steg 5 – Fullt fungerande exempel (Klar att kopiera‑klistra in) + +Nedan är det kompletta skriptet som binder ihop alla föregående steg. Spara det som `extract_invoice_roi.py` och kör `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Kör skriptet så bör du se den målade raden skriven till konsolen. Om du får en tom sträng, dubbelkolla ROI‑koordinaterna—ibland kan några pixlar fel placera leda till att texten helt utesluts. + +--- + +## Steg 6 – Vanliga variationer & kantfall + +### a) Olika fakturautformningar +Fakturor från olika leverantörer flyttar ofta totalbeloppsrutan. För att **bearbeta bild med OCR** över flera layouter, överväg: + +- **Flera ROI‑er**: Kör motorn sekventiellt med flera rektanglar och välj resultatet med högst förtroende. +- **Dynamisk ROI‑detektering**: Använd ett lättvikts bildbehandlingsbibliotek (t.ex. OpenCV) för att först lokalisera “Total”-etiketten, och beräkna sedan ROI relativt den. + +### b) Roterade eller skeva bilder +Om skanningen är lutad, anropa `image.rotate(angle)` före igenkänning: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR erbjuder också automatisk rakning, men manuell rotation ger dig bättre kontroll. + +### c) Icke‑latinska tecken +Standard språkmodell är engelska. För att **extrahera text från faktura** skriven på ett annat språk, ställ in språket före igenkänning: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Stora PDF‑filer +När du hanterar flersidiga PDF‑filer, extrahera varje sida som en bild först (Aspose PDF → Image) och tillämpa sedan samma ROI‑logik per sida. + +--- + +## Steg 7 – Prestandatips & Proffstips + +- **Cacha motorn**: Att skapa `OcrEngine` upprepade gånger i en loop saktar ner. Instansiera den en gång och återanvänd. +- **Batch‑bearbetning**: Om du har dussintals fakturor, omslut OCR‑anropet i en `ThreadPoolExecutor` för att parallellisera I/O‑bundna uppgifter. +- **Förtroendekontroll**: `ocr_result.confidence` ger ett flyttal mellan 0 och 1. Avvisa resultat under 0,85 och falla tillbaka på en större ROI eller manuell granskning. + +> **Se upp**: Att sätta ROI för litet kan kapa tecken, vilket ger förvrängd output. Testa alltid med några exempel­fakturor innan du skalar upp. + +--- + +## Slutsats + +Du har nu en solid, produktionsklar metod för att **extrahera text från bild** med Aspose OCR, komplett med ett sätt att **definiera intresseområde**, **ladda bild för OCR**, och pålitligt **extrahera text från fakturafält**. Genom att begränsa OCR till ett snävt ROI ökar både hastighet och noggrannhet—perfekt för batch‑bearbetning av tusentals kvitton. + +Redo för nästa steg? Prova att integrera detta skript i ett Flask‑API så att din webbapp kan ladda upp en faktura och omedelbart returnera totalsumman. Eller experimentera med flera ROI:er för att hämta datum, fakturanummer och leverantörsnamn i ett svep. Möjligheterna är oändliga, och med grunderna täckta här är du väl rustad att tackla alla OCR‑utmaningar. + +Lycklig kodning, och må din extraherade text alltid vara ren! + +![Arbetsflödesdiagram som visar hur man extraherar text från bild med Aspose OCR](workflow.png){: .center-image alt="Arbetsflöde för att extrahera text från bild med Aspose OCR"} + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/swedish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..5b6d2fc46 --- /dev/null +++ b/ocr/swedish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Extrahera text från bild med Pythons asynkrona OCR. Lär dig hur du konverterar + tif till text, laddar bild för OCR och känner igen text från bild på ett effektivt + sätt. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: sv +og_description: Extrahera text från bild med Python async OCR. Denna guide visar hur + man konverterar tif till text, laddar bild för OCR och känner igen text från bilden. +og_title: Extrahera text från bild med Python Async OCR – Komplett guide +tags: +- OCR +- Python +- AsyncIO +title: Extrahera text från bild med Python Async OCR – Komplett guide +url: /sv/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Extrahera text från bild med Python Async OCR – Komplett guide + +Behöver du **extrahera text från bild** snabbt? Med Pythons async OCR kan du göra det på bara några rader kod. Oavsett om du hanterar en massiv .tif‑skanning eller ett fåtal JPEG‑filer, visar den här handledningen hur du konverterar tif till text, laddar bild för OCR och slutligen känner igen text från bild utan att blockera din händelseslinga. + +Problemet är att de flesta utvecklare tar till ett synkront bibliotek och sedan stirrar på ett fruset UI medan motorn bearbetar pixlar. I den här guiden vänder vi på det genom att använda Aspose OCR Clouds asynkrona API, så att din applikation förblir responsiv. I slutet har du ett körbart skript som extraherar text från vilket stödformat som helst, och du förstår varför varje steg behövs. + +## Vad du kommer att lära dig + +- Hur du installerar Aspose OCR Cloud SDK för Python. +- Den exakta koden som behövs för att **ladda bild för OCR** och starta en asynkron igenkänningsuppgift. +- Tips för att hantera stora .tif‑filer och licensnycklar. +- Sätt att **extrahera bildtext** på ett säkert sätt, även när tjänsten returnerar fel. +- Ett komplett, kopiera‑och‑klistra‑klart exempel som du kan lägga in i ditt eget projekt. + +> **Förutsättning**: Python 3.8+ och en Aspose OCR Cloud‑licensfil (`Aspose.OCR.Java.lic`). Inga andra tredjepartspaket krävs. + +![extrahera text från bild arbetsflöde](workflow.png){: .align-center alt="extrahera text från bild arbetsflöde"} + +## Extrahera text från bild – Async OCR‑översikt + +Innan vi dyker ner i koden, låt oss gå igenom flödet. När du anropar `recognize_async` skickar SDK:n bilden till Asposes moln, startar ett bakgrundsjobb och ger dig ett `Task`‑objekt. Att vänta på den uppgiften ger ett `OcrResult` som innehåller bildens rentext‑representation. Eftersom anropet är asynkront kan du köra flera jobb parallellt—perfekt för batch‑bearbetning av stora arkiv med skannade dokument. + +### Varför använda Async? + +- **Icke‑blockerande I/O** – Din händelseslinga förblir fri att hantera annat arbete (t.ex. att serva HTTP‑förfrågningar). +- **Skalbarhet** – Starta dussintals igenkänningar samtidigt; molnet sköter det tunga arbetet. +- **Responsiveness** – UI‑applikationer fryser inte medan de väntar på OCR‑motorn. + +Nu när “varför” är tydligt, låt oss se **hur**. + +## Konvertera TIF till text med Aspose OCR + +Ett vanligt fallgropp är att anta att varje OCR‑bibliotek nativt stödjer .tif. Aspose gör det, men du måste ändå ge den ett `Image`‑objekt. SDK:n abstraherar formatet, så du kan helt enkelt peka på filvägen. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Förklaring av nyckellinjer** + +- `ocr_engine.license = ...` – Utan en giltig licens returnerar molnet ett 403‑fel. Se till att `.lic`‑filen är åtkomlig från ditt skripts arbetskatalog. +- `ocr.Image.from_file(image_path)` – Detta steg **laddar bild för OCR**; SDK:n upptäcker automatiskt formatet, så du behöver inte konvertera .tif i förväg. +- `recognize_async` – Returnerar en coroutine‑kompatibel uppgift. Du kan starta flera av dessa i ett `gather`‑anrop om du har en batch. + +> **Proffstips**: Om du bearbetar gigabyte‑stora TIFF‑filer, överväg att dela upp dem i sidor först. Asposes `Image.from_file` kan ta emot ett sidindex, vilket minskar minnesbelastningen. + +## Känn igen text från bild asynkront + +Låt oss se hur du skulle anropa funktionen från ett typiskt skript. `asyncio.run`‑ingångspunkten är det enklaste sättet att starta coroutine:n när du inte redan befinner dig i en händelseslinga (t.ex. ett vanligt CLI‑verktyg). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Vad du kan förvänta dig** + +Att köra skriptet mot en klar, högupplöst skanning ger vanligtvis en flerradig sträng som matchar den tryckta sidan. Om bilden är brusig försöker Aspose fortfarande att rensa upp den, men du kan se förvrängda tecken. I så fall, överväg förbehandling med OpenCV (t.ex. tröskling) innan du skickar filen till OCR‑motorn. + +### Hantera fel på ett smidigt sätt + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Att fånga `OcrException` säkerställer att ditt program inte kraschar när molnet returnerar ett fel—något som ofta får nybörjare att snubbla när de glömmer nätverksstörningar. + +## Ladda bild för OCR – Praktiska tips + +1. **Filväg vs. Bytes** – SDK:n accepterar en filväg, men du kan också ladda från ett `bytes`‑objekt om bilden finns i minnet (`ocr.Image.from_bytes`). Detta är praktiskt när du redan har hämtat filen från S3 eller en databas. +2. **Stödda format** – Förutom .tif hanterar Aspose PDF, BMP, GIF och även flersidiga TIFF‑filer. Använd `Image.from_file("doc.pdf")` för att OCR:a PDF‑filer direkt. +3. **Prestanda** – För batch‑jobb, återanvänd samma `OcrEngine`‑instans; att skapa en ny motor för varje fil ger onödig overhead. + +## Fullt fungerande exempel (Alla steg i ett skript) + +Nedan är det kompletta, färdiga skriptet som inkluderar licensiering, felhantering och en enkel kommandorads‑argumentparser. Kopiera‑och‑klistra in det, justera licensvägen, så är du klar. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Förväntad output** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Om bilden innehåller ett enkelt stycke kommer konsolen att visa samma rader, med radbrytningar bevarade. För flersidiga TIFF‑filer sammanfogar SDK:n sidorna i ordning. + +## Vanliga frågor (FAQ) + +**Q: Fungerar detta med andra async‑ramverk som FastAPI?** +A: Absolut. Byt ut `asyncio.run`‑anropet mot `await async_ocr(path)` i ditt endpoint, så hanterar FastAPI händelseslingan åt dig. + +**Q: Vad händer om jag behöver bearbeta hundratals filer samtidigt?** +A: Använd `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Kan jag extrahera text från ett lösenordsskyddat PDF‑dokument?** +A: Inte direkt. Du måste först låsa upp PDF‑filen (t.ex. med `pikepdf`) och sedan skicka de dekrypterade bytena till `ocr.Image.from_bytes`. + +**Q: Hur hanterar jag språk andra än engelska?** +A: Ställ in språket före igenkänning: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose stödjer över 60 språk; kolla dokumentationen för de exakta identifierarna. + +## Slutsats + +Du har nu en robust **extrahera text från bild**‑lösning som utnyttjar Pythons `asyncio` och Aspose OCR Clouds asynkrona API. Genom att följa stegen ovan kan du **konvertera tif till text**, **ladda bild för OCR**, och **känna igen text från bild** på ett icke‑blockerande sätt—perfekt för både kommandoradsverktyg och högtrafikerade webbtjänster. + +Vad blir nästa? Prova att batcha en mapp med skanningar, experimentera med språkinställningar, eller skicka OCR‑outputen till en efterföljande NLP‑pipeline. Himlen är + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/swedish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..6be27929b --- /dev/null +++ b/ocr/swedish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Extrahera text med OCR snabbt med Aspose OCR. Lär dig hur du förbättrar + OCR‑noggrannheten, laddar bild‑OCR, förbehandlar bild‑OCR och kör en OCR‑skanning + i Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: sv +og_description: extrahera text med OCR snabbt med Aspose OCR. Lär dig hur du förbättrar + OCR‑noggrannheten, laddar bild‑OCR, förbehandlar bild‑OCR och kör en OCR‑skanning + i Python. +og_title: extrahera text ocr – Komplett guide med Aspose OCR +tags: +- OCR +- Python +- Aspose +title: extrahera text OCR – Komplett guide med Aspose OCR +url: /sv/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extrahera text ocr – Komplett guide med Aspose OCR + +Någon gång behövt **extrahera text ocr** från en skakig skanning men var osäker på varför resultaten såg ut som nonsens? Du är inte ensam—många utvecklare stöter på samma problem när bilden är lutad, brusig eller helt enkelt lågkontrast. Den goda nyheten är att några konfigurationsjusteringar kan förvandla en rörig bild till ren, sökbar text. I den här handledningen går vi igenom ett komplett, end‑to‑end‑exempel som visar hur du **förbättrar ocr‑noggrannhet**, **laddar bild ocr**, **förbehandlar bild ocr**, och slutligen kör OCR‑skanning med Aspose OCR för Python. + +I slutet av den här guiden har du ett körbart skript som läser en skannad JPEG, rengör den automatiskt och skriver ut den extraherade texten till konsolen. Inga mystiska “se dokumentationen”-länkar—allt du behöver finns här. + +## Vad du behöver + +- **Python 3.8+** (den senaste stabila versionen fungerar bäst) +- **Aspose.OCR for Python via .NET** – installera med `pip install aspose-ocr` +- En **licensfil** (`Aspose.OCR.Java.lic`) om du har köpt en (gratis provversion fungerar för testning) +- En bild du vill bearbeta (t.ex. `skewed_scanned_doc.jpg`) + +Det är allt. Om du har dessa delar kan vi hoppa rakt in i koden. + +## Steg 1: Extrahera text OCR med Aspose OCR‑motor + +Det första du gör är att starta OCR‑motorn och tillämpa din licens. Tänk på motorn som hjärnan som kommer att läsa bilden; utan licens vägrar den att fungera utöver en liten demogräns. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Varför detta är viktigt:** Att tillämpa licensen i förväg undviker ett tyst fel senare. Om du hoppar över detta steg kommer motorn att falla tillbaka till ett begränsat läge och du får bara ett fåtal tecken tillbaka—definitivt inte vad du förväntar dig när du försöker extrahera text ocr. + +## Steg 2: Förbättra OCR‑noggrannhet med förbehandling + +Skanningar som är sneda eller korniga är förbannelsen för alla OCR‑projekt. Aspose låter dig växla ett antal praktiska inställningar som automatiskt räta upp, avlägsnar brus och ökar kontrasten. Detta är kärnan i **förbättra ocr‑noggrannhet**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – roterar bilden tillbaka till horisontell, vilket är avgörande när det ursprungliga dokumentet inte var helt plant. +- **remove_noise** – tar bort slumpmässiga fläckar som ofta förekommer i lågupplösta JPEG‑filer. +- **enhance_contrast** – gör mörk text mörkare och ljus bakgrund ljusare, vilket hjälper motorn att särskilja tecken. +- **binarization = "Otsu"** – en klassisk algoritm som bestämmer den bästa tröskeln för svart‑vit‑konvertering. + +> **Proffstips:** Om du vet att dina källbilder redan är rena kan du stänga av dessa alternativ för att snabba upp bearbetningen. Men för de flesta verkliga skanningar är det säkrast att låta dem vara på. + +## Steg 3: Ladda bild OCR för skanning + +Nu när motorn är klar behöver vi **ladda bild ocr**. Asposes `Image.from_file`‑metod stödjer JPEG, PNG, TIFF och några fler format. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Byt ut `YOUR_DIRECTORY` mot den faktiska sökvägen på din maskin. Om du arbetar med en byte‑ström i minnet (t.ex. från en webbuppladdning) kan du också använda `ocr.Image.from_bytes(byte_data)`—samma motor hanterar det. + +> **Edge case:** Stora TIFF‑filer kan vara minneskrävande. Om du får ett `MemoryError` bör du överväga att först nerprovsbilda bilden eller använda `ocr_engine.config.max_image_size` för att begränsa dimensionerna. + +## Steg 4: Kör OCR‑skanning och hämta resultat + +Med bilden laddad och förbehandling aktiverad är sista steget att **köra OCR‑skanning**. Detta anrop gör allt tungt arbete bakom kulisserna. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +`ocr_result`‑objektet innehåller flera användbara egenskaper: + +- `ocr_result.text` – den rena strängen du är intresserad av. +- `ocr_result.confidence` – ett numeriskt värde (0‑100) som indikerar den övergripande pålitligheten. +- `ocr_result.words` – en lista med ordobjekt med koordinater för omgivningsruta, praktisk för markering. + +## Steg 5: Skriv ut den extraherade texten + +Till sist skriver vi ut resultatet. I en riktig applikation kan du skriva texten till en fil, en databas eller skicka den till ett sökindex. För den här handledningen räcker ett enkelt `print`. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Förväntad output** (exempel för en enkel faktura): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Om förtroendet är lågt (< 80) kan du vilja gå tillbaka till förbehandlingsalternativen eller prova en annan binarisering som `"Sauvola"`. + +## Bonus: Visualisera förbehandlingspipeline (valfritt) + +Ibland är det hjälpsamt att se vad motorn gjorde med bilden. Aspose låter dig exportera den bearbetade bitmapen: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Du kan sedan bädda in bilden i dokumentationen: + +diagram för extrahera text ocr arbetsflöde som visar förbehandlingssteg + +> **Varför du skulle göra detta:** När OCR‑resultatet ser felaktigt ut avslöjar en snabb titt på `processed_debug.png` ofta om bilden fortfarande var för mörk, fortfarande sned eller hade kvarvarande brus. + +## Vanliga frågor & fallgropar + +- **Vad händer om mitt dokument är flersidigt?** + Aspose OCR fungerar sida‑för‑sida. Loopa över varje sidobild och concatenera `ocr_result.text`. + +- **Kan jag känna igen språk annat än engelska?** + Ja—sätt `ocr_engine.config.language = "fra"` (eller någon ISO‑639‑2‑kod) innan du anropar `recognize`. + +- **Finns det en gräns för bildstorlek?** + Motorn begränsar till 10 MP som standard. Öka `ocr_engine.config.max_image_size` om du behöver större skanningar, men håll koll på minnesanvändningen. + +- **Behöver jag en separat OCR‑motor för PDF‑filer?** + För PDF‑filer kan du antingen extrahera varje sida som en bild först (med Aspose.PDF) eller använda den inbyggda PDF‑OCR‑funktionen. Stegen som visas här är desamma när du har en bild. + +## Sammanfattning + +Vi har gått igenom hur man **extraherar text ocr** med Aspose OCR för Python, från licensiering av motorn till justering av inställningar som **förbättrar ocr‑noggrannhet**, laddar källfilen och slutligen **kör OCR‑skanning** för att hämta ren text. Det kompletta skriptet är redo att kopieras och klistras in, och du förstår nu varför varje konfigurationsflagga är viktig. + +## Vad blir nästa steg? + +- **Experimentera med olika binariseringar** (`"Sauvola"`, `"Bradley"`). Vissa typsnitt svarar bättre på adaptiva trösklar. +- **Integrera med en sökmotor** (t.ex. Elasticsearch) och använd förtroendesiffran för att rangordna resultat. +- **Kombinera med OCR‑efterbehandling**‑bibliotek som `pyspellchecker` för att rensa vanliga feligenkänningar. +- **Utforska batch‑behandling** för hundratals skanningar—paketera stegen i en funktion och mata in en mapp med bilder. + +Känn dig fri att justera koden, lägga till egen loggning eller koppla in den i en större dokumenthanteringspipeline. Om du stöter på problem, lämna en kommentar nedanför—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/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/swedish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..cf6bf5559 --- /dev/null +++ b/ocr/swedish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Hur man OCR:ar PDF med Aspose OCR Java. Lär dig hur du kör OCR på PDF, + känner igen text i PDF, konverterar PDF till JSON och laddar PDF för OCR med bara + några få rader kod. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: sv +og_description: Hur man använder OCR på PDF med Aspose OCR Java. Denna guide visar + hur man kör OCR på PDF, känner igen text i PDF, konverterar PDF till JSON och snabbt + laddar PDF för OCR. +og_title: Hur man OCR:ar PDF med Aspose OCR – Fullständig programmeringshandledning +tags: +- Aspose OCR +- Java +- PDF processing +title: Hur man OCR:ar PDF med Aspose OCR – Komplett steg‑för‑steg‑guide +url: /sv/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man OCR:ar PDF med Aspose OCR – Komplett steg‑för‑steg‑guide + +Har du någonsin funderat på **hur man OCR:ar PDF**‑filer utan att kämpa med kommandoradsverktyg eller betala för dyra SaaS‑tjänster? Du är inte ensam. I många projekt—fakturautomatiering, arkivering av skannade kontrakt eller att bygga en sökbar kunskapsbas—kommer du att behöva extrahera text från PDF‑filer snabbt och pålitligt. + +Den goda nyheten? Med Aspose OCR för Java kan du **run OCR on PDF**, känna igen text‑PDF‑sidor, **convert PDF to JSON**, och till och med **load PDF for OCR** på några få rader. I den här handledningen går vi igenom hela arbetsflödet, förklarar varför varje steg är viktigt och ger dig ett färdigt kodexempel som du kan klistra in i ditt eget projekt. + +## Vad du kommer att lära dig + +- Hur du sätter upp Aspose OCR‑motorn och applicerar din licens. +- Det exakta sättet att **load PDF for OCR** och mata in den i igenkännaren. +- Hur du **recognize text PDF** över alla sidor i ett enda anrop. +- Export av hela OCR‑resultatet till en **JSON**‑fil (perfekt för downstream‑API:er) och en enskild sida till **XML**. +- Tips, fallgropar och variationer du kan behöva när du hanterar fler‑sidiga PDF‑filer eller anpassade språkpaket. + +> **Prerequisites** – Du behöver Java 8 eller nyare, en giltig Aspose OCR för Java‑licensfil (`Aspose.OCR.Java.lic`) och Aspose OCR‑JAR‑filen på din classpath. Inga andra externa bibliotek krävs. + +--- + +## Hur man OCR:ar PDF – Initiera Aspose OCR‑motor + +Det första du måste göra är att skapa en instans av `OcrEngine` och bifoga din licens. Detta steg låser upp hela funktionsuppsättningen och tar bort utvärderingsvattenstämpeln. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Varför detta är viktigt:** +Utan en licens kör Aspose OCR i ett begränsat “trial”-läge som begränsar antalet sidor och lägger till en vattenstämpel i utdata. Att applicera licensen i förväg säkerställer att resten av pipeline‑processen fungerar utan oväntade begränsningar. + +--- + +## Kör OCR på PDF – Ladda dokument och känna igen text + +Nu **load PDF for OCR**. Aspose OCR behandlar PDF‑filer som en speciell `PdfDocument`‑typ, som internt extraherar varje sida som en bild innan den matas till igenkännaren. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Vad händer under huven?** +`recognizeDocument` itererar över varje sida, rasteriserar den med optimal DPI och kör sedan OCR‑motorn. Resultatet är en `OcrPage`‑array där varje element innehåller den upptäckta texten, förtroendesiffror och layoutinformation. Detta tillvägagångssätt är mycket mer pålitligt än att mata in råa PDF‑bytes i ett generiskt OCR‑bibliotek. + +--- + +## Konvertera OCR‑resultat till JSON – Exportera fullständig rapport + +De flesta downstream‑system föredrar JSON eftersom det är enkelt att deserialisera i Java, JavaScript, Python eller till och med PowerShell. Aspose OCR levereras med en `JsonExport`‑hjälpare som serialiserar hela `OcrPage[]`‑arrayen. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**När skulle du använda detta?** +Om du behöver föra OCR‑utdata till ett sökindex (Elasticsearch, Solr) eller en datapipeline ger JSON‑formatet dig en strukturerad representation av varje sida, rad och ord, komplett med förtroendevärden. + +--- + +## Exportera första sidan till XML – Spara enskild sida + +Ibland är bara en enda sida av intresse—kanske innehåller den första sidan en titel eller ett fakturanummer. Klassen `XmlExport` låter dig dumpa en enskild `OcrPage` till en prydlig XML‑fil. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Varför XML?** +Legacy‑system eller vissa företagsarbetsflöden förlitar sig fortfarande på XML‑scheman för import. Den genererade filen följer Asposes eget schema, vilket gör validering enkel. + +--- + +## Verifiera utdata – Kontrollera JSON‑ och XML‑filer + +När programmet är klart bör du se två filer i `YOUR_DIRECTORY`: + +- `report_ocr.json` – Innehåller en array av sidobjekt. Ett snabbt utdrag kan se ut så här: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Innehåller samma information för sida 1, omsluten av ``‑taggar. + +Öppna dem i någon redigerare; du kommer att se de råa OCR‑strängarna, förtroendesiffror och koordinater för avgränsningsrutor. Om JSON‑filen ser tom ut, dubbelkolla att den inmatade PDF‑filen faktiskt innehåller rasteriserat innehåll (skannade bilder) och inte valbar text—Aspose OCR fungerar endast på bilder. + +--- + +## Vanliga fallgropar & Pro‑tips + +| Problem | Varför det händer | Lösning | +|---------|-------------------|---------| +| **Empty JSON** | PDF innehåller inbyggd text, inte bilder. | Använd `PdfDocument.fromFile(..., true)` för att tvinga rasterisering, eller förkonvertera sidor till bilder. | +| **Low confidence** | Käll‑PDF är lågupplöst eller kraftigt komprimerad. | Öka DPI genom att anropa `ocrEngine.getImageProcessingOptions().setDpi(300)` innan `recognizeDocument`. | +| **License not found** | Fel sökväg eller saknad fil. | Använd en absolut sökväg eller placera `.lic`‑filen på classpath och anropa `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory on huge PDFs** | Alla sidor laddas in i minnet på en gång. | Processa sidor i batcher: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Utöka exemplet + +- **Kör OCR på PDF med ett specifikt språk** – sätt `ocrEngine.getLanguage().setLanguage(Language.English)` eller ladda ett anpassat språkpaket. +- **Exportera varje sida till separata JSON‑filer** – iterera över `ocrPages` och anropa `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrera med en sökmotor** – mata JSON‑filen till Elasticsearchs `attachment`‑processor för fulltextsökning. + +--- + +## Slutsats + +Du har nu en komplett, produktionsklar lösning för **how to OCR PDF** med Aspose OCR för Java. Genom att initiera motorn, ladda PDF‑filen, köra OCR och exportera både **JSON** och **XML** kan du integrera OCR i vilket backend‑arbetsflöde som helst—oavsett om du behöver **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, eller helt enkelt **load PDF for OCR**. + +Ge det ett försök, justera DPI‑ eller språkinställningarna, och se hur dina tidigare ogenomskinliga PDF‑filer blir sökbara tillgångar. Behöver du gå längre? Prova att indexera JSON‑filen i Elasticsearch, eller efterbehandla XML‑filen med XSLT för att skapa anpassade rapporter. + +Lycka till med kodningen, och må dina PDF‑filer alltid vara läsbara! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/swedish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..951ce1243 --- /dev/null +++ b/ocr/swedish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,158 @@ +--- +category: general +date: 2026-05-03 +description: 'hur man kör OCR snabbt: lär dig att extrahera text från bild och känna + igen text från formulär med Aspose OCR Java. Enkla steg för att läsa bild för OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: sv +og_description: 'hur man kör OCR snabbt: lär dig att extrahera text från bild och + känna igen text från formulär med Aspose OCR Java. Enkla steg för att läsa bild + för OCR.' +og_title: hur man kör OCR på ett formulär – extrahera text från en bild +tags: +- ocr +- java +- image-processing +title: Hur man kör OCR på ett formulär – extrahera text från bild +url: /sv/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# hur man kör ocr på ett formulär – extrahera text från bild + +Har du någonsin undrat **hur man kör ocr** på ett skannat dokument utan att spendera timmar med kryptiska bibliotek? Du är inte ensam. I många projekt—oavsett om det handlar om att digitalisera fakturor, arkivera kontrakt eller hämta data från handskrivna formulär—är förmågan att **extrahera text från bild**-filer ett dagligt smärtpunktsområde. + +Här är grejen: Aspose OCR for Java gör hela pipeline nästan smärtfri. I den här handledningen går vi igenom varje kodrad du behöver för att **känna igen text från formulär**-filer, förklarar varför varje steg är viktigt, och visar dig hur du **läser bild för ocr**-resultat med förtroendesiffror. I slutet har du en färdig‑att‑köra Java-klass som du kan slänga in i vilket Maven- eller Gradle‑projekt som helst. + +## Vad du kommer att lära dig + +- Ställ in Aspose OCR‑motorn och applicera din licens. +- Läs in en JPEG, PNG eller TIFF i minnet. +- Kör OCR och iterera över varje rad av igenkänd text. +- Identifiera lågt‑förtroende‑rader för manuell granskning. +- Utöka exemplet till fler‑sidiga PDF‑filer eller olika bildformat. + +Ingen tidigare erfarenhet av Aspose krävs, bara en grundläggande Java‑utvecklingsmiljö (JDK 11+ och valfri IDE du föredrar). Låt oss börja. + +![exempel på hur man kör ocr](/images/ocr-demo.png){alt="exempel på hur man kör ocr på ett skannat formulär"} + +## Steg 1: Initiera OCR‑motorn – **hur man kör ocr** + +Det allra första du måste göra innan någon OCR‑operation är att skapa en `OcrEngine`‑instans och bifoga en giltig licens. Utan licens körs biblioteket i demoläge, vilket begränsar antalet sidor du kan bearbeta. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Varför detta är viktigt:** +`OcrEngine` innehåller all konfiguration—språk, detekteringsläge och prestandajusteringar. Genom att ange licensen i förväg undviker du den tysta återgången till provläge som annars skulle kapa ditt resultat. + +## Steg 2: Ladda bilden – **extrahera text från bild** + +Nästa steg är att vi behöver ett `Image`‑objekt som pekar på filen du vill skanna. Aspose stödjer ett brett spektrum av format, så du kan mata in en skannad PDF‑sida som du redan har konverterat till PNG, en rå JPEG eller till och med en fler‑sidig TIFF. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Varför detta är viktigt:** +Att ladda bilden som ett `Image`‑objekt ger motorn tillgång till pixeldata, DPI‑information och färgdjup—allt som påverkar OCR‑noggrannheten. Om du hoppar över detta steg och skickar en rå byte‑array förlorar du dessa hjälpsamma ledtrådar. + +## Steg 3: Kör OCR – **känna igen text från formulär** + +Nu det roliga: faktiskt känna igen tecknen. `recognize`‑metoden returnerar ett `RecognitionResult` som innehåller en samling av `Line`‑objekt, var och en med sin egen förtroendesiffra. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Varför detta är viktigt:** +Att anropa `recognize` startar en kedja av interna processer—förbehandling (räta upp, brusreducering), segmentering, teckenklassificering och efterbehandling (stavningskontroll, språkmodell). Resultatobjektet abstraherar bort all den komplexiteten. + +## Steg 4: Bearbeta resultaten – **läsa bild för ocr**‑utdata + +När du har `RecognitionResult` kan du iterera genom varje rad, automatiskt bestämma vad som ska behållas och flagga allt som ser osäkert ut. En förtroendetröskel på 85 % är en bra startpunkt för de flesta tryckta formulär. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Förväntad utdata (exempel):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +I exemplet ovan var motorn osäker på den sista siffran i totalsumman, så vi skrev ut en varning. Du kan skicka dessa rader till ett UI för manuell korrigering eller logga dem för senare granskning. + +### Kantfall & Tips + +- **Multiple pages:** Om du har en fler‑sidig PDF, loopa över varje sidindex och anropa `Image.fromPdf(pdfPath, pageIndex)`. +- **Different languages:** Sätt `engine.getLanguage().setLanguage(Language.Spanish);` innan du anropar `recognize`. +- **Image quality:** Lågresolutionsskanningar (< 150 DPI) ger ofta förtroende under 80 %. Uppskalning med `image.resize(300, 300)` kan hjälpa, men den bästa lösningen är en bättre skanning. +- **Performance:** Att återanvända samma `OcrEngine`‑instans för många bilder minskar overhead jämfört med att skapa en ny varje gång. + +## Vanliga frågor + +**Kan jag köra detta på en huvudlös server?** +Absolut. Biblioteket har inga GUI‑beroenden, så det fungerar bra i Docker‑containrar eller CI‑pipelines. + +**Vad händer om jag ännu inte har en licens?** +Du kan fortfarande anropa `engine.recognize`, men demoläget stoppar efter de första 2 sidorna och vattenmärker resultatet. Det är perfekt för snabba tester. + +**Finns det ett sätt att extrahera strukturerad data (t.ex. tabeller)?** +Aspose OCR erbjuder en `TableRecognizer`‑klass, men det ligger utanför räckvidden för den här nybörjarguiden. När du behärskar grunderna, kolla de officiella dokumenten för `TableRecognizer`. + +## Sammanfattning – **hur man kör ocr** i ett nötskal + +Vi har gått igenom allt du behöver för att **hur man kör ocr** på ett skannat formulär: initiera motorn, ladda bilden, utföra igenkänning och hantera resultaten på ett intelligent sätt. Med bara några rader Java kan du **extrahera text från bild**‑filer, **känna igen text från formulär**‑dokument och **läsa bild för ocr**‑utdata med förtroendesiffror som låter dig avgöra när mänsklig granskning krävs. + +Nästa steg? Prova att byta JPEG mot en fler‑sidig TIFF, experimentera med olika förtroendetrösklar, eller integrera resultatet i en databas för automatiserad datainmatning. Möjligheterna är lika breda som de dokument du behöver bearbeta. + +Har du fler frågor om OCR, bildförbehandling eller licensiering? 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/swedish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..d1c5b419d --- /dev/null +++ b/ocr/swedish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-05-03 +description: Hur man använder OCR för att extrahera text från PDF-filer i Java. Lär + dig att känna igen text från PDF, konvertera PDF till text och hantera OCR för flersidiga + PDF-filer effektivt. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: sv +og_description: Hur man använder OCR för att extrahera text från PDF-filer i Java. + Denna guide visar hur man känner igen text från PDF, konverterar PDF till text och + bearbetar OCR för flersidiga PDF-filer. +og_title: Hur man använder OCR i Java – Extrahera text från flersidiga PDF-filer +tags: +- ocr +- java +- pdf +- aspose +title: Hur man använder OCR i Java – Extrahera text från flersidiga PDF-filer +url: /sv/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man använder OCR i Java – Extrahera text från flersidiga PDF‑filer + +**Hur man använder OCR** i ett Java‑projekt? Om du någonsin har behövt extrahera text från PDF‑filer utan att förlita dig på PDF:ens interna textlager, är du på rätt plats. Denna handledning guidar dig genom en komplett, körbar lösning som **igenkänner text från PDF**, konverterar PDF till text och även hanterar en **OCR‑flersidig PDF** med ett enda anrop. + +Föreställ dig att du får ett skannat kontrakt — en 12‑sidig TIFF i en PDF. Du vill ha sökbar text för indexering, men filen har inga inbäddade tecken. Inga problem; vi visar dig exakt hur du gör det, steg för steg. + +> **Vad du får:** ett färdigt Java‑snutt som använder Aspose.OCR, förklaringar till varför varje rad är viktig, tips för vanliga fallgropar och exempeloutput som du kan verifiera omedelbart. + +--- + +## Vad du behöver + +* **Java 17** (eller någon nyare JDK) – koden fungerar även med äldre versioner, men 17 är den optimala versionen. +* **Aspose OCR for Java**‑biblioteket – du kan ladda ner JAR‑filen från Aspose‑sajten eller lägga till den via Maven/Gradle. +* En **flersidig PDF** (eller TIFF) som du vill bearbeta. I våra exempel använder vi `contract_multipage.pdf` placerad i en mapp som heter `YOUR_DIRECTORY`. +* En giltig **Aspose OCR‑licensfil** (`Aspose.OCR.Java.lic`). Utan den körs biblioteket i utvärderingsläge, vilket är okej för ett snabbt test men lägger till ett vattenmärke. + +Det är allt—inga extra OCR‑motorer, inga inhemska binärer, bara en enda JAR och en licens. + +![exempel på hur man använder OCR](https://example.com/ocr-demo.png "Hur man använder OCR i Java – visuell översikt av processen") + +*Bildtext: hur man använder OCR i Java – visuell översikt av inläsning, igenkänning och utskrift av text.* + +--- + +## Steg 1: Konfigurera OCR‑motorn – **Hur man använder OCR** korrekt + +Det första du måste göra är att skapa en instans av OCR‑motorn och tillämpa din licens. Utan licensen fungerar motorn fortfarande, men du kommer att se ett provvattenmärke i resultatet. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Varför detta är viktigt:** +`OcrEngine` är kärnobjektet som styr bildanalys, språkdetection och textutvinning. Att sätta licensen tidigt förhindrar att motorn återgår till provläge senare, vilket kan påverka noggrannheten. + +--- + +## Steg 2: Ladda dokumentet – **Extrahera text från PDF** effektivt + +Aspose OCR kan läsa både PDF‑ och TIFF‑behållare direkt. Här laddar vi en flersidig PDF som innehåller skannade bilder. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Varför detta är viktigt:** +`PdfDocument.fromFile` parsar behållaren och ger dig åtkomst till varje sida som en bild. Denna abstraktion låter OCR‑motorn behandla varje sida enhetligt, oavsett ursprungsformat. + +**Tips:** Om din källfil är en TIFF fungerar samma anrop—Aspose autodetekterar formatet. Ingen extra kod behövs. + +--- + +## Steg 3: Känn igen alla sidor på en gång – **Känn igen text från PDF** sömlöst + +Istället för att loopa över sidor själv kan du be motorn att bearbeta hela dokumentet i ett enda anrop. Detta är det mest effektiva sättet att **konvertera PDF till text** när du hanterar en **OCR‑flersidig PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Varför detta är viktigt:** +Att anropa `recognizeDocument` en gång minskar overhead som orsakas av att upprepade gånger initiera motorn. Det garanterar också konsekventa språkinställningar över sidor, vilket är avgörande för juridiska dokument som ofta blandar typsnitt. + +--- + +## Steg 4: Outputa den igenkända texten – **Konvertera PDF till text** för indexering + +Nu när varje sida har bearbetats itererar vi helt enkelt över resultaten och skriver ut de extraherade strängarna. Du kan också skriva dem till en fil, en databas eller mata in dem i ett sökindex. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Förväntat output (trunkerat):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Om PDF‑filen innehåller 12 sidor kommer du att se tolv `--- Page X ---`‑sektioner, var och en följd av OCR‑extraherad text. + +--- + +## Avancerade tips för en **OCR‑flersidig PDF** + +### 1. Justera språkinställningar + +Som standard försöker Aspose autodetektera språket, men du kan snabba upp processen genom att specificera det: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Kontrollera bildförbehandling + +Skannade kontrakt har ofta brus. Du kan aktivera deskewing och binarisering: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Hantera stora filer på ett smidigt sätt + +Om du bearbetar PDF‑filer större än 100 MB, överväg att strömma sidor istället för att ladda hela dokumentet på en gång: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Detta mönster minskar minnesbelastningen och är praktiskt för batch‑jobb. + +### 4. Exportera till strukturerade format + +Utöver vanlig text kan du exportera till JSON eller XML för efterföljande bearbetning: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Vanliga fallgropar & hur man undviker dem + +| Fallgrop | Varför det händer | Lösning | +|----------|-------------------|---------| +| **Tomt output** | Licens inte tillämpad eller fel filväg. | Verifiera `setLicense`‑sökväg och bekräfta att filen finns. | +| **Skräptecken** | Fel språkinställning eller lågupplöst källa. | Ställ in korrekt `Language` och säkerställ att källbilder är ≥300 dpi. | +| **Minnesbristfel** | Laddar en enorm PDF på en gång. | Använd strömningsmetoden som visas ovan. | +| **Ofullständig sidigenkänning** | PDF innehåller blandade raster-/vektorlager. | Platta först ut PDF:en: `pdfDoc.flatten();` före OCR. | + +--- + +## Sammanfattning – Vad vi gick igenom + +* **Hur man använder OCR** med Aspose i Java. +* **Extrahera text från PDF** (eller TIFF) i ett enda anrop. +* **Känn igen text från PDF** över alla sidor utan manuella loopar. +* **Konvertera PDF till text** och outputa den rent. +* Tips för att hantera en **OCR‑flersidig PDF**, inklusive språkjusteringar och minnesvänlig strömning. + +Du har nu ett komplett, produktionsklart kodsnutt som du kan lägga in i vilket Java‑projekt som helst. Känn dig fri att justera bildbehandlingsalternativen, byta ut output‑destinationen eller integrera resultatet i ett sökindex. + +--- + +## Nästa steg + +* **Utforska Aspose OCR:s avancerade funktioner** – som handskriftigenkänning eller PDF/A‑kompatibilitet. +* **Kombinera OCR med PDF‑manipulation** (t.ex. lägg till ett dolt textlager tillbaka i PDF‑en för sökbara PDF‑filer). +* **Automatisera batch‑bearbetning** genom att läsa en mapp med PDF‑filer och skriva varje resultat till en motsvarande `.txt`‑fil. + +Om du stöter på problem är Aspose‑forumen en bra plats att be om hjälp, och API‑referensen ger utförliga detaljer om varje metod som används här. + +Lycka till med kodningen, och njut av att förvandla de envisa skanningarna till sökbar text! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/swedish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..1691e498a --- /dev/null +++ b/ocr/swedish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-05-03 +description: Läs binär fil i Java för att ladda en Aspose OCR‑licens. Lär dig använda + FileInputStream, hantera binär data och praktiska tips i denna steg‑för‑steg‑guide. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: sv +og_description: Läs en binär fil i Java för att ladda en Aspose OCR‑licens. Följ den + här kompletta guiden för att bemästra FileInputStream och hantering av binär data + i Java. +og_title: Läs binär fil i Java – Ladda licensbytes för Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Läs binär fil i Java – Ladda licensbytes för Aspose OCR +url: /sv/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Läs binär fil Java – Ladda licensbytes för Aspose OCR + +Har du någonsin behövt **read binary file Java** när du hanterar en licens för ett tredjepartsbibliotek? Du är inte ensam. De flesta Java‑utvecklare stöter på detta problem när de försöker mata in en `.lic`‑fil i en OCR‑motor, och de vanliga textfil‑knepen fungerar helt enkelt inte. + +I den här handledningen går vi igenom ett komplett, körbart exempel som visar exakt hur man öppnar en binär licensfil, hämtar dess bytes till minnet och överlämnar dessa bytes till Aspose OCR för Java. På vägen kommer du att se varför `FileInputStream` är rätt verktyg, hur man hanterar möjliga `IOException`s och några pro‑tips som du kanske inte hittar i den officiella dokumentationen. + +När du är klar med guiden kommer du att kunna **read binary file Java**‑stil, skapa ett `License`‑objekt och tilldela det till en `OcrEngine` utan att svettas. + +## Vad den här guiden täcker + +- Förutsättningar: Java 17+, Maven (eller Gradle) och Aspose OCR för Java‑biblioteket. +- Steg‑för‑steg‑kod som läser en binär `.lic`‑fil med `FileInputStream`. +- Förklaring av varje rad så att du förstår *varför* bakom *hur*. +- Hantering av kantfall (saknad fil, korrupta bytes) och praktiska felsökningstips. +- Ett slutgiltigt, självständigt kodsnutt som du kan kopiera‑klistra in i din IDE och köra omedelbart. + +Om du någonsin har undrat om du behöver ett speciellt API för att läsa licensfiler, är svaret ett rungande **no**—bara gammal god binär I/O. Låt oss dyka ner. + +## Steg 1: Läs binär fil Java med FileInputStream + +Det första vi behöver är ett pålitligt sätt att hämta råa bytes från licensfilen på disken. I Java är `FileInputStream` verktyget för just det. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Varför detta fungerar:** `Files.readAllBytes` skapar internt en `FileInputStream`, läser hela strömmen och stänger den åt dig. Det är säkert, koncist och undviker den klassiska fällan “glöm att stänga strömmen”. Om du föredrar det klassiska mönstret kan du ersätta det med ett try‑with‑resources‑block som använder `FileInputStream` direkt. + +### Pro‑tips + +Om licensfilen är enorm (osannolikt, men möjligt), överväg att strömma den i bitar istället för att ladda hela på en gång. För de flesta OCR‑licensfiler—vanligtvis under några kilobyte—är engångsmetoden helt acceptabel. + +## Steg 2: Skapa License‑objekt för Aspose OCR + +Nu när vi har de råa byten, måste vi omvandla dem till en Aspose‑kompatibel `License`‑instans. Biblioteket tillhandahåller en `License`‑klass som accepterar en byte‑array. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Varför detta är viktigt:** Genom att skicka bytena direkt undviker du eventuella sökvägsrelaterade problem (som förvirring kring relativ till arbetskatalog) och håller din distribution portabel—paketera bara `.lic`‑filen där din app körs. + +## Steg 3: Tilldela licens till OCR‑motor + +Med `License`‑objektet redo är nästa steg att fästa det på en `OcrEngine`. Detta steg säkerställer att OCR‑komponenten körs i licensierat läge istället för i utvärderings‑sandlådan. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Obs:** Vissa äldre Aspose‑versioner exponerar ett offentligt `license`‑fält istället för en setter. Justera koden därefter (`ocrEngine.license = license;`) om du får ett kompileringsfel. + +## Steg 4: Verifiera att licensen laddats framgångsrikt (valfritt men hjälpsamt) + +En snabb kontroll sparar timmar av felsökning senare. `License`‑klassen kastar inget vid framgång, men du kan försöka med en ofarlig OCR‑operation för att bekräfta. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Om du ser meddelandet “License applied successfully” är du klar. Om inte, dubbelkolla sökvägen, byte‑integriteten och att du använder rätt Aspose‑version. + +## Fullt fungerande exempel + +När alla bitar sätts ihop får du ett kompakt, kopiera‑klistra‑redo program. Känn dig fri att släppa in detta i en `Main.java`‑fil och köra det. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Förväntad output (förutsatt att dummy‑bilden finns):** + +``` +License applied successfully – OCR engine is ready. +``` + +Om licensfilen saknas eller är korrupt får du ett tydligt felmeddelande som: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Vanliga fallgropar & hur man undviker dem + +- **Sökvägsförvirring:** Relativa sökvägar löses mot JVM:s arbetskatalog, inte källfilens plats. Använd en absolut sökväg eller placera `.lic`‑filen bredvid JAR‑filen och referera den med `getResourceAsStream`. +- **Fel byte‑ordning:** Försök aldrig läsa en binär fil med en `Reader` (teckenorienterad). Det kommer att förstöra data. Håll dig till API:er baserade på `FileInputStream`. +- **Versionsmismatch:** Vissa äldre Aspose‑utgåvor förväntar sig `license.setLicense("path/to/file")` istället för `setLicenseBytes`. Kontrollera bibliotekets release‑notes om du får ett `NoSuchMethodError`. +- **Glömt att stänga strömmar:** Om du återgår till det klassiska `FileInputStream`‑tillvägagångssättet, slå in det i ett try‑with‑resources‑block för att garantera stängning. + +## Slutsats + +Du vet nu hur man **read binary file Java** för att ladda en Aspose OCR‑licens, skapa ett `License`‑objekt och koppla det till en `OcrEngine`. Processen bygger på korrekt binär databehandling med `FileInputStream` (eller den mer moderna `Files.readAllBytes`) och några enkla API‑anrop. + +Härifrån kan du gå vidare till faktiska OCR‑uppgifter—extrahera text från PDF‑filer, bilder eller till och med skannade dokument—med förtroendet att licenslagret inte kommer att hindra dig. Om du är nyfiken på relaterade ämnen, kolla in handledningarna om **Java FileInputStream**, **binary data handling Java** och **read license file Java** för andra bibliotek. + +Lycklig kodning, och må dina OCR‑resultat vara kristallklara! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/swedish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/swedish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..1ad128d78 --- /dev/null +++ b/ocr/swedish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-05-03 +description: Lär dig hur du känner igen text från en bild och konverterar bild till + text med Aspose OCR för Java. Inkluderar tips för att förbättra OCR‑noggrannheten + och köra OCR på PNG‑filer. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: sv +og_description: Steg‑för‑steg‑guide för att känna igen text från bild med Aspose OCR + för Java. Lär dig att konvertera bild till text, förbättra OCR‑noggrannheten och + köra OCR på PNG. +og_title: Igenkänna text från bild med Aspose OCR – Java-handledning +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Igenkänn text från bild med Aspose OCR – Komplett Java‑guide +url: /sv/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# känna igen text från bild med Aspose OCR – Komplett Java-guide + +Har du någonsin behövt **recognize text from image** men varit osäker på vilket bibliotek som ger pålitliga resultat? Du är inte ensam—många utvecklare stöter på samma problem när de först försöker extrahera data från skannade PDF‑filer, kvitton eller laboratorierapporter. Den goda nyheten är att Aspose OCR för Java gör hela processen enkel som en smörgås, och du kan till och med **convert image to text** med bara några få rader. + +I den här handledningen går vi igenom allt du behöver veta: från att ladda en bild för OCR, justera inställningar för att **improve OCR accuracy**, till att slutligen **run OCR on PNG**‑filer och skriva ut den extraherade texten. Inga onödiga detaljer, bara ett praktiskt, körbart exempel som du kan lägga in i ditt projekt idag. + +--- + +## Vad du behöver + +Innan vi dyker ner, se till att du har följande på din maskin: + +| Förutsättning | Orsak | +|--------------|--------| +| Java 17 (eller nyare) | Aspose OCR riktar sig mot Java 8+, men den senaste JDK:n ger bättre prestanda. | +| Aspose OCR for Java‑bibliotek (`aspose-ocr.jar`) | Kärnmotorn som utför det tunga arbetet. | +| En giltig Aspose OCR‑licensfil (`Aspose.OCR.Java.lic`) | Aktiverar hela funktionsuppsättningen; annars får du ett provvattenstämpel. | +| En bildfil (PNG, JPEG, TIFF, osv.) som innehåller tydlig text | Vi kommer att använda `lab_report.png` som ett konkret exempel. | +| En anpassad ordlista (valfritt) | Förbättrar igenkänning av domänspecifika termer som “hemoglobin”. | + +Om någon av dessa låter obekanta, panik inte—att installera en JAR och skapa en enkel textfil är triviala uppgifter som vi kommer att gå igenom om ett ögonblick. + +## Steg 1 – Ställ in projektet och importera beroenden + +Först, skapa ett nytt Maven‑ (eller Gradle‑) projekt och lägg till Aspose OCR‑beroendet. Maven‑användare kan klistra in detta kodsnutt i sin `pom.xml`: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Om du föredrar Gradle, är motsvarigheten: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Proffstips:** Håll koll på versionsnumret; nyare versioner innehåller ofta buggfixar som direkt påverkar **improve OCR accuracy**. + +Skapa nu en Java‑klass kallad `OcrDemo.java`. Högst upp i filen importerar du de nödvändiga klasserna: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## Steg 2 – Initiera OCR‑motorn och tillämpa din licens + +Du kan inte **run OCR on PNG**‑filer utan att först informera motorn om att den är licensierad. Så här gör du: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Varför det extra `License`‑objektet? Aspose separerar licenshantering från motorn så att du kan byta licenser i farten, vilket kan vara praktiskt i multi‑tenant SaaS‑scenarier. + +## Steg 3 – Ladda en anpassad ordlista (valfritt men kraftfullt) + +Om du hanterar medicinsk terminologi, kemiska formler eller varumärkesnamn, kan en anpassad ordlista **improve OCR accuracy** dramatiskt. Ordlistan är en vanlig textfil med ett ord per rad: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Varför det fungerar:** OCR‑motorn använder ordlistan för att vinkla sin språkmodell mot de ord du bryr dig om, vilket minskar feligenkänningar som “hemo­globin” → “hemoglobin”. + +Om du inte har en ordlista, hoppa bara över den här raden—Aspose fungerar fortfarande bra med sina inbyggda språkpaket. + +## Steg 4 – Ladda bilden du vill bearbeta + +Nu **load image for OCR** faktiskt. Aspose stödjer många format, men PNG är särskilt förlustfri, vilket gör det till ett säkert val för skannade dokument. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Edge case:** Om din bild är enorm (över 5 MB), överväg att skala ner den först för att snabba upp bearbetningen. `Image`‑klassen erbjuder en `resize`‑metod som du kan anropa innan igenkänning. + +## Steg 5 – Kör OCR‑processen och hämta texten + +När allt är konfigurerat, starta OCR‑motorn. `recognize`‑metoden returnerar ett `OcrResult`‑objekt som innehåller den extraherade strängen, förtroendescore och även avgränsningsrutor om du behöver layoutinformation. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +När du kör programmet bör du se något liknande: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Klart—du har framgångsrikt **recognize text from image** och **convert image to text** med Aspose OCR. + +## Steg 6 – Vanliga fallgropar och hur du åtgärdar dem + +Även med ett robust bibliotek kan några små problem få dig att snubbla: + +| Symptom | Trolig orsak | Åtgärd | +|---------|--------------|-----| +| Tomt resultat | Licens ej tillämpad eller utgången | Verifiera sökvägen till `Aspose.OCR.Java.lic` och säkerställ att den matchar versionen. | +| Förvrängda tecken | Bilden har låg upplösning eller är kraftigt komprimerad | Använd en högupplöst källa eller förbehandla bilden (binarisering, räta upp). | +| Saknade domänspecifika ord | Ingen anpassad ordlista | Lägg till en ordlistfil med de saknade termerna, ett per rad. | +| Långsam bearbetning på stora batcher | Ingen flertrådad bearbetning | Skapa en pool av `OcrEngine`‑instanser (de är trådsäkra) och bearbeta bilder parallellt. | + +## Steg 7 – Utöka exemplet: Spara resultat till en fil + +Om du behöver behålla den extraherade texten för senare analys, skriv helt enkelt den till en fil: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Nu har du en återanvändbar pipeline som **load image for OCR**, extraherar innehållet och lagrar det var du än vill. + +## Bonus: Köra OCR på flera PNG‑filer i en mapp + +Verkliga projekt måste ofta bearbeta dussintals skanningar. Här är en snabb loop som plockar upp varje `.png` i en katalog: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Kom ihåg att återanvända samma `ocrEngine`‑instans—att skapa en ny för varje fil ger onödig overhead. + +## Slutsats + +Du har nu en fullständigt utrustad, end‑to‑end‑lösning som **recognize text from image** med Aspose OCR för Java. Från att ladda bilden, eventuellt berika motorn med en anpassad ordlista för att **improve OCR accuracy**, hela vägen till att **run OCR on PNG**‑filer och spara resultatet, är koden redo att läggas in i vilket Java‑projekt som helst. + +Vad blir nästa steg? Prova att mata in den extraherade texten i en naturlig språk‑bearbetningspipeline, eller experimentera med OCR på handskrivna anteckningar (Aspose erbjuder även ett handskriftsläge). Möjligheterna är oändliga, och du har just låst upp det första steget. + +Lycklig kodning! Om du stött på några problem, lämna gärna en kommentar nedan—låt oss felsöka tillsammans. + +![Screenshot of OCR result in console – recognize text from image](/images/ocr_console_result.png "recognize text from image 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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/thai/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..66447f55c --- /dev/null +++ b/ocr/thai/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-05-03 +description: ดึงตารางจากภาพโดยใช้ Aspose OCR Java. เรียนรู้วิธีโหลดภาพสำหรับ OCR, + ดึงตารางจากไฟล์ PNG, แปลงข้อความตารางในภาพ, และจดจำภาพใบเสร็จได้อย่างรวดเร็ว. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: th +og_description: ดึงตารางจากภาพด้วย Aspose OCR Java. คู่มือนี้แสดงวิธีโหลดภาพสำหรับ + OCR, ดึงตารางจาก PNG, แปลงข้อความตารางจากภาพ, และจดจำภาพใบเสร็จ. +og_title: ดึงตารางจากภาพ – บทแนะนำ Aspose OCR Java +tags: +- Aspose OCR +- Java +- Image Processing +title: สกัดตารางจากภาพ – คู่มือ Aspose OCR Java ฉบับสมบูรณ์ +url: /th/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ดึงตารางจากภาพ – คู่มือ Aspose OCR Java ฉบับสมบูรณ์ + +เคยต้องการ **extract tables from image** ไฟล์แต่เจออุปสรรคบ้างไหม? บางทีคุณอาจมีใบเสร็จสแกนหรือใบแจ้งหนี้ที่ถ่ายภาพและข้อมูลตารางซ่อนอยู่ในไฟล์ PNG ในบทแนะนำนี้คุณจะได้เห็นวิธี *load image for OCR* อย่างแม่นยำ, แปลงภาพเป็นแถวที่จัดโครงสร้าง, และ **convert image table text** ให้เป็นสิ่งที่คุณสามารถใช้งานใน Java ได้ + +เราจะเดินผ่านทุกขั้นตอน ตั้งแต่การให้ลิขสิทธิ์กับ Aspose OCR engine จนถึงการพิมพ์แต่ละเซลล์ของตารางที่ตรวจจับได้ สิ้นสุดแล้วคุณจะสามารถ **recognize receipt image** ไฟล์และดึงตารางออกมาได้โดยไม่ต้องเหนื่อย + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธีการเริ่มต้น Aspose OCR engine และใช้ลิขสิทธิ์ของคุณ +- ทำไมการเปิดใช้งานการตรวจจับตารางถึงเป็นกุญแจสำคัญสำหรับ **extract tables from image** +- โค้ดที่จำเป็นสำหรับ **load image for OCR** และรันการจดจำบน PNG +- วิธีจัดการกับหลายตาราง, สแกนความละเอียดต่ำ, และข้อผิดพลาดทั่วไป +- วิธี **convert image table text** ให้เป็นรูปแบบที่พิมพ์ได้ (หรือพร้อมบันทึกลงฐานข้อมูล) + +ไม่ต้องอ้างอิงเอกสารภายนอก—ทุกอย่างที่คุณต้องการอยู่ที่นี่ + +## ข้อกำหนดเบื้องต้น + +- Java 17 หรือใหม่กว่า (โค้ดใช้ระบบโมดูลสมัยใหม่) +- ไฟล์ลิขสิทธิ์ Aspose OCR for Java (`Aspose.OCR.Java.lic`). หากคุณแค่ทดลองใช้ กุญแจประเมินผลชั่วคราวก็ใช้ได้เช่นกัน +- ภาพ PNG ที่มีตารางชัดเจน (เช่น `receipt_with_table.png`) +- Maven หรือ Gradle เพื่อดึง Aspose OCR dependency: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Pro tip:** เก็บไฟล์ลิขสิทธิ์ไว้ใกล้โฟลเดอร์ `src/main/resources` ของคุณเพื่อให้เส้นทางคงที่ในทุกสภาพแวดล้อม + +## ขั้นตอนที่ 1 – เริ่มต้น OCR engine เพื่อ **extract tables from image** + +ก่อนที่ engine จะทำอะไรได้ มันต้องรู้ว่าคุณเป็นผู้ใช้ที่ได้รับอนุญาต + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Why this matters:* หากไม่มีลิขสิทธิ์ที่ถูกต้อง OCR engine จะทำงานในโหมดทดลอง ซึ่งอาจตัดผลลัพธ์หรือใส่น้ำหนักลายน้ำที่ไม่ต้องการ—ทำให้การดึงตารางไม่เชื่อถือได้ + +## ขั้นตอนที่ 2 – เปิดการตรวจจับตาราง (**extract table from png**) + +การตรวจจับตารางไม่ได้เปิดโดยค่าเริ่มต้น คุณต้องเปิดสวิตช์นี้ + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +การเปิดฟลักนี้บอกให้ Aspose OCR ปฏิบัติกลุ่มข้อความที่จัดเรียงกันเป็นแถวและคอลัมน์ ซึ่งเป็นสิ่งที่คุณต้องการเมื่ออยาก **extract tables from image** ไฟล์ที่เป็น PNG + +## ขั้นตอนที่ 3 – **Load image for OCR** และ **recognize receipt image** + +ตอนนี้เราจะส่งภาพเข้าสู่ engine จริง ๆ + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +หากคุณกำลังทำงานในสถานการณ์ **recognize receipt image** คุณอาจต้องทำการประมวลผลล่วงหน้าที่ภาพ (deskew, เพิ่มความคม) ซึ่งอยู่นอกขอบเขตของคู่มือนี้แต่ควรสำรวจสำหรับสแกนที่มีเสียงรบกวน + +## ขั้นตอนที่ 4 – ประมวลผลผลลัพธ์ OCR และ **convert image table text** + +อ็อบเจ็กต์ `OcrResult` อาจมีหนึ่งหรือหลายตาราง เราจะวนลูปผ่านตารางเหล่านั้นและพิมพ์แต่ละเซลล์ + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**What this does:** + +- ตรวจสอบว่าพบตารางหรือไม่; หากไม่พบจะแนะนำให้ปรับคุณภาพภาพ +- สำหรับแต่ละตาราง พิมพ์แถวที่คั่นด้วยแท็บ ซึ่งเป็นรูปแบบที่สะดวกสำหรับการนำเข้า CSV +- คำสั่ง `Cell::getText` เป็นหัวใจของ **convert image table text** – ดึงสตริง OCR ดิบจากแต่ละเซลล์ + +### ผลลัพธ์ที่คาดหวัง + +สมมติว่า `receipt_with_table.png` มีตารางง่าย 3 × 2 คุณจะเห็นประมาณนี้: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +หากภาพมีหลายตาราง แต่ละตารางจะถูกแยกด้วยบรรทัดว่าง + +## ขั้นตอนที่ 5 – ตรวจสอบตารางที่ดึงมาและจัดการกรณีขอบ + +### ข้อผิดพลาดทั่วไป + +| Issue | Why it happens | Quick fix | +|-------|----------------|-----------| +| **No tables detected** | Image too blurry or low contrast | Apply binarization (`ImageProcessing.applyThreshold`) before OCR | +| **Merged cells** | Table lines are faint, OCR treats them as one block | Increase `TableDetectionSensitivity` in `ocrEngine.getConfig()` | +| **Incorrect column order** | Skewed image causing mis‑alignment | Use `ImageProcessing.deskew` or rotate the image by 90° | + +### สิ่งที่ควรทำต่อ + +- **Export to CSV** – แทนที่ `System.out.println(line);` ด้วย `FileWriter` เพื่อบันทึกข้อมูล +- **Feed into a database** – แมปแต่ละแถวเป็น POJO แล้วใช้ JPA เพื่อบันทึก +- **Combine with other APIs** – สำหรับการประมวลผลใบเสร็จ คุณอาจดึงยอดรวมด้วย regular expressions จากข้อความ OCR + +## ตัวอย่างทำงานเต็มรูปแบบ (พร้อมคัดลอก‑วาง) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +รันโปรแกรมนี้ ชี้ไปที่ PNG ที่มีตารางชัดเจน แล้วดูคอนโซลเต็มไปด้วยแถวที่จัดรูปแบบอย่างเรียบร้อย + +## สรุป + +ตอนนี้คุณมีโซลูชันครบวงจรเพื่อ **extract tables from image** ไฟล์โดยใช้ Aspose OCR for Java ตั้งแต่การให้ลิขสิทธิ์จนถึง **load image for OCR**, การเปิด **extract table from png**, และสุดท้าย **convert image table text** ทุกขั้นตอนมาพร้อมคำอธิบายและเคล็ดลับปฏิบัติ + +ต่อไปลองเชื่อมผลลัพธ์กับไฟล์ CSV, ส่งแถวเข้าไปยังฐานข้อมูลเชิงสัมพันธ์, หรือรวมขั้นตอน OCR กับการดึงยอดรวมจากใบเสร็จ รูปแบบเดียวกันนี้ใช้ได้กับใบแจ้งหนี้, รายการราคา, และเอกสารสแกนใด ๆ ที่ซ่อนข้อมูลไว้ในตาราง + +มีคำถามเกี่ยวกับการจัดการใบเสร็จความละเอียดต่ำหรือการขยายเป็นการประมวลผลแบบแบตช์? แสดงความคิดเห็นด้านล่าง แล้วขอให้สนุกกับการเขียนโค้ด! + +![ตัวอย่างการดึงตารางจากภาพ](https://example.com/assets/extract-tables-from-image.png "ดึงตารางจากภาพ – ตัวอย่างผลลัพธ์") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/thai/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/thai/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..0083b8f47 --- /dev/null +++ b/ocr/thai/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: ดึงข้อความจากภาพด้วย Python โดยใช้ Aspose OCR. เรียนรู้บทแนะนำ OCR ด้วย + Python อย่างเป็นขั้นตอน พร้อมการสนับสนุนอักษรละติน‑ซีริลลิกผสมกัน. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: th +og_description: ดึงข้อความจากภาพด้วย Python อย่างรวดเร็ว คู่มือนี้แสดงวิธีใช้ Aspose + OCR ใน Python สำหรับภาพที่มีอักษรละติน‑ซีริลลิกผสมกัน +og_title: ดึงข้อความจากรูปภาพด้วย Python – คู่มือ Aspose OCR อย่างเต็มรูปแบบ +tags: +- OCR +- Python +- Aspose +title: ดึงข้อความจากรูปภาพด้วย Python – คู่มือ Aspose OCR ฉบับเต็ม +url: /th/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ดึงข้อความจากรูปภาพด้วย Python – คู่มือ Aspose OCR ฉบับสมบูรณ์ + +เคยต้อง **ดึงข้อความจากรูปภาพ python** แต่ไม่แน่ใจว่าคลังไหนจะจัดการอักขระละตินและซีริลลิกได้พร้อมกัน? คุณไม่ได้เป็นคนเดียว—นักพัฒนามักเจอปัญหาเดียวกันเมื่อทำ OCR กับสกรีนช็อตหลายภาษา + +ข่าวดีคือ Aspose OCR สำหรับ Python ทำให้กระบวนการทั้งหมดเกือบจะไร้ความยุ่งยาก ในบทแนะนำนี้เราจะเดินผ่านการติดตั้งแพคเกจ, การใส่ไลเซนส์, การโหลดรูปภาพหลายภาษา, และสุดท้ายการดึงข้อความที่ถูกจดจำออกมาในไม่กี่บรรทัดโค้ด หลังจากนี้คุณจะมีสคริปต์พร้อมรันที่สามารถนำไปใช้ในโปรเจกต์ใดก็ได้ + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธีตั้งค่า **Aspose OCR Python** ใน virtual environment +- ทำไมการบอกใบ้ภาษา (เช่น ละตินและซีริลลิก) จึงช่วยเร่งการตรวจจับ +- โค้ดที่จำเป็นสำหรับ **ดึงข้อความจากรูปภาพ python** ด้วยการเรียกฟังก์ชันเดียว +- ข้อผิดพลาดทั่วไปเมื่อทำ OCR หลายภาษาและวิธีหลีกเลี่ยง + +### ข้อกำหนดเบื้องต้น + +- Python 3.8 หรือใหม่กว่า ติดตั้งบนเครื่องของคุณ +- ไฟล์ไลเซนส์ Aspose OCR (`Aspose.OCR.Java.lic`) ไฟล์ทดลองฟรีใช้ได้สำหรับทดสอบ แต่ไฟล์ไลเซนส์เต็มจะลบลายน้ำออก +- รูป PNG/JPEG ที่มีอักขระละตินและซีริลลิกร่วมกัน (เราจะเรียกมันว่า `mixed_latin_cyrillic.png`) + +ถ้าตรงตามข้อเหล่านี้ คุณพร้อมแล้ว—ไม่ต้องมีเฟรมเวิร์กหรือไลบรารีหนักอื่นใด + +--- + +## ขั้นตอนที่ 1 – ดึงข้อความจากรูปภาพ Python: ติดตั้ง Aspose OCR + +อย่างแรกเลย: ดึงไลบรารีจาก PyPI และตรวจสอบให้ environment ของคุณสามารถหาไฟล์ไลเซนส์ได้ + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **เคล็ดลับ:** หากเจอข้อผิดพลาดเรื่องสิทธิ์ ให้เพิ่ม `--user` ไปที่คำสั่ง `pip install` หรือรันเทอร์มินัลในฐานะผู้ดูแลระบบ + +เมื่อแพคเกจติดตั้งเสร็จ เราจะ import ไลบรารีและชี้ engine ไปที่ไลเซนส์ของเรา + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +ทำไมต้องใส่ไลเซนส์ในขั้นตอนนี้? หากไม่มีไลเซนส์ engine จะทำงานใน **โหมดประเมินผล** ซึ่งจำกัดจำนวนหน้าและใส่ลายน้ำในผลลัพธ์ การใส่ไลเซนส์ล่วงหน้าช่วยให้การเรียก `recognize` ต่อมาส่งคืนข้อความที่สะอาดไม่มีลายน้ำ + +--- + +## ขั้นตอนที่ 2 – โหลดรูปภาพที่มีเนื้อหาละติน‑ซีริลลิกผสมกัน + +ต่อไปเราจะนำรูปเข้าหน่วยความจำ Aspose OCR ใช้คลาส `Image` ของตนเอง ซึ่งทำหน้าที่แยกความแตกต่างของฟอร์แมตไฟล์ + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +หากคุณสงสัยว่าฟอร์แมตอื่นทำงานได้หรือไม่—ใช่, JPEG, BMP, TIFF, และแม้แต่ PDF ก็รองรับ เพียงเปลี่ยนนามสกุลไฟล์และเมธอด `from_file` จะจัดการให้เอง + +--- + +## ขั้นตอนที่ 3 – บอกใบ้ภาษาเพื่อการตรวจจับที่เร็วขึ้น (ไม่บังคับแต่แนะนำ) + +เมื่อคุณรู้ว่าภาษาใดบ้างที่อยู่ในรูป คุณสามารถบอก engine ล่วงหน้าได้ แม้ไม่จำเป็น แต่จะ **ลดเวลาในการประมวลผลอย่างมีนัยสำคัญ** และเพิ่มความแม่นยำสำหรับ OCR หลายภาษา + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +รายการบอกใบ้รับภาษาใดก็ได้ที่ Aspose OCR รองรับ (เช่น `"Arabic"`, `"Japanese"`). หากข้ามขั้นตอนนี้ engine จะลองทุกภาษาที่มีในตัว ซึ่งอาจช้ากว่าเมื่อทำงานกับชุดข้อมูลขนาดใหญ่ + +--- + +## ขั้นตอนที่ 4 – รัน OCR Engine และดึงข้อความออกมา + +นี่คือช่วงเวลาที่ต้องรอ: ทำการจดจำอักขระจริง ๆ เมธอด `recognize` จะคืนค่าเป็นอ็อบเจ็กต์ `OcrResult` ที่บรรจุข้อความธรรมดา, คะแนนความเชื่อมั่น, และแม้แต่กล่องขอบ (bounding boxes) หากคุณต้องการใช้ต่อในภายหลัง + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **ทำไมวิธีนี้ถึงได้ผล:** ภายใน Aspose OCR ผสานตัวตรวจจับข้อความแบบ neural‑network กับตัวจำแนกภาษาที่เฉพาะเจาะจง การส่งอ็อบเจ็กต์ `Image` เข้าไปทำให้ไม่ต้องทำการเตรียมภาพแบบแมนนวลเช่นการทำ binarisation + +--- + +## ขั้นตอนที่ 5 – ดูข้อความที่ดึงออกมา + +สุดท้าย ให้พิมพ์ผลลัพธ์ลงคอนโซล ในแอปพลิเคชันจริงคุณอาจบันทึกลงไฟล์, ส่งไปยังฐานข้อมูล, หรือป้อนให้กับ API แปลภาษา + +```python +print("Recognised text:") +print(extracted_text) +``` + +เมื่อรันสคริปต์ คุณควรเห็นผลลัพธ์ประมาณนี้: + +``` +Recognised text: +Hello мир! This is a test. +``` + +ผลลัพธ์นี้ยืนยันว่าเราสามารถ **ดึงข้อความจากรูปภาพ python** ได้สำเร็จ ทั้งละตินและซีริลลิกในขั้นตอนเดียว + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ + +ด้านล่างเป็นสคริปต์ทั้งหมดที่คุณสามารถคัดลอก‑วางลงไฟล์ชื่อ `extract_ocr.py` เพียงเปลี่ยนเส้นทาง placeholder ให้เป็นตำแหน่งจริงของคุณ + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +บันทึกไฟล์, เปิด virtual environment, แล้วรัน: + +```bash +python extract_ocr.py +``` + +คุณควรเห็นข้อความที่ถูกจดจำพิมพ์ออกมา แสดงว่าการทำงานจากต้นจนจบสำเร็จ + +--- + +## คำถามที่พบบ่อย & กรณีขอบ + +**รูปภาพเบลอจะทำอย่างไร?** +Aspose OCR มีฟังก์ชัน de‑skewing และลดนอยส์ในตัว แต่สำหรับภาพที่เสียหายมากอาจต้องทำพรี‑โปรเซสด้วย OpenCV (เช่น ใช้ Gaussian blur แล้ว threshold) คลาส `Image` ยังรับอาร์เรย์ NumPy ได้ จึงสามารถต่อฟิลเตอร์กำหนดเองก่อนเรียก `recognize` + +**สามารถประมวลผลโฟลเดอร์เต็มของรูปได้หรือไม่?** +ทำได้เลย เพียงใส่ตรรกะใน `for` loop, เปลี่ยน `from_file` ให้อ่านแต่ละไฟล์ชื่อ, แล้วเก็บผลลัพธ์ใน dictionary อย่าลืมคำนึงถึงอัตราการเรียก API หากใช้เวอร์ชันคลาวด์ + +**ต้องไลเซนส์แยกตามภาษาแต่ละภาษาไหม?** +ไม่จำเป็น ไลเซนส์ Aspose OCR หนึ่งใบครอบคลุมทุกภาษาที่รองรับ รายการ `language_hints` เป็นเพียงการบอกใบ้เพื่อประสิทธิภาพ + +**PDF สามารถใช้เป็นอินพุตได้หรือไม่?** +เปลี่ยน `Image.from_file` เป็น `ocr.Image.from_file("document.pdf")` OCR engine จะ rasterise แต่ละหน้าโดยอัตโนมัติและคืนข้อความต่อเนื่อง + +--- + +## สรุป + +เราได้แสดงวิธีสั้น ๆ แต่พร้อมใช้งานในระดับ production เพื่อ **ดึงข้อความจากรูปภาพ python** ด้วย Aspose OCR ขั้นตอน—ติดตั้ง, ใส่ไลเซนส์, โหลด, บอกใบ้ภาษา, จดจำ, และแสดงผล—ครอบคลุมทุกอย่างที่คุณต้องการเพื่อให้ได้ผลลัพธ์ที่เชื่อถือได้สำหรับเนื้อหาละติน‑ซีริลลิกผสม + +ต่อจากนี้คุณอาจสำรวจหัวข้อขั้นสูงเช่น **การแปลงภาพเป็นข้อความ** สำหรับการประมวลผลเป็นชุด, ผสานผลลัพธ์กับ **Python OCR tutorial** ด้านการประมวลผลภาษาธรรมชาติ, หรือทดลองบอกใบ้ภาษาอื่น ๆ สำหรับเอกสารหลายภาษา ไม่จำกัดอะไรเลย และโค้ดก็พร้อมให้คุณใช้แล้ว + +มีกรณีการใช้งานอื่นหรือเจอปัญหา? แสดงความคิดเห็น, แบ่งปันประสบการณ์, และเราจะคุยต่อกันต่อไป ขอให้เขียนโค้ดอย่างสนุก! + +![ดึงข้อความจากรูปภาพ python ตัวอย่าง](/images/extract-text-from-image-python.png "ภาพหน้าจอแสดงผล OCR – ดึงข้อความจากรูปภาพ python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/thai/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..a3d6aa41e --- /dev/null +++ b/ocr/thai/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-05-03 +description: ดึงข้อความจากภาพได้ทันทีด้วย Aspose OCR. เรียนรู้การกำหนดพื้นที่สนใจ, + โหลดภาพสำหรับ OCR, และดึงข้อความจากใบแจ้งหนี้ในเวลาเพียงไม่กี่นาที. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: th +og_description: ดึงข้อความจากภาพโดยใช้ Aspose OCR คู่มือนี้แสดงวิธีกำหนดพื้นที่สนใจ + โหลดภาพสำหรับ OCR และดึงข้อความจากใบแจ้งหนี้อย่างมีประสิทธิภาพ +og_title: สกัดข้อความจากภาพด้วย Aspose OCR – คู่มือเต็ม +tags: +- ocr +- python +- image-processing +title: สกัดข้อความจากภาพด้วย Aspose OCR – คู่มือแบบขั้นตอนต่อขั้นตอน +url: /th/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ดึงข้อความจากรูปภาพด้วย Aspose OCR – คู่มือขั้นตอนโดยละเอียด + +ต้องการ **ดึงข้อความจากรูปภาพ** อย่างรวดเร็วหรือไม่? คุณไม่ได้เป็นคนเดียว—นักพัฒนามักต้องต่อสู้กับสแกนที่มีเสียงรบกวน ใบเสร็จรับเงิน และใบแจ้งหนี้ ในบทแนะนำนี้เราจะพาคุณผ่านโซลูชันครบวงจรที่ไม่เพียงแสดงวิธี *ดึงข้อความจากรูปภาพ* แต่ยังสาธิตวิธี **กำหนดพื้นที่สนใจ** (region of interest), **โหลดรูปภาพสำหรับ OCR**, และดึงบรรทัดที่ต้องการจากใบแจ้งหนี้ + +เราจะครอบคลุมทุกอย่างตั้งแต่การติดตั้งไลบรารี Aspose OCR ไปจนถึงการจัดการกรณีขอบเช่นหน้าที่หมุนเอียง สุดท้ายคุณจะได้สคริปต์ที่ทำงานได้ซึ่งดึงข้อความที่ต้องการในหนึ่งคำสั่ง—ไม่ต้องครอปภาพด้วยตนเอง + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธี **โหลดรูปภาพสำหรับ OCR** ด้วย Aspose Python API +- วิธีที่ดีที่สุดในการ **กำหนดพื้นที่สนใจ** (ROI) เพื่อให้คุณประมวลผลเฉพาะส่วนของภาพที่สำคัญ +- วิธี **ดึงข้อความจากฟิลด์ใบแจ้งหนี้** โดยไม่ต้องดึงข้อมูลทั้งหน้า +- เคล็ดลับสำหรับ **ประมวลผลภาพด้วย OCR** อย่างมีประสิทธิภาพและหลีกเลี่ยงข้อผิดพลาดทั่วไป + +**ข้อกำหนดเบื้องต้น** – สภาพแวดล้อม Python 3.9+ ล่าสุด, ไฟล์ลิขสิทธิ์ Aspose OCR ที่ถูกต้อง, และรูปภาพ (เช่น PNG ของใบแจ้งหนี้) ไม่ต้องใช้เครื่องมือภายนอกอื่นใด + +--- + +## ขั้นตอนที่ 1 – เริ่มต้น OCR Engine (การตั้งค่าเบื้องต้น) + +ก่อนที่คุณจะ **ประมวลผลภาพด้วย OCR** คุณต้องมีอินสแตนซ์ของเอนจินที่บรรจุลิขสิทธิ์ของคุณ ขั้นตอนนี้สำคัญมากเพราะเอนจินที่ไม่มีลิขสิทธิ์จะให้ผลลัพธ์ที่จำกัดเท่านั้น + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*ทำไมจึงสำคัญ*: วัตถุ `OcrEngine` เป็นหัวใจของไลบรารี; มันจัดการโมเดลภาษา, การเตรียมภาพ, และการตรวจสอบลิขสิทธิ์ การตั้งค่าลิขสิทธิ์ล่วงหน้าช่วยให้คุณได้ความแม่นยำเต็มที่และไม่มีลายน้ำ + +--- + +## ขั้นตอนที่ 2 – โหลดรูปภาพสำหรับ OCR + +เมื่อเอนจินพร้อมแล้ว เราต้อง **โหลดรูปภาพสำหรับ OCR** Aspose รองรับหลายรูปแบบ (PNG, JPEG, TIFF) แต่การใช้ `Image.from_file` จะรับประกันว่าภาพถูกถอดรหัสอย่างถูกต้อง + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **เคล็ดลับมืออาชีพ**: เก็บไฟล์ภาพให้มีขนาดไม่เกิน 5 MB เพื่อการประมวลผลที่เร็วที่สุด ไฟล์ขนาดใหญ่สามารถย่อขนาดด้วย `image.resize(width, height)` ก่อนทำ OCR + +--- + +## ขั้นตอนที่ 3 – กำหนดพื้นที่สนใจ (ROI) + +ใบแจ้งหนี้ส่วนใหญ่มีข้อความที่ไม่เกี่ยวข้องจำนวนมาก—บล็อกที่อยู่, ส่วนท้าย ฯลฯ โดยการ **กำหนดพื้นที่สนใจ** เราบอกเอนจินให้มองเฉพาะที่ที่จำนวนเงินหรือวันที่อยู่ ซึ่งช่วยเพิ่มความเร็วและความแม่นยำ + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*วิธีการทำงาน*: คลาส `Rectangle` จะครอบตัดภาพในเชิงเสมือน; เอนจิน OCR จะไม่เห็นพิกเซลนอกสี่เหลี่ยมดังกล่าว ดังนั้นสัญญาณรบกวนที่อยู่นอก ROI จะถูกละเว้น + +--- + +## ขั้นตอนที่ 4 – จำแนกข้อความภายใน ROI + +เมื่อมีเอนจิน, ภาพ, และ ROI พร้อม เราจึง **ดึงข้อความจากรูปภาพ** วิธี `recognize` จะคืนค่าเป็นอ็อบเจ็กต์ `OcrResult` ที่บรรจุสตริงที่ตรวจพบและคะแนนความเชื่อมั่น + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**ผลลัพธ์ที่คาดหวัง** (ตัวอย่างบรรทัดรวมยอดของใบแจ้งหนี้ทั่วไป): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +หาก ROI ถูกกำหนดตำแหน่งอย่างถูกต้อง คุณจะเห็นเพียงบรรทัดที่ต้องการ—ไม่มีข้อมูลอื่น + +--- + +## ขั้นตอนที่ 5 – ตัวอย่างทำงานเต็มรูปแบบ (พร้อมคัดลอก‑วาง) + +ด้านล่างเป็นสคริปต์สมบูรณ์ที่เชื่อมขั้นตอนทั้งหมดเข้าด้วยกัน บันทึกเป็น `extract_invoice_roi.py` แล้วรันด้วย `python extract_invoice_roi.py` + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +รันสคริปต์แล้วคุณควรเห็นบรรทัดที่ต้องการแสดงบนคอนโซล หากได้สตริงว่าง ให้ตรวจสอบพิกัด ROI อีกครั้ง—การเบี่ยงเบนเพียงไม่กี่พิกเซลอาจทำให้ข้อความหายไปทั้งหมด + +--- + +## ขั้นตอนที่ 6 – ความแปรผันทั่วไป & กรณีขอบ + +### a) รูปแบบใบแจ้งหนี้ที่แตกต่างกัน +ใบแจ้งหนี้จากผู้ขายต่างกันมักจะเปลี่ยนตำแหน่งกล่องยอดรวม เพื่อ **ประมวลผลภาพด้วย OCR** บนหลายรูปแบบ ควรพิจารณา: + +- **หลาย ROI**: รันเอนจินต่อเนื่องกับสี่เหลี่ยมหลายอันและเลือกผลลัพธ์ที่มีความเชื่อมั่นสูงที่สุด +- **การตรวจจับ ROI แบบไดนามิก**: ใช้ไลบรารีประมวลผลภาพขนาดเบา (เช่น OpenCV) เพื่อหาป้าย “Total” ก่อน แล้วคำนวณ ROI ตามตำแหน่งนั้น + +### b) ภาพที่หมุนหรือเอียง +หากสแกนเอียง ให้เรียก `image.rotate(angle)` ก่อนทำการจำแนก: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR ยังมีฟีเจอร์ auto‑deskew แต่การหมุนด้วยตนเองให้การควบคุมที่แม่นยำกว่า + +### c) ตัวอักษรที่ไม่ใช่ละติน +โมเดลภาษาตั้งต้นคืออังกฤษ เพื่อ **ดึงข้อความจากใบแจ้งหนี้** ที่เขียนเป็นภาษาต่างประเทศ ให้ตั้งค่าภาษาให้ตรงก่อนทำการจำแนก: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) PDF ขนาดใหญ่ +เมื่อทำงานกับ PDF หลายหน้า ให้แยกแต่ละหน้าเป็นภาพก่อน (Aspose PDF → Image) แล้วใช้ตรรกะ ROI เดียวกันต่อแต่ละหน้า + +--- + +## ขั้นตอนที่ 7 – เคล็ดลับประสิทธิภาพ & เคล็ดลับระดับมืออาชีพ + +- **แคชเอนจิน**: การสร้าง `OcrEngine` ซ้ำในลูปทำให้ช้าลง สร้างครั้งเดียวแล้วนำกลับใช้ใหม่ +- **ประมวลผลเป็นชุด**: หากต้องจัดการใบแจ้งหนี้หลายสิบใบ ให้ห่อการเรียก OCR ด้วย `ThreadPoolExecutor` เพื่อทำงานแบบขนาน (I/O‑bound) +- **ตรวจสอบความเชื่อมั่น**: `ocr_result.confidence` ให้ค่าเป็น float ระหว่าง 0‑1 ปฏิเสธผลลัพธ์ที่ต่ำกว่า 0.85 แล้วลอง ROI ที่ใหญ่ขึ้นหรือทำการตรวจสอบด้วยมือ + +> **ระวัง**: การตั้ง ROI เล็กเกินไปอาจตัดอักขระออก ทำให้ผลลัพธ์เป็นข้อความเสียหาย ทดสอบกับใบแจ้งหนี้ตัวอย่างหลายใบก่อนขยายการใช้งาน + +--- + +## สรุป + +ตอนนี้คุณมีวิธีการที่มั่นคงและพร้อมผลิตจริงเพื่อ **ดึงข้อความจากรูปภาพ** ด้วย Aspose OCR พร้อมวิธี **กำหนดพื้นที่สนใจ**, **โหลดรูปภาพสำหรับ OCR**, และ **ดึงข้อความจากฟิลด์ใบแจ้งหนี้** อย่างเชื่อถือได้ การจำกัด OCR ให้ทำงานใน ROI ที่แคบช่วยเพิ่มความเร็วและความแม่นยำ—เหมาะสำหรับการประมวลผลเป็นชุดของใบเสร็จหลายพันใบ + +พร้อมก้าวต่อไปหรือยัง? ลองผสานสคริปต์นี้เข้ากับ Flask API เพื่อให้เว็บแอปของคุณอัปโหลดใบแจ้งหนี้และคืนยอดรวมทันที หรือทดลองใช้หลาย ROI เพื่อดึงวันที่, หมายเลขใบแจ้งหนี้, และชื่อผู้ขายในครั้งเดียว ความเป็นไปได้ไม่มีที่สิ้นสุด และด้วยพื้นฐานที่ครอบคลุมในที่นี้ คุณพร้อมรับมือกับความท้าทาย OCR ใด ๆ + +ขอให้เขียนโค้ดสนุกและข้อความที่ดึงออกมาสะอาดเสมอ! + +![Workflow diagram showing how to extract text from image using Aspose OCR](workflow.png){: .center-image alt="Workflow to extract text from image using Aspose 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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/thai/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..86a09f5bc --- /dev/null +++ b/ocr/thai/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-05-03 +description: สกัดข้อความจากภาพด้วย OCR แบบอะซิงโครนัสของ Python. เรียนรู้วิธีแปลงไฟล์ + tif เป็นข้อความ, โหลดภาพเพื่อทำ OCR, และจดจำข้อความจากภาพอย่างมีประสิทธิภาพ. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: th +og_description: ดึงข้อความจากภาพโดยใช้ Python async OCR คู่มือนี้แสดงวิธีแปลงไฟล์ + tif เป็นข้อความ โหลดภาพสำหรับ OCR และจดจำข้อความจากภาพ +og_title: สกัดข้อความจากภาพด้วย Python Async OCR – คู่มือฉบับสมบูรณ์ +tags: +- OCR +- Python +- AsyncIO +title: สกัดข้อความจากภาพด้วย Python Async OCR – คู่มือฉบับสมบูรณ์ +url: /th/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ดึงข้อความจากรูปภาพด้วย Python Async OCR – คู่มือฉบับสมบูรณ์ + +Need to **ดึงข้อความจากรูปภาพ** quickly? With Python's async OCR you can do it in just a few lines of code. Whether you're dealing with a massive .tif scan or a handful of JPEGs, this tutorial shows you how to convert tif to text, load image for OCR, and finally recognize text from image without blocking your event loop. + +Here's the thing—most developers reach for a synchronous library, then stare at a frozen UI while the engine crunches pixels. In this guide we’ll flip that script by using Aspose OCR Cloud's asynchronous API, so your application stays responsive. By the end you’ll have a runnable script that pulls text out of any supported image format, and you’ll understand the why behind each step. + +## สิ่งที่คุณจะได้เรียนรู้ + +- How to set up the Aspose OCR Cloud SDK for Python. +- The exact code needed to **load image for OCR** and start an async recognition task. +- Tips for handling large .tif files and licensing quirks. +- Ways to **extract image text** safely, even when the service returns errors. +- A complete, copy‑paste‑ready example you can drop into your own project. + +> **Prerequisite**: Python 3.8+ และไฟล์ใบอนุญาต Aspose OCR Cloud (`Aspose.OCR.Java.lic`). No other third‑party packages are required. + +--- + +![ขั้นตอนการดึงข้อความจากรูปภาพ](workflow.png){: .align-center alt="ขั้นตอนการดึงข้อความจากรูปภาพ"} + +## ดึงข้อความจากรูปภาพ – ภาพรวม Async OCR + +Before we dive into code, let’s unpack the flow. When you call `recognize_async` the SDK sends the image to Aspose’s cloud, spins up a background job, and hands you a `Task` object. Awaiting that task yields an `OcrResult` containing the plain‑text representation of the picture. Because the call is asynchronous, you can fire off multiple jobs in parallel—perfect for batch processing large archives of scanned documents. + +### ทำไมต้องใช้ Async? + +- **Non‑blocking I/O** – Your event loop stays free to handle other work (e.g., serving HTTP requests). +- **Scalability** – Spin up dozens of recognitions at once; the cloud does the heavy lifting. +- **Responsiveness** – UI applications won’t freeze while waiting for the OCR engine. + +Now that the “why” is clear, let’s see the **how**. + +## แปลง TIF เป็นข้อความด้วย Aspose OCR + +A common stumbling block is assuming every OCR library natively supports .tif. Aspose does, but you still need to feed it an `Image` object. The SDK abstracts the format, so you can simply point it at the file path. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**คำอธิบายบรรทัดสำคัญ** + +- `ocr_engine.license = ...` – Without a valid license the cloud returns a 403 error. Make sure the `.lic` file is accessible from your script’s working directory. +- `ocr.Image.from_file(image_path)` – This step **loads image for OCR**; the SDK automatically detects the format, so you don’t have to convert the .tif beforehand. +- `recognize_async` – Returns a coroutine‑compatible task. You could launch several of these in a `gather` call if you have a batch. + +> **Pro tip**: If you’re processing gigabyte‑size TIFFs, consider splitting them into pages first. Aspose’s `Image.from_file` can accept a page index, which reduces memory pressure. + +## จดจำข้อความจากรูปภาพแบบ Asynchronously + +Let’s see how you’d call the function from a typical script. The `asyncio.run` entry point is the simplest way to fire off the coroutine when you’re not already inside an event loop (e.g., a plain CLI tool). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**สิ่งที่คาดหวัง** + +Running the script against a clear, high‑resolution scan typically yields a multi‑line string matching the printed page. If the image is noisy, Aspose still attempts to clean it up, but you may see garbled characters. In that case, consider pre‑processing with OpenCV (e.g., thresholding) before feeding the file to the OCR engine. + +### การจัดการข้อผิดพลาดอย่างราบรื่น + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Catching `OcrException` ensures your program doesn’t crash when the cloud returns an error—something that often trips newcomers who forget about network hiccups. + +## โหลดรูปภาพสำหรับ OCR – เคล็ดลับปฏิบัติ + +1. **File Path vs. Bytes** – The SDK accepts a file path, but you can also load from a `bytes` object if the image lives in memory (`ocr.Image.from_bytes`). This is handy when you’ve already fetched the file from S3 or a database. +2. **Supported Formats** – Besides .tif, Aspose handles PDF, BMP, GIF, and even multi‑page TIFFs. Use `Image.from_file("doc.pdf")` to OCR PDFs directly. +3. **Performance** – For batch jobs, reuse the same `OcrEngine` instance; creating a new engine for each file adds unnecessary overhead. + +## ตัวอย่างการทำงานเต็มรูปแบบ (ทุกขั้นตอนในสคริปต์เดียว) + +Below is the complete, ready‑to‑run script that incorporates licensing, error handling, and a simple command‑line argument parser. Copy‑paste it, adjust the license path, and you’re set. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**ผลลัพธ์ที่คาดหวัง** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +If the image contains a simple paragraph, the console will display the same lines, preserving line breaks. For multi‑page TIFFs, the SDK concatenates the pages in order. + +## คำถามที่พบบ่อย (FAQ) + +**Q: Does this work with other async frameworks like FastAPI?** +A: Absolutely. Replace the `asyncio.run` call with `await async_ocr(path)` inside your endpoint, and FastAPI will handle the event loop for you. + +**Q: What if I need to process hundreds of files at once?** +A: Use `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**Q: Can I extract text from a password‑protected PDF?** +A: Not directly. You’ll need to unlock the PDF first (e.g., with `pikepdf`) and then feed the decrypted bytes to `ocr.Image.from_bytes`. + +**Q: How do I handle languages other than English?** +A: Set the language before recognition: + +```python +engine.language = "spa" # Spanish ISO code +``` + +## สรุป + +You now have a solid, **extract text from image** solution that leverages Python’s `asyncio` and Aspose OCR Cloud’s asynchronous API. By following the steps above you can **convert tif to text**, **load image for OCR**, and **recognize text from image** in a non‑blocking fashion—perfect for both command‑line utilities and high‑traffic web services. + +What’s next? Try batching a folder of scans, experiment with language settings, or pipe the OCR output into a downstream NLP pipeline. The sky’s + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/thai/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..e989a3770 --- /dev/null +++ b/ocr/thai/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,175 @@ +--- +category: general +date: 2026-05-03 +description: ดึงข้อความจาก OCR อย่างรวดเร็วด้วย Aspose OCR. เรียนรู้วิธีปรับปรุงความแม่นยำของ + OCR, โหลดภาพ OCR, เตรียมภาพ OCR, และรันการสแกน OCR ด้วย Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: th +og_description: ดึงข้อความ OCR อย่างรวดเร็วด้วย Aspose OCR. เรียนรู้วิธีปรับปรุงความแม่นยำของ + OCR, โหลดรูปภาพ OCR, เตรียมการประมวลผลรูปภาพ OCR, และรันการสแกน OCR ด้วย Python. +og_title: สกัดข้อความ OCR – คู่มือฉบับสมบูรณ์กับ Aspose OCR +tags: +- OCR +- Python +- Aspose +title: สกัดข้อความ OCR – คู่มือฉบับสมบูรณ์กับ Aspose OCR +url: /th/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Complete Guide with Aspose OCR + +เคยต้องการ **extract text ocr** จากสแกนที่เอียงแต่ไม่เข้าใจว่าทำไมผลลัพธ์ถึงดูเป็นอักขระไร้ความหมายหรือไม่? คุณไม่ได้อยู่คนเดียว—นักพัฒนาหลายคนเจอปัญหาเดียวกันเมื่อภาพเอียง, มีสัญญาณรบกวน, หรือมีคอนทราสต์ต่ำ ข่าวดีคือการปรับแต่งการตั้งค่าบางอย่างสามารถเปลี่ยนภาพที่รกเป็นข้อความที่สะอาดและค้นหาได้ ในบทเรียนนี้เราจะเดินผ่านตัวอย่างเต็มรูปแบบตั้งแต่ต้นจนจบเพื่อแสดงวิธีการ **improve ocr accuracy**, **load image ocr**, **preprocess image ocr**, และสุดท้าย **run OCR scan** ด้วย Aspose OCR for Python + +เมื่อจบคู่มือคุณจะได้สคริปต์ที่สามารถอ่านไฟล์ JPEG ที่สแกน, ทำความสะอาดอัตโนมัติ, และพิมพ์ข้อความที่สกัดออกมาที่คอนโซล ไม่ต้องคลิก “ดูเอกสาร” ลิงก์ลับ—ทุกอย่างที่คุณต้องการอยู่ที่นี่แล้ว + +## สิ่งที่คุณต้องการ + +- **Python 3.8+** (เวอร์ชันล่าสุดที่เสถียรที่สุดทำงานได้ดีที่สุด) +- **Aspose.OCR for Python via .NET** – ติดตั้งด้วย `pip install aspose-ocr` +- ไฟล์ **license** (`Aspose.OCR.Java.lic`) หากคุณซื้อแล้ว (เวอร์ชันทดลองฟรีก็ใช้ได้สำหรับการทดสอบ) +- รูปภาพที่คุณต้องการประมวลผล (เช่น `skewed_scanned_doc.jpg`) + +แค่นั้นเอง ถ้าคุณมีทั้งหมดนี้ เราก็พร้อมจะกระโดดเข้าสู่โค้ดได้เลย + +## ขั้นตอนที่ 1: Extract Text OCR ด้วย Aspose OCR Engine + +สิ่งแรกที่ทำคือสร้าง OCR engine แล้วใส่ license เข้าไป คิดว่า engine คือสมองที่จะอ่านภาพ; หากไม่มี license มันจะปฏิเสธทำงานเกินขีดจำกัดการสาธิตเล็กน้อย + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **ทำไมเรื่องนี้สำคัญ:** การใส่ license ล่วงหน้าช่วยหลีกเลี่ยงความล้มเหลวเงียบในภายหลัง หากข้ามขั้นตอนนี้ engine จะเข้าสู่โหมดจำกัดและคุณจะได้ตัวอักษรเพียงไม่กี่ตัวกลับมา—แน่นอนว่าไม่ใช่สิ่งที่คุณคาดหวังเมื่อพยายาม **extract text ocr**. + +## ขั้นตอนที่ 2: Improve OCR Accuracy ด้วย Pre‑processing + +สแกนที่เอียงหรือมีเม็ดฝุ่นเป็นศัตรูของโครงการ OCR ใด ๆ Aspose ให้คุณสลับการตั้งค่าที่เป็นประโยชน์หลายอย่างที่ทำการ deskew, denoise, และเพิ่มคอนทราสต์โดยอัตโนมัติ นี่คือหัวใจของ **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – หมุนภาพกลับสู่แนวนอน ซึ่งสำคัญมากเมื่อเอกสารต้นฉบับไม่ได้วางแบนอย่างสมบูรณ์ +- **remove_noise** – กำจัดจุดรบกวนสุ่มที่มักปรากฏใน JPEG ความละเอียดต่ำ +- **enhance_contrast** – ทำให้ข้อความสีดำเข้มขึ้นและพื้นหลังสีอ่อนขึ้น ช่วย engine แยกแยะอักขระได้ดีขึ้น +- **binarization = "Otsu"** – อัลกอริทึมคลาสสิกที่กำหนดค่า threshold ที่ดีที่สุดสำหรับการแปลงเป็นขาว‑ดำ + +> **เคล็ดลับ:** หากคุณรู้ว่าภาพต้นทางของคุณสะอาดแล้ว คุณสามารถปิดตัวเลือกเหล่านี้เพื่อเร่งการประมวลผลได้ แต่สำหรับสแกนในโลกจริงส่วนใหญ่ การเปิดไว้เป็นทางเลือกที่ปลอดภัยที่สุด + +## ขั้นตอนที่ 3: Load Image OCR สำหรับการสแกน + +ตอนนี้ engine พร้อมแล้ว เราต้อง **load image ocr** Aspose’s `Image.from_file` รองรับ JPEG, PNG, TIFF, และรูปแบบอื่น ๆ อีกหลายชนิด + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +แทนที่ `YOUR_DIRECTORY` ด้วยพาธจริงบนเครื่องของคุณ หากคุณทำงานกับสตรีมไบต์ในหน่วยความจำ (เช่น จากการอัปโหลดเว็บ) คุณก็สามารถใช้ `ocr.Image.from_bytes(byte_data)` — engine เดียวกันจะจัดการให้ + +> **กรณีขอบ:** ไฟล์ TIFF ขนาดใหญ่กินหน่วยความจำมาก หากเจอ `MemoryError` ให้พิจารณาลดความละเอียดของภาพก่อนหรือใช้ `ocr_engine.config.max_image_size` เพื่อตั้งค่าขนาดสูงสุดของมิติ + +## ขั้นตอนที่ 4: Run OCR Scan และรับผลลัพธ์ + +เมื่อโหลดภาพและเปิดใช้งานการ preprocess แล้ว ขั้นตอนสุดท้ายคือ **run OCR scan** คำสั่งนี้ทำงานหนักทั้งหมดเบื้องหลัง + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +อ็อบเจกต์ `ocr_result` มีคุณสมบัติที่เป็นประโยชน์หลายอย่าง: + +- `ocr_result.text` – สตริงธรรมดาที่คุณต้องการ +- `ocr_result.confidence` – คะแนนเชิงตัวเลข (0‑100) บ่งบอกความน่าเชื่อถือโดยรวม +- `ocr_result.words` – รายการอ็อบเจกต์คำพร้อมพิกัด bounding box, มีประโยชน์สำหรับการไฮไลท์ + +## ขั้นตอนที่ 5: Print the Extracted Text + +สุดท้าย เราแสดงผลลัพธ์ ในแอปพลิเคชันจริงคุณอาจเขียนข้อความลงไฟล์, ฐานข้อมูล, หรือส่งต่อไปยังดัชนีการค้นหา สำหรับบทเรียนนี้ `print` อย่างง่ายก็เพียงพอ + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**ผลลัพธ์ที่คาดหวัง** (ตัวอย่างสำหรับใบแจ้งหนี้ง่าย ๆ): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +หาก confidence ต่ำ (< 80) คุณอาจต้องกลับไปตรวจสอบตัวเลือกการ preprocess หรือลองวิธี binarization อื่นเช่น `"Sauvola"`. + +## โบนัส: การแสดงภาพ Pipeline การ Pre‑processing (ทางเลือก) + +บางครั้งการมองเห็นสิ่งที่ engine ทำกับภาพช่วยได้ Aspose ให้คุณส่งออก bitmap ที่ผ่านการประมวลผล + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +จากนั้นคุณสามารถฝังภาพนี้ในเอกสารได้: + +แผนภาพ workflow ของ extract text ocr แสดงขั้นตอนการ preprocessing + +> **ทำไมต้องทำเช่นนี้:** เมื่อผลลัพธ์ OCR ดูแปลก ๆ การดู `processed_debug.png` อย่างรวดเร็วมักจะเผยให้เห็นว่าภาพยังมืดเกินไป, ยังเอียงอยู่, หรือมีสัญญาณรบกวนเหลืออยู่หรือไม่ + +## คำถามที่พบบ่อย & ข้อควรระวัง + +- **ถ้าเอกสารของฉันเป็นหลายหน้าเป็นอย่างไร?** + Aspose OCR ทำงานหน้า‑ต่อหน้า ให้วนลูปแต่ละภาพหน้าและต่อข้อความจาก `ocr_result.text` เข้าด้วยกัน + +- **ฉันสามารถจดจำภาษานอกเหนือจากอังกฤษได้หรือไม่?** + ได้ — ตั้งค่า `ocr_engine.config.language = "fra"` (หรือรหัส ISO‑639‑2 ใดก็ได้) ก่อนเรียก `recognize` + +- **มีขีดจำกัดขนาดภาพหรือไม่?** + engine จำกัดที่ 10 MP โดยค่าเริ่มต้น หากต้องการสแกนขนาดใหญ่ขึ้นให้เพิ่ม `ocr_engine.config.max_image_size` แต่ต้องระวังการใช้หน่วยความจำ + +- **ต้องใช้ OCR engine แยกต่างหากสำหรับ PDF หรือไม่?** + สำหรับ PDF คุณสามารถแยกแต่ละหน้ามาเป็นภาพก่อน (ใช้ Aspose.PDF) หรือใช้ฟีเจอร์ PDF OCR ในตัวเอง ขั้นตอนที่แสดงในที่นี้ยังคงเหมือนเดิมหลังจากที่คุณได้ภาพแล้ว + +## สรุป + +เราได้ครอบคลุมวิธี **extract text ocr** ด้วย Aspose OCR for Python ตั้งแต่การใส่ license ให้ engine, การปรับตั้งค่าเพื่อ **improve ocr accuracy**, การ **load image ocr**, และสุดท้าย **run OCR scan** เพื่อดึงข้อความที่สะอาดสคริปต์เต็มพร้อมคัดลอก‑วางพร้อมกับความเข้าใจว่าทำไมแต่ละ flag ถึงสำคัญ + +## ขั้นตอนต่อไปคืออะไร? + +- **ทดลองวิธี binarization ต่าง ๆ** (`"Sauvola"`, `"Bradley"`). ฟอนต์บางแบบตอบสนองดีกับ threshold แบบปรับตามสภาพแสง +- **รวมกับเครื่องมือค้นหา** (เช่น Elasticsearch) โดยใช้คะแนน confidence เพื่อจัดอันดับผลลัพธ์ +- **ผสานกับไลบรารี post‑processing OCR** เช่น `pyspellchecker` เพื่อแก้ไขการจดจำผิดบ่อย ๆ +- **สำรวจการประมวลผลแบบ batch** สำหรับหลายร้อยสแกน — ห่อขั้นตอนทั้งหมดในฟังก์ชันและป้อนโฟลเดอร์ของภาพ + +ปรับแต่งโค้ดตามใจ เพิ่ม logging ของคุณเอง หรือเชื่อมต่อกับ pipeline การจัดการเอกสารที่ใหญ่ขึ้น หากเจออุปสรรคใด ๆ คอมเมนต์ด้านล่างได้เลย — 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/thai/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/thai/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..a771ab379 --- /dev/null +++ b/ocr/thai/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,167 @@ +--- +category: general +date: 2026-05-03 +description: วิธีทำ OCR PDF ด้วย Aspose OCR Java. เรียนรู้วิธีรัน OCR บน PDF, จดจำข้อความใน + PDF, แปลง PDF เป็น JSON และโหลด PDF เพื่อทำ OCR ด้วยเพียงไม่กี่บรรทัดของโค้ด. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: th +og_description: วิธีทำ OCR PDF ด้วย Aspose OCR Java คู่มือนี้แสดงวิธีรัน OCR บน PDF, + จดจำข้อความใน PDF, แปลง PDF เป็น JSON และโหลด PDF เพื่อทำ OCR อย่างรวดเร็ว +og_title: วิธีทำ OCR PDF ด้วย Aspose OCR – บทเรียนการเขียนโปรแกรมเต็มรูปแบบ +tags: +- Aspose OCR +- Java +- PDF processing +title: วิธีทำ OCR ไฟล์ PDF ด้วย Aspose OCR – คู่มือขั้นตอนเต็มแบบละเอียด +url: /th/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีทำ OCR PDF ด้วย Aspose OCR – คู่มือขั้นตอนเต็ม + +เคยสงสัยไหมว่า **how to OCR PDF** อย่างไรโดยไม่ต้องต่อสู้กับเครื่องมือบรรทัดคำสั่งหรือจ่ายค่า SaaS ที่แพง? คุณไม่ได้เป็นคนเดียว ในหลายโครงการ—การอัตโนมัติใบแจ้งหนี้, การจัดเก็บสแกนสัญญา, หรือการสร้างฐานความรู้ที่ค้นหาได้—คุณจะต้องการการสกัดข้อความจาก PDF อย่างรวดเร็วและเชื่อถือได้. + +ข่าวดี? ด้วย Aspose OCR for Java คุณสามารถ **run OCR on PDF**, รับรู้ข้อความในหน้า PDF, **convert PDF to JSON**, และแม้กระทั่ง **load PDF for OCR** ด้วยไม่กี่บรรทัด ในบทแนะนำนี้เราจะเดินผ่านขั้นตอนทั้งหมด, อธิบายว่าทำไมแต่ละขั้นตอนสำคัญ, และให้ตัวอย่างโค้ดที่พร้อมใช้งานที่คุณสามารถนำไปใส่ในโปรเจคของคุณได้ + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธีตั้งค่า Aspose OCR engine และใช้ไลเซนส์ของคุณ. +- วิธีที่แน่นอนในการ **load PDF for OCR** และส่งเข้า recognizer. +- วิธี **recognize text PDF** ครอบคลุมทุกหน้าในหนึ่งการเรียก. +- การส่งออกผล OCR ทั้งหมดเป็นไฟล์ **JSON** (เหมาะสำหรับ API ด้านล่าง) และหน้าเดียวเป็น **XML**. +- เคล็ดลับ, จุดบกพร่อง, และรูปแบบที่คุณอาจต้องใช้เมื่อทำงานกับ PDF หลายหน้า หรือแพ็คเกจภาษาที่กำหนดเอง. + +> **Prerequisites** – คุณต้องมี Java 8 หรือใหม่กว่า, ไฟล์ไลเซนส์ Aspose OCR for Java ที่ถูกต้อง (`Aspose.OCR.Java.lic`), และ Aspose OCR JAR อยู่ใน classpath ของคุณ. ไม่จำเป็นต้องใช้ไลบรารีภายนอกอื่นใด. + +## วิธีทำ OCR PDF – เริ่มต้น Aspose OCR Engine + +สิ่งแรกที่คุณต้องทำคือสร้างอินสแตนซ์ของ `OcrEngine` และแนบไลเซนส์ของคุณ ขั้นตอนนี้จะปลดล็อกฟีเจอร์ทั้งหมดและลบลายน้ำการประเมินผล. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Why this matters:** +หากไม่มีไลเซนส์, Aspose OCR จะทำงานในโหมด “trial” ที่จำกัดจำนวนหน้าและเพิ่มลายน้ำในผลลัพธ์ การใช้ไลเซนส์ล่วงหน้าจะทำให้ขั้นตอนต่อไปทำงานโดยไม่มีข้อจำกัดที่ไม่คาดคิด. + +## ทำ OCR บน PDF – โหลดเอกสารและรับรู้ข้อความ + +ตอนนี้เราจะ **load PDF for OCR**. Aspose OCR ถือว่า PDF เป็นประเภทพิเศษ `PdfDocument` ซึ่งภายในจะสกัดแต่ละหน้าเป็นภาพก่อนส่งให้ recognizer. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**What’s happening under the hood?** +`recognizeDocument` จะวนลูปทุกหน้า, แปลงเป็น raster ที่ DPI ที่เหมาะสม, แล้วรัน OCR engine ผลลัพธ์คืออาร์เรย์ `OcrPage` ที่แต่ละองค์ประกอบมีข้อความที่ตรวจจับ, คะแนนความเชื่อมั่น, และข้อมูลการจัดวาง วิธีนี้เชื่อถือได้มากกว่าการป้อนไบต์ PDF ดิบเข้าไลบรารี OCR ทั่วไป. + +## แปลงผล OCR เป็น JSON – ส่งออกรายงานเต็ม + +ระบบ downstream ส่วนใหญ่ชอบ JSON เพราะง่ายต่อการ deserialize ใน Java, JavaScript, Python หรือแม้แต่ PowerShell. Aspose OCR มาพร้อมกับตัวช่วย `JsonExport` ที่ทำการ serialize อาร์เรย์ `OcrPage[]` ทั้งหมด. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**When would you use this?** +หากคุณต้องการส่งผล OCR ไปยังดัชนีการค้นหา (Elasticsearch, Solr) หรือ data‑pipeline, รูปแบบ JSON จะให้การแสดงผลที่เป็นโครงสร้างของแต่ละหน้า, บรรทัด, และคำ, พร้อมค่าความเชื่อมั่น. + +## ส่งออกหน้าแรกเป็น XML – บันทึกหน้าเดี่ยว + +บางครั้งคุณอาจสนใจเพียงหน้าเดียว—เช่นหน้าแรกอาจมีหัวเรื่องหรือหมายเลขใบแจ้งหนี้ คลาส `XmlExport` ให้คุณบันทึก `OcrPage` เดียวเป็นไฟล์ XML ที่เป็นระเบียบ. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Why XML?** +ระบบ legacy หรือ workflow ขององค์กรบางส่วนยังคงพึ่งพา XML schema สำหรับการนำเข้า ไฟล์ที่สร้างขึ้นสอดคล้องกับ schema ของ Aspose ทำให้การตรวจสอบความถูกต้องง่ายขึ้น. + +## ตรวจสอบผลลัพธ์ – ตรวจไฟล์ JSON และ XML + +หลังจากโปรแกรมทำงานเสร็จ, คุณควรเห็นไฟล์สองไฟล์ใน `YOUR_DIRECTORY`: + +- `report_ocr.json` – มีอาร์เรย์ของอ็อบเจ็กต์หน้า. ตัวอย่างสั้นอาจเป็น: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – มีข้อมูลเดียวกันสำหรับหน้า 1, ห่อหุ้มด้วยแท็ก ``. + +เปิดไฟล์เหล่านี้ด้วยโปรแกรมแก้ไขใดก็ได้; คุณจะเห็นสตริง OCR ดิบ, คะแนนความเชื่อมั่น, และพิกัด bounding‑box หาก JSON ดูว่างเปล่า, ตรวจสอบอีกครั้งว่า PDF อินพุตมีเนื้อหา raster (ภาพสแกน) จริงหรือไม่และไม่ใช่ข้อความที่เลือกได้—Aspose OCR ทำงานเฉพาะบนภาพ. + +## ปัญหาที่พบบ่อย & เคล็ดลับระดับมืออาชีพ + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|----------------|-----| +| **Empty JSON** | PDF มีข้อความแบบเนทีฟ, ไม่ใช่ภาพ. | ใช้ `PdfDocument.fromFile(..., true)` เพื่อบังคับ rasterization, หรือแปลงหน้าล่วงหน้าเป็นภาพ. | +| **Low confidence** | PDF ต้นฉบับมีความละเอียดต่ำหรือถูกบีบอัดมาก. | เพิ่ม DPI โดยเรียก `ocrEngine.getImageProcessingOptions().setDpi(300)` ก่อน `recognizeDocument`. | +| **License not found** | เส้นทางผิดหรือไฟล์หาย. | ใช้เส้นทางแบบ absolute หรือวางไฟล์ `.lic` บน classpath แล้วเรียก `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory on huge PDFs** | ทุกหน้าถูกโหลดเข้าสู่หน่วยความจำพร้อมกัน. | ประมวลผลหน้าเป็นชุด: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +## ขยายตัวอย่าง + +- **Run OCR on PDF with a specific language** – ตั้งค่า `ocrEngine.getLanguage().setLanguage(Language.English)` หรือโหลดแพ็คเกจภาษาที่กำหนดเอง. +- **Export each page to separate JSON files** – วนลูป `ocrPages` และเรียก `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Integrate with a search engine** – ส่ง JSON ไปยัง `attachment` processor ของ Elasticsearch เพื่อการค้นหาแบบเต็มข้อความ. + +## สรุป + +ตอนนี้คุณมีโซลูชันที่ครบถ้วนและพร้อมใช้งานในระดับ production สำหรับ **how to OCR PDF** ด้วย Aspose OCR for Java โดยการเริ่มต้น engine, โหลด PDF, รัน OCR, และส่งออกทั้ง **JSON** และ **XML**, คุณสามารถรวม OCR เข้าไปใน workflow backend ใดก็ได้—ไม่ว่าคุณต้องการ **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, หรือเพียง **load PDF for OCR**. + +ลองใช้งาน, ปรับ DPI หรือการตั้งค่าภาษา, แล้วคุณจะเห็น PDF ที่เคยเป็นภาพไม่สามารถค้นหาได้กลายเป็นทรัพยากรที่ค้นหาได้. ต้องการต่อยอด? ลองทำดัชนี JSON ไปยัง Elasticsearch, หรือประมวลผล XML ต่อด้วย XSLT เพื่อสร้างรายงานแบบกำหนดเอง. + +ขอให้เขียนโค้ดอย่างสนุกสนาน, และขอให้ 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/thai/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/thai/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..a5b817c53 --- /dev/null +++ b/ocr/thai/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,157 @@ +--- +category: general +date: 2026-05-03 +description: 'วิธีการรัน OCR อย่างรวดเร็ว: เรียนรู้การดึงข้อความจากภาพและการจดจำข้อความจากแบบฟอร์มโดยใช้ + Aspose OCR Java ขั้นตอนง่าย ๆ สำหรับการอ่านภาพเพื่อ OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: th +og_description: 'วิธีรัน OCR อย่างรวดเร็ว: เรียนรู้การดึงข้อความจากภาพและการจดจำข้อความจากฟอร์มโดยใช้ + Aspose OCR Java ขั้นตอนง่าย ๆ สำหรับการอ่านภาพเพื่อ OCR.' +og_title: วิธีรัน OCR บนฟอร์ม – ดึงข้อความจากภาพ +tags: +- ocr +- java +- image-processing +title: วิธีรัน OCR บนแบบฟอร์ม – แยกข้อความจากภาพ +url: /th/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีรัน OCR บนฟอร์ม – ดึงข้อความจากภาพ + +เคยสงสัย **วิธีรัน OCR** บนเอกสารสแกนโดยไม่ต้องเสียเวลาหลายชั่วโมงกับไลบรารีที่ซับซ้อนหรือไม่? คุณไม่ได้อยู่คนเดียว ในหลายโครงการ—ไม่ว่าจะเป็นการแปลงใบแจ้งหนี้เป็นดิจิทัล, การจัดเก็บสัญญา, หรือการดึงข้อมูลจากฟอร์มที่เขียนด้วยมือ—การ **ดึงข้อความจากไฟล์ภาพ** เป็นปัญหาที่ต้องเผชิญทุกวัน + +เรื่องคือ Aspose OCR for Java ทำให้กระบวนการทั้งหมดเกือบจะไร้ความยุ่งยาก ในบทเรียนนี้เราจะเดินผ่านทุกบรรทัดของโค้ดที่คุณต้องการเพื่อ **จดจำข้อความจากฟอร์ม** อธิบายเหตุผลที่แต่ละขั้นตอนสำคัญ และแสดงวิธี **อ่านภาพสำหรับ OCR** พร้อมคะแนนความเชื่อมั่น เมื่อเสร็จคุณจะมีคลาส Java ที่พร้อมรันซึ่งสามารถใส่ลงในโปรเจกต์ Maven หรือ Gradle ใดก็ได้ + +## สิ่งที่คุณจะได้เรียนรู้ + +- ตั้งค่าเอนจิน Aspose OCR และใช้ไลเซนส์ของคุณ +- โหลดไฟล์ JPEG, PNG หรือ TIFF เข้าไปในหน่วยความจำ +- รัน OCR และวนลูปผ่านแต่ละบรรทัดของข้อความที่จดจำได้ +- ตรวจจับบรรทัดที่ความเชื่อมั่นต่ำเพื่อทำการตรวจสอบด้วยมือ +- ขยายตัวอย่างให้รองรับ PDF หลายหน้า หรือรูปแบบภาพอื่น ๆ + +ไม่จำเป็นต้องมีประสบการณ์กับ Aspose มาก่อน เพียงแค่มีสภาพแวดล้อมการพัฒนา Java พื้นฐาน (JDK 11+ และ IDE ที่คุณชอบ) เริ่มกันเลย + +![how to run ocr example](/images/ocr-demo.png){alt="ตัวอย่างการรัน OCR บนฟอร์มที่สแกน"} + +## ขั้นตอนที่ 1: เริ่มต้นเอนจิน OCR – **วิธีรัน OCR** + +สิ่งแรกที่คุณต้องทำก่อนทำ OCR ใด ๆ คือสร้างอินสแตนซ์ `OcrEngine` แล้วแนบไลเซนส์ที่ถูกต้อง หากไม่มีไลเซนส์ ไลบรารีจะทำงานในโหมดเดโม ซึ่งจำกัดจำนวนหน้าที่สามารถประมวลผลได้ + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**ทำไมขั้นตอนนี้สำคัญ:** +`OcrEngine` ถือการตั้งค่าทั้งหมด—ภาษา, โหมดการตรวจจับ, และการปรับประสิทธิภาพต่าง ๆ การตั้งค่าไลเซนส์ล่วงหน้าช่วยหลีกเลี่ยงการเปลี่ยนเป็นโหมดทดลองโดยอัตโนมัติที่อาจทำให้ผลลัพธ์ถูกตัดทอน + +## ขั้นตอนที่ 2: โหลดภาพ – **ดึงข้อความจากภาพ** + +ต่อไปเราต้องการอ็อบเจกต์ `Image` ที่ชี้ไปยังไฟล์ที่คุณต้องการสแกน Aspose รองรับรูปแบบหลากหลาย คุณจึงสามารถใส่หน้า PDF ที่สแกนแล้วแปลงเป็น PNG, JPEG ดิบ, หรือแม้แต่ TIFF หลายหน้า + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**ทำไมขั้นตอนนี้สำคัญ:** +การโหลดภาพเป็นอ็อบเจกต์ `Image` ทำให้เอนจินเข้าถึงข้อมูลพิกเซล, DPI, และความลึกสี—ทั้งหมดนี้มีผลต่อความแม่นยำของ OCR หากข้ามขั้นตอนนี้และส่งอาเรย์ไบต์ดิบเข้าไป คุณจะเสียข้อมูลที่เป็นประโยชน์เหล่านี้ไป + +## ขั้นตอนที่ 3: รัน OCR – **จดจำข้อความจากฟอร์ม** + +ตอนนี้มาถึงส่วนที่สนุก: การจดจำอักขระจริง ๆ เมธอด `recognize` จะคืนค่า `RecognitionResult` ที่มีคอลเลกชันของอ็อบเจกต์ `Line` แต่ละอันพร้อมคะแนนความเชื่อมั่นของมัน + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**ทำไมขั้นตอนนี้สำคัญ:** +การเรียก `recognize` จะกระตุ้นกระบวนการภายในหลายขั้นตอน—การเตรียมข้อมูลล่วงหน้า (deskew, การกำจัดสัญญาณรบกวน), การแบ่งส่วน, การจำแนกอักขระ, และการประมวลผลหลัง (spell‑check, language model) วัตถุผลลัพธ์จะทำหน้าที่ซ่อนความซับซ้อนทั้งหมดไว้ให้คุณ + +## ขั้นตอนที่ 4: ประมวลผลผลลัพธ์ – **อ่านภาพสำหรับ OCR** ผลลัพธ์ + +เมื่อคุณได้ `RecognitionResult` แล้ว คุณสามารถวนลูปผ่านแต่ละบรรทัด, ตัดสินใจว่าจะเก็บอัตโนมัติหรือทำเครื่องหมายบรรทัดที่ดูไม่น่าเชื่อถือได้ ค่าเกณฑ์ความเชื่อมั่น 85 % เป็นจุดเริ่มต้นที่ดีสำหรับฟอร์มพิมพ์ส่วนใหญ่ + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**ผลลัพธ์ที่คาดหวัง (ตัวอย่าง):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +ในตัวอย่างข้างต้นเอนจินไม่แน่ใจเกี่ยวกับตัวเลขสุดท้ายของจำนวนเงินทั้งหมด จึงพิมพ์คำเตือน คุณสามารถส่งบรรทัดเหล่านั้นไปยัง UI เพื่อแก้ไขด้วยมือหรือบันทึกลงล็อกเพื่อทบทวนในภายหลัง + +### กรณีเฉพาะและเคล็ดลับ + +- **หลายหน้า:** หากคุณมี PDF หลายหน้า ให้วนลูปตามดัชนีหน้าและเรียก `Image.fromPdf(pdfPath, pageIndex)`. +- **หลายภาษา:** ตั้งค่า `engine.getLanguage().setLanguage(Language.Spanish);` ก่อนเรียก `recognize`. +- **คุณภาพภาพ:** การสแกนความละเอียดต่ำ (< 150 DPI) มักให้ความเชื่อมั่นต่ำกว่า 80 % การขยายขนาดด้วย `image.resize(300, 300)` อาจช่วยได้ แต่วิธีที่ดีที่สุดคือสแกนใหม่ที่มีคุณภาพดีกว่า +- **ประสิทธิภาพ:** การใช้อินสแตนซ์ `OcrEngine` เดียวกันสำหรับหลายภาพจะลดภาระการสร้างใหม่แต่ละครั้ง + +## คำถามที่พบบ่อย + +**สามารถรันบนเซิร์ฟเวอร์แบบ headless ได้หรือไม่?** +ทำได้แน่นอน ไลบรารีไม่มีการพึ่งพา GUI จึงทำงานได้ดีในคอนเทนเนอร์ Docker หรือ pipeline ของ CI + +**ถ้ายังไม่มีไลเซนส์จะทำอย่างไร?** +คุณยังคงเรียก `engine.recognize` ได้ แต่โหมดเดโมจะหยุดหลังจาก 2 หน้าแรกและใส่ลายน้ำบนผลลัพธ์ เหมาะสำหรับการทดสอบอย่างรวดเร็ว + +**มีวิธีดึงข้อมูลเชิงโครงสร้าง (เช่น ตาราง) หรือไม่?** +Aspose OCR มีคลาส `TableRecognizer` แต่เกินขอบเขตของคู่มือเบื้องต้นนี้ หลังจากคุณเชี่ยวชาญพื้นฐานแล้วให้ดูเอกสารอย่างเป็นทางการสำหรับ `TableRecognizer` + +## สรุปทั้งหมด – **วิธีรัน OCR** อย่างสั้น ๆ + +เราได้ครอบคลุมทุกอย่างที่คุณต้องการเพื่อ **วิธีรัน OCR** บนฟอร์มที่สแกน: เริ่มต้นเอนจิน, โหลดภาพ, ทำการจดจำ, และจัดการผลลัพธ์อย่างชาญฉลาด ด้วยไม่กี่บรรทัดของ Java คุณสามารถ **ดึงข้อความจากไฟล์ภาพ**, **จดจำข้อความจากฟอร์ม**, และ **อ่านภาพสำหรับ OCR** พร้อมคะแนนความเชื่อมั่นที่ช่วยให้คุณตัดสินใจเมื่อควรทำการตรวจสอบด้วยมนุษย์ + +ขั้นตอนต่อไป? ลองเปลี่ยน JPEG เป็น 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/thai/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..f5eed7afb --- /dev/null +++ b/ocr/thai/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,220 @@ +--- +category: general +date: 2026-05-03 +description: วิธีใช้ OCR เพื่อดึงข้อความจากไฟล์ PDF ใน Java เรียนรู้การจดจำข้อความจาก + PDF แปลง PDF เป็นข้อความ และจัดการ OCR ไฟล์ PDF หลายหน้าอย่างมีประสิทธิภาพ +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: th +og_description: วิธีใช้ OCR เพื่อดึงข้อความจากไฟล์ PDF ใน Java คู่มือนี้แสดงวิธีการจดจำข้อความจาก + PDF, แปลง PDF เป็นข้อความ, และประมวลผล OCR สำหรับ PDF หลายหน้า +og_title: วิธีใช้ OCR ใน Java – ดึงข้อความจากไฟล์ PDF หลายหน้า +tags: +- ocr +- java +- pdf +- aspose +title: วิธีใช้ OCR ใน Java – ดึงข้อความจากไฟล์ PDF หลายหน้า +url: /th/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีใช้ OCR ใน Java – ดึงข้อความจาก PDF หลายหน้า + +**วิธีใช้ OCR** ในโครงการ Java? หากคุณเคยต้องการดึงข้อความจากไฟล์ PDF โดยไม่พึ่งพาชั้นข้อความภายในของ PDF คุณมาถูกที่แล้ว บทแนะนำนี้จะพาคุณผ่านโซลูชันที่สมบูรณ์และสามารถรันได้ ซึ่ง **จดจำข้อความจาก PDF**, แปลง PDF เป็นข้อความ, และแม้กระทั่งจัดการกับ **OCR PDF หลายหน้า** ด้วยการเรียกครั้งเดียว + +ลองนึกภาพว่าคุณได้รับสัญญาที่สแกน — ไฟล์ TIFF 12 หน้าอยู่ใน PDF คุณต้องการข้อความที่ค้นหาได้สำหรับการทำดัชนี แต่ไฟล์ไม่มีอักขระฝังอยู่ ไม่ต้องกังวล; เราจะสาธิตวิธีทำขั้นตอนต่อขั้นตอนให้คุณเห็นชัดเจน + +> **สิ่งที่คุณจะได้:** โค้ดสแนปเป็ต Java พร้อมใช้งานโดยใช้ Aspose.OCR, คำอธิบายว่าทำไมแต่ละบรรทัดถึงสำคัญ, เคล็ดลับสำหรับปัญหาที่พบบ่อย, และผลลัพธ์ตัวอย่างที่คุณสามารถตรวจสอบได้ทันที + +--- + +## สิ่งที่คุณต้องเตรียม + +ก่อนที่เราจะลงลึก, ตรวจสอบให้แน่ใจว่าคุณมี: + +* **Java 17** (หรือ JDK รุ่นใหม่ใดก็ได้) – โค้ดทำงานกับเวอร์ชันเก่าได้เช่นกัน, แต่ 17 เป็นจุดที่เหมาะที่สุด +* ไลบรารี **Aspose OCR for Java** – คุณสามารถดาวน์โหลด JAR จากเว็บไซต์ Aspose หรือเพิ่มผ่าน Maven/Gradle +* **PDF (หรือ TIFF) หลายหน้า** ที่คุณต้องการประมวลผล ในตัวอย่างของเราจะใช้ `contract_multipage.pdf` ที่วางไว้ในโฟลเดอร์ชื่อ `YOUR_DIRECTORY` +* ไฟล์ใบอนุญาต **Aspose OCR** ที่ถูกต้อง (`Aspose.OCR.Java.lic`) หากไม่มีใบอนุญาต ไลบรารีจะทำงานในโหมดประเมินผล ซึ่งสำหรับการทดสอบอย่างรวดเร็วก็พอใช้ได้แต่จะมีลายน้ำ + +เท่านี้—ไม่มี OCR engine เพิ่มเติม, ไม่มีไบนารีเนทีฟ, เพียง JAR เดียวและใบอนุญาต + +--- + +![how to use ocr example](https://example.com/ocr-demo.png "How to use OCR in Java – visual overview of the process") + +*Image alt text: how to use OCR in Java – visual overview of loading, recognizing, and outputting text.* + +--- + +## ขั้นตอนที่ 1: ตั้งค่า OCR Engine – **วิธีใช้ OCR** อย่างถูกต้อง + +สิ่งแรกที่คุณต้องทำคือสร้างอินสแตนซ์ของ OCR engine และกำหนดใบอนุญาต หากไม่มีใบอนุญาต engine จะทำงานต่อไปได้ แต่ผลลัพธ์จะมีลายน้ำการทดลอง + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**ทำไมจึงสำคัญ:** +`OcrEngine` คืออ็อบเจ็กต์หลักที่ประสานการวิเคราะห์ภาพ, การตรวจจับภาษา, และการสกัดข้อความ การตั้งค่าใบอนุญาตตั้งแต่แรกจะป้องกันไม่ให้ engine กลับเข้าสู่โหมดทดลองในภายหลัง ซึ่งอาจส่งผลต่อความแม่นยำ + +--- + +## ขั้นตอนที่ 2: โหลดเอกสาร – **ดึงข้อความจาก PDF** อย่างมีประสิทธิภาพ + +Aspose OCR สามารถอ่านทั้งคอนเทนเนอร์ PDF และ TIFF ได้โดยตรง ที่นี่เราจะโหลด PDF หลายหน้าที่มีภาพสแกนอยู่ + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**ทำไมจึงสำคัญ:** +`PdfDocument.fromFile` จะทำการพาร์สคอนเทนเนอร์และให้คุณเข้าถึงแต่ละหน้าเป็นภาพ การทำงานเช่นนี้ทำให้ OCR engine สามารถประมวลผลทุกหน้าได้อย่างสม่ำเสมอ ไม่ว่าฟอร์แมตเดิมจะเป็นอะไร + +**เคล็ดลับ:** หากไฟล์ต้นทางของคุณเป็น TIFF, การเรียกเดียวกันนี้ก็ทำงานได้—Aspose จะตรวจจับฟอร์แมตอัตโนมัติ ไม่ต้องเขียนโค้ดเพิ่ม + +--- + +## ขั้นตอนที่ 3: จดจำทุกหน้าในครั้งเดียว – **จดจำข้อความจาก PDF** อย่างไร้รอยต่อ + +แทนที่จะวนลูปผ่านหน้าเอง, คุณสามารถสั่งให้ engine ประมวลผลเอกสารทั้งหมดด้วยการเรียกครั้งเดียว นี่เป็นวิธีที่มีประสิทธิภาพที่สุดในการ **แปลง PDF เป็นข้อความ** เมื่อทำงานกับ **OCR PDF หลายหน้า** + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**ทำไมจึงสำคัญ:** +การเรียก `recognizeDocument` เพียงครั้งเดียวช่วยลดค่าโอเวอร์เฮดจากการเริ่มต้น engine ซ้ำหลายครั้ง อีกทั้งยังรับประกันการตั้งค่าภาษาเดียวกันบนทุกหน้า ซึ่งสำคัญมากสำหรับเอกสารกฎหมายที่มักมีฟอนต์หลากหลาย + +--- + +## ขั้นตอนที่ 4: แสดงข้อความที่จดจำได้ – **แปลง PDF เป็นข้อความ** เพื่อทำดัชนี + +เมื่อทุกหน้าถูกประมวลผลแล้ว เราเพียงแค่วนลูปผลลัพธ์และพิมพ์สตริงที่สกัดออกมา คุณสามารถบันทึกลงไฟล์, ฐานข้อมูล, หรือส่งต่อไปยังดัชนีการค้นหาได้เช่นกัน + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**ผลลัพธ์ที่คาดหวัง (ตัดทอน):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +หาก PDF มี 12 หน้า คุณจะเห็นส่วน `--- Page X ---` ทั้งสิบสองส่วน, ตามด้วยข้อความที่ OCR สกัดออกมา + +--- + +## เคล็ดลับขั้นสูงสำหรับ **OCR PDF หลายหน้า** + +### 1. ปรับการตั้งค่าภาษา + +โดยค่าเริ่มต้น Aspose จะพยายามตรวจจับภาษาอัตโนมัติ, แต่คุณสามารถเร่งความเร็วได้โดยระบุภาษาโดยตรง: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. ควบคุมการประมวลผลภาพล่วงหน้า + +สัญญาสแกนมักมีสัญญาณรบกวน คุณสามารถเปิดการจัดแนวใหม่ (deskew) และการทำไบนารีได้: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. จัดการไฟล์ขนาดใหญ่อย่างมีประสิทธิภาพ + +หากคุณประมวลผล PDF ที่ใหญ่กว่า 100 MB, ควรสตรีมหน้าแทนการโหลดเอกสารทั้งหมดในครั้งเดียว: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +รูปแบบนี้ช่วยลดความกดดันของหน่วยความจำและเหมาะกับงานแบตช์ + +### 4. ส่งออกเป็นรูปแบบโครงสร้าง + +นอกจากข้อความธรรมดา, คุณยังสามารถส่งออกเป็น JSON หรือ XML เพื่อการประมวลผลต่อไปได้: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +| ปัญหา | สาเหตุ | วิธีแก้ | +|---------|----------------|-----| +| **ผลลัพธ์เป็นค่าว่าง** | ไม่ได้ตั้งค่าใบอนุญาตหรือพาธไฟล์ผิด | ตรวจสอบพาธของ `setLicense` และยืนยันว่าไฟล์มีอยู่ | +| **อักขระแปลก** | การตั้งค่าภาษาไม่ถูกต้องหรือแหล่งที่มาความละเอียดต่ำ | ตั้งค่า `Language` ให้ตรงและตรวจสอบให้ภาพต้นทางมีความละเอียด ≥300 dpi | +| **ข้อผิดพลาด Out‑of‑memory** | โหลด PDF ขนาดใหญ่ทั้งหมดในครั้งเดียว | ใช้วิธีสตรีมตามที่แสดงข้างต้น | +| **การจดจำบางส่วนของหน้า** | PDF มีเลเยอร์ raster และ vector ผสม | ทำการ flatten PDF ก่อน OCR: `pdfDoc.flatten();` | + +--- + +## สรุป – สิ่งที่เราได้เรียนรู้ + +* **วิธีใช้ OCR** กับ Aspose ใน Java +* **ดึงข้อความจาก PDF** (หรือ TIFF) ด้วยการเรียกครั้งเดียว +* **จดจำข้อความจาก PDF** ทั้งหมดโดยไม่ต้องวนลูปเอง +* **แปลง PDF เป็นข้อความ** และแสดงผลอย่างเป็นระเบียบ +* เคล็ดลับสำหรับการจัดการ **OCR PDF หลายหน้า**, รวมถึงการปรับภาษาและการสตรีมที่เป็นมิตรกับหน่วยความจำ + +ตอนนี้คุณมีสแนปเป็ตที่พร้อมใช้งานในระดับผลิตภัณฑ์ซึ่งสามารถนำไปใส่ในโครงการ Java ใดก็ได้ ปรับแต่งตัวเลือกการประมวลผลภาพ, เปลี่ยนปลายทางการส่งออก, หรือรวมผลลัพธ์เข้ากับดัชนีการค้นหาได้ตามต้องการ + +--- + +## ขั้นตอนต่อไป + +* **สำรวจคุณสมบัติเพิ่มเติมของ Aspose OCR** – เช่น การจดจำลายมือหรือการสนับสนุน PDF/A +* **ผสาน OCR กับการจัดการ PDF** (เช่น เพิ่มเลเยอร์ข้อความซ่อนกลับเข้า PDF เพื่อให้เป็น PDF ค้นหาได้) +* **อัตโนมัติการประมวลผลแบบแบตช์** โดยอ่านโฟลเดอร์ของ PDF และเขียนผลลัพธ์แต่ละไฟล์เป็น `.txt` ที่สอดคล้องกัน + +หากคุณเจออุปสรรคใด ๆ, ฟอรั่มของ Aspose เป็นแหล่งที่ดีสำหรับขอความช่วยเหลือ, และเอกสารอ้างอิง API มีรายละเอียดครบถ้วนเกี่ยวกับทุกเมธอดที่ใช้ในที่นี้ + +ขอให้เขียนโค้ดสนุกและแปลงสแกนที่ดื้อรั้นให้กลายเป็นข้อความที่ค้นหาได้! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/thai/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..1dfe4db5c --- /dev/null +++ b/ocr/thai/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-05-03 +description: อ่านไฟล์ไบนารีใน Java เพื่อโหลดไลเซนส์ Aspose OCR. เรียนรู้การใช้ FileInputStream, + การจัดการข้อมูลไบนารี, และเคล็ดลับเชิงปฏิบัติในคู่มือขั้นตอนต่อขั้นตอนนี้. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: th +og_description: อ่านไฟล์ไบนารีใน Java เพื่อโหลดใบอนุญาต Aspose OCR. ทำตามคู่มือฉบับเต็มนี้เพื่อเชี่ยวชาญการใช้ + FileInputStream และการจัดการข้อมูลไบนารีใน Java. +og_title: อ่านไฟล์ไบนารีใน Java – โหลดไบต์ใบอนุญาตสำหรับ Aspose OCR +tags: +- Java +- File I/O +- OCR +title: อ่านไฟล์ไบนารีใน Java – โหลดไบต์ใบอนุญาตสำหรับ Aspose OCR +url: /th/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# อ่านไฟล์ไบนารีใน Java – โหลดไบต์ใบอนุญาตสำหรับ Aspose OCR + +เคยต้อง **อ่านไฟล์ไบนารีใน Java** เมื่อต้องจัดการใบอนุญาตของไลบรารีของบุคคลที่สามหรือไม่? คุณไม่ได้อยู่คนเดียว นักพัฒนา Java ส่วนใหญ่เจออุปสรรคนี้เมื่อพยายามใส่ไฟล์ `.lic` เข้าไปในเครื่องมือ OCR และวิธีการอ่านไฟล์ข้อความธรรมดาก็ใช้ไม่ได้ + +ในบทแนะนำนี้เราจะเดินผ่านตัวอย่างที่ทำงานได้เต็มรูปแบบ ซึ่งจะแสดงอย่างชัดเจนว่าต้องเปิดไฟล์ใบอนุญาตแบบไบนารีอย่างไร ดึงไบต์เข้าสู่หน่วยความจำ แล้วส่งไบต์เหล่านั้นให้กับ Aspose OCR for Java พร้อมกับคำอธิบายว่าทำไม `FileInputStream` ถึงเป็นเครื่องมือที่เหมาะสม วิธีจัดการ `IOException` ที่อาจเกิดขึ้น และเคล็ดลับระดับมืออาชีพที่คุณอาจไม่พบในเอกสารอย่างเป็นทางการ + +เมื่ออ่านจบคุณจะสามารถ **อ่านไฟล์ไบนารีใน Java** สร้างอ็อบเจ็กต์ `License` และกำหนดให้กับ `OcrEngine` ได้โดยไม่ต้องกังวล + +## สิ่งที่คู่มือนี้ครอบคลุม + +- ความต้องการเบื้องต้น: Java 17+, Maven (หรือ Gradle) และไลบรารี Aspose OCR for Java +- โค้ดขั้นตอนต่อขั้นตอนที่อ่านไฟล์ `.lic` แบบไบนารีด้วย `FileInputStream` +- คำอธิบายแต่ละบรรทัดเพื่อให้คุณเข้าใจ *ทำไม* ถึงทำ *อย่างไร* +- การจัดการกรณีขอบ (ไฟล์หาย, ไบต์เสียหาย) พร้อมคำแนะนำการดีบักที่ใช้ได้จริง +- สคริปต์สุดท้ายที่เป็นอิสระ สามารถคัดลอก‑วางลง IDE แล้วรันได้ทันที + +หากคุณเคยสงสัยว่าต้องใช้ API พิเศษเพื่ออ่านไฟล์ใบอนุญาตหรือไม่ คำตอบคือ **ไม่**—แค่การทำ I/O แบบไบนารีธรรมดาเท่านั้น มาเริ่มกันเลย + +## ขั้นตอนที่ 1: อ่านไฟล์ไบนารีใน Java ด้วย FileInputStream + +สิ่งแรกที่เราต้องการคือวิธีที่เชื่อถือได้ในการดึงไบต์ดิบจากไฟล์ใบอนุญาตบนดิสก์ ใน Java `FileInputStream` คือเครื่องมือหลักสำหรับงานนี้ + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**ทำไมวิธีนี้ถึงได้ผล:** `Files.readAllBytes` สร้าง `FileInputStream` ภายใน, อ่านสตรีมทั้งหมด, แล้วปิดให้โดยอัตโนมัติ ปลอดภัย กระชับ และหลีกเลี่ยงข้อผิดพลาด “ลืมปิดสตรีม” หากคุณชอบรูปแบบคลาสสิก สามารถเปลี่ยนเป็นบล็อก `try‑with‑resources` ที่ใช้ `FileInputStream` โดยตรงได้ + +### เคล็ดลับระดับมืออาชีพ + +หากไฟล์ใบอนุญาตมีขนาดใหญ่มาก (เป็นไปได้น้อยแต่เป็นไปได้) ให้พิจารณาอ่านเป็นชิ้นส่วนแทนการโหลดทั้งหมด สำหรับไฟล์ใบอนุญาต OCR ส่วนใหญ่—โดยทั่วไปไม่เกินไม่กี่กิโลไบต์—วิธีอ่านครั้งเดียวก็เพียงพอ + +## ขั้นตอนที่ 2: สร้างอ็อบเจ็กต์ License สำหรับ Aspose OCR + +เมื่อเรามีไบต์ดิบแล้ว เราต้องแปลงให้เป็นอินสแตนซ์ `License` ที่ Aspose รองรับ ไลบรารีมีคลาส `License` ที่รับอาร์เรย์ไบต์เป็นพารามิเตอร์ + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**ทำไมเรื่องนี้สำคัญ:** การส่งไบต์โดยตรงช่วยหลีกเลี่ยงปัญหาเกี่ยวกับเส้นทางไฟล์ (เช่น ความสับสนของ relative‑to‑working‑directory) ทำให้การปรับใช้แอปพลิเคชันพกพาได้ง่าย—แค่ใส่ไฟล์ `.lic` ไว้ที่ใดก็ได้ที่แอปของคุณทำงาน + +## ขั้นตอนที่ 3: กำหนดใบอนุญาตให้กับ OCR Engine + +เมื่ออ็อบเจ็กต์ `License` พร้อมแล้ว ขั้นตอนสุดท้ายคือผูกมันเข้ากับ `OcrEngine` เพื่อให้ส่วน OCR ทำงานในโหมดที่มีใบอนุญาต ไม่ใช่โหมดทดลอง + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **หมายเหตุ:** เวอร์ชัน Aspose เก่าบางรุ่นอาจเปิดเผยฟิลด์ `license` สาธารณะแทนเมธอด setter. ปรับโค้ดตาม (`ocrEngine.license = license;`) หากเจอข้อผิดพลาดการคอมไพล์ + +## ขั้นตอนที่ 4: ตรวจสอบว่าโหลดใบอนุญาตสำเร็จ (ไม่บังคับแต่แนะนำ) + +การตรวจสอบอย่างรวดเร็วช่วยประหยัดชั่วโมงของการดีบักในภายหลัง `License` ไม่ได้โยนข้อยกเว้นเมื่อสำเร็จ แต่คุณสามารถลองทำ OCR อย่างไม่มีผลกระทบเพื่อยืนยันได้ + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +หากคุณเห็นข้อความ “License applied successfully” แสดงว่าทุกอย่างพร้อมใช้งาน หากไม่เห็น ให้ตรวจสอบเส้นทางไฟล์, ความสมบูรณ์ของไบต์, และเวอร์ชัน Aspose ที่ใช้ + +## ตัวอย่างทำงานเต็มรูปแบบ + +รวมทุกส่วนเข้าด้วยกันจะได้โปรแกรมสั้น ๆ ที่พร้อมคัดลอก‑วางลงไฟล์ `Main.java` แล้วรัน + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**ผลลัพธ์ที่คาดหวัง (สมมติว่ามีรูปภาพตัวอย่างอยู่):** + +``` +License applied successfully – OCR engine is ready. +``` + +หากไฟล์ใบอนุญาตหายหรือเสียหาย คุณจะเห็นข้อความแสดงข้อผิดพลาดชัดเจนเช่น: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## ข้อผิดพลาดทั่วไป & วิธีหลีกเลี่ยง + +- **สับสนเรื่องเส้นทาง:** เส้นทางแบบ relative จะอ้างอิงกับ working directory ของ JVM ไม่ใช่ตำแหน่งไฟล์ซอร์ส ใช้เส้นทางแบบ absolute หรือวางไฟล์ `.lic` ไว้ข้าง JAR แล้วอ้างอิงด้วย `getResourceAsStream` +- **ลำดับไบต์ผิด:** อย่าอ่านไฟล์ไบนารีด้วย `Reader` (ที่ทำงานกับอักขระ) เพราะจะทำให้ข้อมูลเสียหาย ใช้ API ที่อิง `FileInputStream` เท่านั้น +- **เวอร์ชันไม่ตรงกัน:** Aspose รุ่นเก่าอาจต้องการ `license.setLicense("path/to/file")` แทน `setLicenseBytes` ตรวจสอบ release notes หากเจอ `NoSuchMethodError` +- **ลืมปิดสตรีม:** หากกลับไปใช้วิธี `FileInputStream` แบบคลาสสิก อย่าลืมห่อด้วย `try‑with‑resources` เพื่อรับประกันการปิดสตรีม + +## สรุป + +คุณได้เรียนรู้วิธี **อ่านไฟล์ไบนารีใน Java** เพื่อโหลดใบอนุญาต Aspose OCR, สร้างอ็อบเจ็กต์ `License` และเชื่อมต่อกับ `OcrEngine` กระบวนการนี้พึ่งพาการจัดการข้อมูลไบนารีอย่างถูกต้องด้วย `FileInputStream` (หรือ `Files.readAllBytes` สมัยใหม่) และการเรียก API ไม่ซับซ้อนหลายขั้นตอน + +ต่อจากนี้คุณสามารถไปทำงาน OCR จริง ๆ ได้—ดึงข้อความจาก PDF, รูปภาพ หรือเอกสารสแกน—โดยมั่นใจว่าชั้นใบอนุญาตจะไม่เป็นอุปสรรค หากสนใจหัวข้อที่เกี่ยวข้อง ลองดูบทแนะนำเกี่ยวกับ **Java FileInputStream**, **binary data handling Java**, และ **read license file Java** สำหรับไลบรารีอื่น ๆ + +ขอให้เขียนโค้ดสนุกและผลลัพธ์ 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/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/thai/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..36422f541 --- /dev/null +++ b/ocr/thai/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-05-03 +description: เรียนรู้วิธีจดจำข้อความจากภาพและแปลงภาพเป็นข้อความโดยใช้ Aspose OCR สำหรับ + Java พร้อมเคล็ดลับในการปรับปรุงความแม่นยำของ OCR และการทำ OCR บนไฟล์ PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: th +og_description: คู่มือแบบขั้นตอนต่อขั้นตอนในการจดจำข้อความจากภาพโดยใช้ Aspose OCR + สำหรับ Java. เรียนรู้การแปลงภาพเป็นข้อความ, ปรับปรุงความแม่นยำของ OCR และทำการ OCR + บนไฟล์ PNG. +og_title: จดจำข้อความจากภาพด้วย Aspose OCR – บทแนะนำ Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: แยกข้อความจากภาพด้วย Aspose OCR – คู่มือ Java ฉบับสมบูรณ์ +url: /th/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# จดจำข้อความจากภาพด้วย Aspose OCR – คู่มือ Java ฉบับสมบูรณ์ + +เคยต้องการ **recognize text from image** แต่ไม่แน่ใจว่าห้องสมุดใดจะให้ผลลัพธ์ที่เชื่อถือได้? คุณไม่ได้อยู่คนเดียว—นักพัฒนาหลายคนเจออุปสรรคนี้เมื่อลองดึงข้อมูลจาก PDF ที่สแกน, ใบเสร็จ, หรือรายงานห้องปฏิบัติการเป็นครั้งแรก. ข่าวดีคือ Aspose OCR for Java ทำให้กระบวนการทั้งหมดง่ายเหมือนเค้ก, และคุณยังสามารถ **convert image to text** ได้ด้วยเพียงไม่กี่บรรทัด. + +ในบทแนะนำนี้เราจะเดินผ่านทุกอย่างที่คุณต้องรู้: ตั้งแต่การโหลดภาพสำหรับ OCR, ปรับตั้งค่าเพื่อ **improve OCR accuracy**, จนถึงการ **run OCR on PNG** และพิมพ์ข้อความที่สกัดออกมา. ไม่มีการอธิบายเกินความจำเป็น, เพียงตัวอย่างที่ทำงานได้จริงที่คุณสามารถนำไปใช้ในโครงการของคุณได้ทันที. + +--- + +## สิ่งที่คุณต้องการ + +ก่อนที่เราจะดำดิ่งลงไป, โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้บนเครื่องของคุณ: + +| ข้อกำหนดเบื้องต้น | เหตุผล | +|-------------------|--------| +| Java 17 (หรือใหม่กว่า) | Aspose OCR รองรับ Java 8+, แต่ JDK ล่าสุดให้ประสิทธิภาพที่ดีกว่า. | +| ไลบรารี Aspose OCR for Java (`aspose-ocr.jar`) | เอนจินหลักที่ทำงานหนัก. | +| ไฟล์ลิขสิทธิ์ Aspose OCR ที่ถูกต้อง (`Aspose.OCR.Java.lic`) | เปิดใช้งานคุณสมบัติทั้งหมด; หากไม่จะเห็นลายน้ำรุ่นทดลอง. | +| ไฟล์ภาพ (PNG, JPEG, TIFF ฯลฯ) ที่มีข้อความชัดเจน | เราจะใช้ `lab_report.png` เป็นตัวอย่างจริง. | +| พจนานุกรมกำหนดเอง (ไม่บังคับ) | ช่วยปรับปรุงการจดจำสำหรับคำเฉพาะโดเมน เช่น “hemoglobin”. | + +หากสิ่งใดเหล่านี้ฟังดูแปลกใหม่, อย่าตื่นตระหนก—การติดตั้ง JAR และการสร้างไฟล์ข้อความง่าย ๆ เป็นงานที่ทำได้ง่ายและเราจะครอบคลุมในไม่กี่นาทีต่อไป. + +--- + +## ขั้นตอนที่ 1 – ตั้งค่าโครงการและนำเข้าขึ้นตอนการพึ่งพา + +แรกเริ่ม, สร้างโครงการ Maven (หรือ Gradle) ใหม่และเพิ่มการพึ่งพา Aspose OCR. ผู้ใช้ Maven สามารถวางโค้ดสแนปนี้ลงใน `pom.xml` ของคุณได้: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +หากคุณชอบ Gradle, ตัวเทียบเท่าคือ: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **เคล็ดลับ:** ตรวจสอบหมายเลขเวอร์ชัน; รุ่นใหม่มักมีการแก้ไขบั๊กที่ส่งผลโดยตรงต่อ **improve OCR accuracy**. + +ต่อไป, สร้างคลาส Java ชื่อ `OcrDemo.java`. ที่ส่วนบนของไฟล์, นำเข้าคลาสที่จำเป็น: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## ขั้นตอนที่ 2 – เริ่มต้นเครื่อง OCR และใช้ลิขสิทธิ์ของคุณ + +คุณไม่สามารถ **run OCR on PNG** ได้หากไม่ได้บอกเครื่องว่าได้รับการอนุญาตแล้ว. นี่คือวิธีทำ: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +ทำไมต้องมีอ็อบเจกต์ `License` เพิ่ม? Aspose แยกการจัดการลิขสิทธิ์ออกจากเอนจินเพื่อให้คุณสลับลิขสิทธิ์ได้ตามต้องการ, ซึ่งเป็นประโยชน์ในสถานการณ์ SaaS แบบหลายผู้เช่า. + +--- + +## ขั้นตอนที่ 3 – โหลดพจนานุกรมกำหนดเอง (ไม่บังคับแต่มีประสิทธิภาพ) + +หากคุณต้องจัดการกับคำศัพท์ทางการแพทย์, สูตรเคมี, หรือชื่อแบรนด์, พจนานุกรมกำหนดเองสามารถ **improve OCR accuracy** อย่างมาก. พจนานุกรมเป็นไฟล์ข้อความธรรมดาที่มีหนึ่งคำต่อบรรทัด: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **ทำไมถึงได้ผล:** เครื่อง OCR ใช้พจนานุกรมเพื่อเบี่ยงเบนโมเดลภาษาไปทางคำที่คุณต้องการ, ลดการจดจำผิดเช่น “hemo­globin” → “hemoglobin”. + +หากคุณไม่มีพจนานุกรม, เพียงข้ามบรรทัดนี้—Aspose ยังทำงานได้ดีด้วยแพ็คภาษาในตัว. + +--- + +## ขั้นตอนที่ 4 – โหลดภาพที่ต้องการประมวลผล + +ตอนนี้เราจะ **load image for OCR** จริง ๆ. Aspose รองรับหลายรูปแบบ, แต่ PNG มีความสูญเสียข้อมูลน้อย, ทำให้เป็นตัวเลือกที่ปลอดภัยสำหรับเอกสารสแกน. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **กรณีพิเศษ:** หากภาพของคุณมีขนาดใหญ่ (เกิน 5 MB), พิจารณาลดขนาดลงก่อนเพื่อเร่งการประมวลผล. คลาส `Image` มีเมธอด `resize` ที่คุณสามารถเรียกใช้ก่อนทำการจดจำ. + +--- + +## ขั้นตอนที่ 5 – รันกระบวนการ OCR และดึงข้อความ + +เมื่อทุกอย่างพร้อม, เริ่มต้นเอนจิน OCR. เมธอด `recognize` จะคืนค่าอ็อบเจกต์ `OcrResult` ที่เก็บสตริงที่สกัดออกมา, คะแนนความเชื่อมั่น, และแม้แต่กล่องขอบเขตหากคุณต้องการข้อมูลการจัดวาง. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +เมื่อคุณรันโปรแกรม, คุณควรเห็นผลลัพธ์ประมาณนี้: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +เท่านี้—คุณได้ **recognize text from image** และ **convert image to text** อย่างสำเร็จโดยใช้ Aspose OCR. + +--- + +## ขั้นตอนที่ 6 – ปัญหาทั่วไปและวิธีแก้ + +แม้จะใช้ไลบรารีที่แข็งแรง, ปัญหาเล็ก ๆ น้อย ๆ บางอย่างอาจทำให้คุณติดขัด: + +| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ | +|-------|-------------------|--------| +| ผลลัพธ์เป็นค่าว่าง | ลิขสิทธิ์ไม่ได้ใช้หรือหมดอายุ | ตรวจสอบเส้นทางไปยัง `Aspose.OCR.Java.lic` และให้แน่ใจว่าเวอร์ชันตรงกัน. | +| ตัวอักษรบิดเบี้ยว | ภาพความละเอียดต่ำหรือบีบอัดมาก | ใช้แหล่งที่มาความละเอียดสูงกว่า หรือทำการประมวลผลล่วงหน้า (binarization, deskew). | +| คำเฉพาะโดเมนหายไป | ไม่มีพจนานุกรมกำหนดเอง | เพิ่มไฟล์พจนานุกรมที่มีคำที่หายไป, หนึ่งคำต่อบรรทัด. | +| การประมวลผลช้าในชุดข้อมูลขนาดใหญ่ | ไม่มีการทำงานหลายเธรด | สร้างพูลของอ็อบเจกต์ `OcrEngine` (พวกมันปลอดภัยต่อเธรด) และประมวลผลภาพแบบขนาน. | + +--- + +## ขั้นตอนที่ 7 – ขยายตัวอย่าง: บันทึกผลลัพธ์ลงไฟล์ + +หากคุณต้องการเก็บข้อความที่สกัดไว้สำหรับการวิเคราะห์ต่อไป, เพียงเขียนลงไฟล์: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +ตอนนี้คุณมีไพป์ไลน์ที่นำกลับมาใช้ได้ซ้ำหลายครั้งที่ **load image for OCR**, สกัดเนื้อหา, และเก็บไว้ที่ที่คุณต้องการ. + +--- + +## โบนัส: รัน OCR บนหลายไฟล์ PNG ในโฟลเดอร์ + +โครงการจริงมักต้องประมวลผลหลายสิบสแกน. นี่คือลูปสั้น ๆ ที่ดึงไฟล์ `.png` ทุกไฟล์ในไดเรกทอรี: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +จำไว้ว่าให้ใช้ตัวอย่าง `ocrEngine` เดียวกัน—การสร้างใหม่สำหรับแต่ละไฟล์จะเพิ่มภาระที่ไม่จำเป็น. + +--- + +## สรุป + +คุณมีโซลูชันครบวงจร, ตั้งแต่ต้นจนจบที่ **recognize text from image** ด้วย Aspose OCR for Java. ตั้งแต่การโหลดภาพ, เสริมเอนจินด้วยพจนานุกรมกำหนดเองเพื่อ **improve OCR accuracy**, ไปจนถึงการ **run OCR on PNG** และบันทึกผลลัพธ์, โค้ดพร้อมนำไปใช้ในโครงการ Java ใดก็ได้. + +ต่อไปทำอะไร? ลองส่งข้อความที่สกัดไปยัง pipeline การประมวลผลภาษาธรรมชาติ, หรือทดลอง OCR บนโน้ตมือเขียน (Aspose ยังมีโหมดการจดจำลายมือ). ความเป็นไปได้ไม่มีที่สิ้นสุด, และคุณเพิ่งเปิดประตูสู่ขั้นตอนแรก. + +ขอให้เขียนโค้ดอย่างสนุก! หากเจออุปสรรคใด ๆ, อย่าลังเลที่จะคอมเมนต์ด้านล่าง—มาช่วยกันแก้ไขกันเถอะ. + +![ภาพหน้าจอของผลลัพธ์ OCR ในคอนโซล – recognize text from image](/images/ocr_console_result.png "ตัวอย่าง recognize text from image") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/turkish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..9a3378f8e --- /dev/null +++ b/ocr/turkish/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java kullanarak görüntüden tabloları çıkarın. OCR için görüntüyü + nasıl yükleyeceğinizi, PNG'den tablo çıkarımını, görüntü tablosu metnini dönüştürmeyi + ve makbuz görüntüsünü hızlı bir şekilde tanımayı öğrenin. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: tr +og_description: Aspose OCR Java ile görüntüden tabloları çıkarın. Bu kılavuz, OCR + için görüntüyü nasıl yükleyeceğinizi, PNG’den tablo çıkarmayı, görüntü tablosu metnini + dönüştürmeyi ve fiş görüntüsünü tanımayı gösterir. +og_title: Görüntüden tabloları çıkar – Aspose OCR Java Öğreticisi +tags: +- Aspose OCR +- Java +- Image Processing +title: Görüntüden tabloları çıkar – Tam Aspose OCR Java Kılavuzu +url: /tr/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Görüntüden tablo çıkarma – Tam Aspose OCR Java Rehberi + +Hiç **görüntü dosyalarından tablo çıkarma** ihtiyacı duydunuz mu, ama bir duvara çarptınız mı? Belki taranmış bir fişiniz ya da fotoğrafı çekilmiş bir faturanız var ve tablo verileri bir PNG içinde gömülü. Bu öğreticide tam olarak *görüntüyü OCR için yükleme*, resmi yapılandırılmış satırlara dönüştürme ve **görüntü tablo metnini** Java’da kullanabileceğiniz bir forma **dönüştürme** adımlarını göreceksiniz. + +Aspose OCR motorunun lisanslanmasından tespit edilen tabloların her hücresinin yazdırılmasına kadar her adımı adım adım inceleyeceğiz. Sonunda **fiş görüntüsü tanıma** dosyalarını sorunsuz bir şekilde tanıyıp tablolarını çıkarabileceksiniz. + +## Öğrenecekleriniz + +- Aspose OCR motorunu başlatma ve lisansınızı uygulama. +- Tablo algılamayı etkinleştirmenin **görüntüden tablo çıkarma** için neden kritik olduğu. +- **Görüntüyü OCR için yükleme** ve bir PNG üzerinde tanıma çalıştırmak için gereken tam kod. +- Birden fazla tablo, düşük çözünürlüklü taramalar ve yaygın tuzaklarla başa çıkma yolları. +- **Görüntü tablo metnini** yazdırılabilir (veya veritabanına hazır) bir formata **dönüştürme**. + +Harici bir dokümantasyona ihtiyaç yok—gereken her şey burada. + +## Önkoşullar + +- Java 17 veya daha yeni bir sürüm (kod modern modül sistemini kullanıyor). +- Aspose OCR for Java lisans dosyası (`Aspose.OCR.Java.lic`). Sadece deneme yapıyorsanız geçici bir değerlendirme anahtarı da işinizi görecektir. +- Açık bir tablo içeren bir PNG görüntüsü (ör. `receipt_with_table.png`). +- Aspose OCR bağımlılığını çekmek için Maven ya da Gradle: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **İpucu:** Lisans dosyasını `src/main/resources` klasörünüzün yanına koyun, böylece yol farklı ortamlar arasında sabit kalır. + +--- + +## Adım 1 – OCR motorunu **görüntüden tablo çıkarma** için başlatma + +Motor bir şey yapmadan önce sizin geçerli bir kullanıcı olduğunuzu bilmesi gerekir. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Neden önemli:* Geçerli bir lisans olmadan OCR motoru deneme modunda çalışır; bu mod sonuçları kırpabilir ya da istenmeyen filigranlar ekleyebilir—bu da tablo çıkarma güvenilirliğini azaltır. + +--- + +## Adım 2 – Tablo algılamayı etkinleştirme (**png’den tablo çıkarma**) + +Tablo algılaması varsayılan olarak kapalıdır; anahtarı çevirmeniz gerekir. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Bu bayrağı etkinleştirmek, Aspose OCR’a hizalanmış metin gruplarını satır ve sütun olarak ele almasını söyler; bu da **görüntüden tablo çıkarma** ihtiyacı duyduğunuz PNG dosyaları için tam olarak gereklidir. + +--- + +## Adım 3 – **Görüntüyü OCR için yükleme** ve **fiş görüntüsü tanıma** + +Şimdi resmi motorun içine besliyoruz. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Eğer bir **fiş görüntüsü tanıma** senaryosuyla uğraşıyorsanız, görüntüyü ön‑işleme (eğikliği düzeltme, kontrast artırma) isteyebilirsiniz. Bu, bu hızlı rehberin kapsamı dışında, ancak gürültülü taramalar için keşfetmeye değer. + +--- + +## Adım 4 – OCR sonucunu işleme ve **görüntü tablo metnini dönüştürme** + +`OcrResult` nesnesi bir veya daha fazla tablo içerebilir. Onlar üzerinde döngü kurup her hücreyi yazdıralım. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Bu ne yapar:** + +- Herhangi bir tablo bulunup bulunmadığını kontrol eder; bulunmazsa kalite ayarı yapmanız gerektiğini önerir. +- Her tablo için satırları sekme‑ayırıcı hücrelerle yazar, bu CSV içe aktarmaları için kullanışlı bir formattır. +- `Cell::getText` çağrısı **görüntü tablo metnini dönüştürme** işleminin kalbidir – her hücreden ham OCR dizesini alır. + +### Beklenen Çıktı + +`receipt_with_table.png` basit bir 3 × 2 tablo içeriyorsa, aşağıdakine benzer bir çıktı göreceksiniz: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Görüntü birden fazla tablo içeriyorsa, her tablo boş bir satırla ayrılır. + +--- + +## Adım 5 – Çıkarılan tabloları doğrulama ve kenar durumlarını ele alma + +### Yaygın tuzaklar + +| Sorun | Neden ortaya çıkar | Hızlı çözüm | +|-------|--------------------|------------| +| **Tablo bulunamadı** | Görüntü çok bulanık veya düşük kontrastlı | OCR’dan önce ikilileştirme (`ImageProcessing.applyThreshold`) uygulayın | +| **Birleşik hücreler** | Tablo çizgileri zayıf, OCR bunları tek blok olarak algılıyor | `ocrEngine.getConfig()` içinde `TableDetectionSensitivity` değerini artırın | +| **Yanlış sütun sırası** | Eğik görüntü hizalamayı bozuyor | `ImageProcessing.deskew` kullanın veya görüntüyü 90° döndürün | + +### Sonraki adımlar + +- **CSV’ye dışa aktar** – `System.out.println(line);` satırını bir `FileWriter` ile değiştirerek veriyi kalıcı hale getirin. +- **Veritabanına besle** – her satırı bir POJO’ya eşleştirip JPA ile saklayın. +- **Diğer API’lerle birleştir** – fiş işleme sırasında OCR metni üzerinde düzenli ifadelerle toplamları da çıkarabilirsiniz. + +--- + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Bu programı çalıştırın, içinde net bir tablo bulunan bir PNG’ye işaret edin ve konsolda düzenli biçimlendirilmiş satırların belirdiğini izleyin. + +--- + +## Sonuç + +Artık Aspose OCR for Java kullanarak **görüntüden tablo çıkarma** dosyaları için sağlam, uçtan uca bir çözümünüz var. Lisanslamadan **görüntüyü OCR için yükleme**, **png’den tablo çıkarma** etkinleştirmeye ve sonunda **görüntü tablo metnini dönüştürme** adımlarına kadar her şey açıklamalar ve pratik ipuçlarıyla kapsandı. + +Şimdi çıktıyı bir CSV dosyasına yönlendirin, satırları ilişkisel bir veritabanına gönderin veya OCR adımını bir fiş‑toplam‑çıkarma rutinine bağlayın. Aynı desen faturalar, fiyat listeleri ve ızgara arkasında veri saklayan herhangi bir taranmış belge için çalışır. + +Düşük çözünürlüklü fişleri nasıl ele alacağınız ya da toplu işleme nasıl ölçeklendireceğiniz hakkında sorularınız mı var? Aşağıya yorum bırakın, iyi kodlamalar! + +![Görüntüden tablo çıkarma örneği](https://example.com/assets/extract-tables-from-image.png "Görüntüden tablo çıkarma – örnek çıktı") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/turkish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..d57d13546 --- /dev/null +++ b/ocr/turkish/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR kullanarak Python ile görüntüden metin çıkarın. Karışık Latin‑Kiril + desteğiyle adım adım bir Python OCR öğreticisini öğrenin. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: tr +og_description: Python ile görüntüden metni hızlıca çıkarın. Bu kılavuz, karışık Latin‑Kiril + görüntülerinde Python’da Aspose OCR kullanımını gösterir. +og_title: Python ile Görüntüden Metin Çıkarma – Tam Aspose OCR Kılavuzu +tags: +- OCR +- Python +- Aspose +title: Python ile Görüntüden Metin Çıkarma – Tam Aspose OCR Rehberi +url: /tr/python-java/general/extract-text-from-image-python-complete-aspose-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 Python – Tam Aspose OCR Kılavuzu + +Ever needed to **extract text from image python** but weren’t sure which library could handle a mix of Latin and Cyrillic characters? You’re not the only one—developers constantly hit that snag when OCR’ing multilingual screenshots. + +The good news is that Aspose OCR for Python makes the whole process almost painless. In this tutorial we’ll walk through installing the package, applying your license, loading a mixed‑language image, and finally pulling the recognised text out in a few lines of code. By the end you’ll have a ready‑to‑run script that you can drop into any project. + +## What You’ll Learn + +- How to set up **Aspose OCR Python** in a virtual environment. +- Why hinting languages (like Latin and Cyrillic) speeds up detection. +- The exact code needed to **extract text from image python** with a single function call. +- Common pitfalls when dealing with mixed‑language OCR and how to avoid them. + +### Prerequisites + +- Python 3.8 or newer installed on your machine. +- An Aspose OCR license file (`Aspose.OCR.Java.lic`). The free trial works for testing, but a licensed file removes watermarks. +- A PNG/JPEG image that contains both Latin and Cyrillic characters (we’ll call it `mixed_latin_cyrillic.png`). + +If you have those boxes checked, you’re good to go—no extra frameworks or heavy dependencies required. + +--- + +## Step 1 – Extract Text from Image Python: Install Aspose OCR + +First thing’s first: get the library from PyPI and make sure your environment can locate the license file. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** If you hit a permission error, add `--user` to the `pip install` command or run the terminal as administrator. + +Now that the package is on your system, we’ll import it and point the engine at our license. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Why do we need a license at this stage? Without it the engine runs in **evaluation mode**, which limits the number of pages and adds a watermark to the output. Supplying the license up‑front ensures the later `recognize` call returns clean text. + +--- + +## Step 2 – Load Your Image with Mixed Latin‑Cyrillic Content + +Next, we bring the picture into memory. Aspose OCR works with its own `Image` class, which abstracts away the underlying file format. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +If you’re wondering whether other formats work—yes, JPEG, BMP, TIFF, and even PDF are supported. Just swap the file extension and the `from_file` method will handle the rest. + +--- + +## Step 3 – Hint Languages for Faster Detection (Optional but Helpful) + +When you know the languages present in the image, you can give the engine a heads‑up. This isn’t mandatory, but it **significantly reduces processing time** and improves accuracy for mixed‑language OCR. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +The hint list accepts any language supported by Aspose OCR (e.g., `"Arabic"`, `"Japanese"`). If you skip this step, the engine will try every built‑in language, which can be slower on large batches. + +--- + +## Step 4 – Run the OCR Engine and Extract Text + +Now the moment of truth: actually recognise the characters. The `recognize` method returns an `OcrResult` object that holds the plain text, confidence scores, and even bounding boxes if you need them later. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Why this works:** Under the hood Aspose OCR combines a neural‑network text detector with language‑specific classifiers. By feeding it an `Image` object, you bypass any need for manual preprocessing like binarisation. + +--- + +## Step 5 – View the Extracted Text + +Finally, let’s print the result to the console. In a real application you might write it to a file, push it to a database, or feed it into a translation API. + +```python +print("Recognised text:") +print(extracted_text) +``` + +When you run the script, you should see something like: + +``` +Recognised text: +Hello мир! This is a test. +``` + +That output confirms we successfully **extract text from image python**, handling both Latin and Cyrillic characters in a single pass. + +--- + +## Full Working Example + +Below is the complete script you can copy‑paste into a file called `extract_ocr.py`. Just replace the placeholder paths with your actual directories. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Save the file, activate your virtual environment, and run: + +```bash +python extract_ocr.py +``` + +You should see the recognised text printed, confirming the script works end‑to‑end. + +--- + +## Frequently Asked Questions & Edge Cases + +**What if the image is blurry?** +Aspose OCR includes built‑in de‑skewing and noise reduction, but for heavily degraded photos you might want to pre‑process with OpenCV (e.g., apply a Gaussian blur and threshold). The `Image` class can also accept a NumPy array, so you can chain custom filters before calling `recognize`. + +**Can I process a whole folder of images?** +Absolutely. Wrap the logic in a `for` loop, change `from_file` to read each filename, and store the results in a dictionary. Remember to respect API rate limits if you’re using the cloud version. + +**Do I need a separate license for each language?** +No, a single Aspose OCR license covers all supported languages. The `language_hints` list is just a performance hint. + +**What about PDF input?** +Replace `Image.from_file` with `ocr.Image.from_file("document.pdf")`. The OCR engine will automatically rasterise each page and return concatenated text. + +--- + +## Conclusion + +We’ve just shown a concise, production‑ready way to **extract text from image python** using Aspose OCR. The steps—install, license, load, hint languages, recognise, and display—cover everything you need to get reliable results for mixed Latin‑Cyrillic content. + +From here you could explore advanced topics like **image to text conversion** for batch processing, integrate the output with a **Python OCR tutorial** on natural‑language processing, or experiment with other language hints for multilingual documents. The sky’s the limit, and the code is already in your hands. + +Got a different use case or ran into an issue? Drop a comment, share your experience, and let’s keep the conversation going. Happy coding! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/turkish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..3b14d4f4f --- /dev/null +++ b/ocr/turkish/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR kullanarak görüntüden anında metin çıkarın. İlgi bölgesini + tanımlamayı, OCR için görüntüyü yüklemeyi ve sadece birkaç dakikada faturadan metin + çıkarmayı öğrenin. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: tr +og_description: Aspose OCR kullanarak görüntüden metin çıkarın. Bu kılavuz, ilgi bölgesini + nasıl tanımlayacağınızı, OCR için görüntüyü nasıl yükleyeceğinizi ve faturadan metni + verimli bir şekilde nasıl çıkaracağınızı gösterir. +og_title: Aspose OCR ile Görüntüden Metin Çıkarma – Tam Kılavuz +tags: +- ocr +- python +- image-processing +title: Aspose OCR ile Görüntüden Metin Çıkarma – Adım Adım Kılavuz +url: /tr/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR ile Görüntüden Metin Çıkarma – Adım‑Adım Kılavuz + +Görüntüden **metin çıkarmak** mı istiyorsunuz? Tek başınıza değilsiniz—geliştiriciler sürekli gürültülü taramalar, makbuzlar ve faturalarla uğraşıyor. Bu öğreticide, sadece *görüntüden metin çıkarmayı* göstermekle kalmayıp aynı zamanda **ilgi bölgesi tanımlamayı**, **OCR için görüntüyü yüklemeyi** ve bir faturadan ihtiyacınız olan tam satırı çekmeyi de gösteren eksiksiz bir çözüm üzerinden geçeceğiz. + +Aspose OCR kütüphanesinin kurulumundan döndürülmüş sayfalar gibi uç durumların ele alınmasına kadar her şeyi kapsayacağız. Sonunda, istenen metni tek bir çağrıyla çıkaran çalıştırılabilir bir betiğe sahip olacaksınız—manuel kırpma gerekmez. + +## Öğrenecekleriniz + +- Aspose'un Python API'sını kullanarak **OCR için görüntüyü yüklemeyi** nasıl yapacağınızı. +- **İlgi bölgesi (ROI) tanımlamayı** en iyi şekilde nasıl yapacağınızı, böylece sadece önemli kısmı işleyebileceksiniz. +- Tüm sayfayı çekmeden **faturadan metin çıkarmayı** nasıl yapacağınızı. +- **OCR ile görüntüyü işleme** konusunda ipuçları ve yaygın hatalardan kaçınma. + +**Önkoşullar** – güncel bir Python 3.9+ ortamı, geçerli bir Aspose OCR lisans dosyası ve bir görüntü (ör. bir fatura PNG'si). Başka bir dış araç gerekmez. + +--- + +## 1. Adım – OCR Motorunu Başlatma (Temel Kurulum) + +**OCR ile görüntüyü işleyebilmek** için, lisansınızı tutan bir motor örneğine ihtiyacınız var. Bu adım çok önemlidir çünkü lisanssız bir motor yalnızca sınırlı bir sonuç kümesi döndürür. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Neden önemli*: `OcrEngine` nesnesi kütüphanenin kalbidir; dil modellerini, görüntü ön işleme ve lisanslamayı yönetir. Lisansı önceden ayarlamak tam doğruluk ve su işareti olmamasını sağlar. + +--- + +## 2. Adım – OCR için Görüntüyü Yükleme + +Motor hazır olduğuna göre, **OCR için görüntüyü yüklememiz** gerekiyor. Aspose birçok formatı (PNG, JPEG, TIFF) destekler, ancak `Image.from_file` kullanmak görüntünün doğru şekilde çözümlendiğini garanti eder. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro ipucu**: En hızlı işleme için görüntü dosyalarınızı 5 MB'nin altında tutun. Daha büyük dosyalar OCR'dan önce `image.resize(width, height)` ile küçültülebilir. + +--- + +## 3. Adım – İlgi Bölgesi (ROI) Tanımlama + +Çoğu fatura, adres blokları, altbilgiler vb. gibi birçok alakasız metin içerir. **İlgi bölgesi tanımlayarak**, motoru yalnızca tutar veya tarih bulunan bölgeye bakmasını söyleriz; bu da hız ve doğruluğu artırır. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*Nasıl çalışır*: `Rectangle` sınıfı görüntüyü sanal olarak kırpar; OCR motoru dikdörtgenin dışındaki pikselleri hiç görmez, bu yüzden ROI dışındaki gürültü yok sayılır. + +--- + +## 4. Adım – ROI İçindeki Metni Tanıma + +Motor, görüntü ve ROI hazır olduğunda, nihayet **görüntüden metin çıkarırız**. `recognize` metodu, tespit edilen dizeyi ve güven skorlarını içeren bir `OcrResult` nesnesi döndürür. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Beklenen çıktı** (tipik bir fatura toplam satırı örneği): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +ROI doğru konumlandırıldıysa, sadece ihtiyacınız olan satırı göreceksiniz—başka bir şey yok. + +--- + +## 5. Adım – Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +Aşağıda, önceki adımları birleştiren tam betik yer alıyor. `extract_invoice_roi.py` olarak kaydedin ve `python extract_invoice_roi.py` komutuyla çalıştırın. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Betik çalıştırıldığında hedef satırın konsola yazdırıldığını görmelisiniz. Boş bir dize alırsanız, ROI koordinatlarını iki kez kontrol edin—bazen birkaç piksel fark metni tamamen dışarıda bırakabilir. + +--- + +## 6. Adım – Yaygın Varyasyonlar ve Uç Durumlar + +### a) Farklı fatura düzenleri +Farklı satıcıların faturaları genellikle toplam tutar kutusunu farklı konumlara yerleştirir. Birden çok düzen üzerinde **OCR ile görüntüyü işlemek** için şunları düşünün: + +- **Çoklu ROI'lar**: Motoru birkaç dikdörtgenle sıralı olarak çalıştırın ve en yüksek güvene sahip sonucu seçin. +- **Dinamik ROI tespiti**: Hafif bir görüntü işleme kütüphanesi (örn. OpenCV) kullanarak önce “Total” etiketini bulun, ardından ROI'yi ona göre hesaplayın. + +### b) Döndürülmüş veya eğik görüntüler +Tarama eğik ise, tanımadan önce `image.rotate(angle)` çağırın: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR ayrıca otomatik düzeltme sunar, ancak manuel döndürme daha kesin kontrol sağlar. + +### c) Latin dışı karakterler +Varsayılan dil modeli İngilizcedir. Başka bir dilde yazılmış **faturadan metin çıkarmak** için, tanımadan önce dili ayarlayın: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) Büyük PDF'ler +Çok sayfalı PDF'lerle çalışırken, önce her sayfayı bir görüntü olarak çıkarın (Aspose PDF → Image) ve ardından her sayfada aynı ROI mantığını uygulayın. + +--- + +## 7. Adım – Performans İpuçları ve Pro İpuçları + +- **Motoru önbellekle**: Döngü içinde `OcrEngine`'i tekrar tekrar oluşturmak yavaşlatır. Bir kez örnekleyin ve yeniden kullanın. +- **Toplu işleme**: Onlarca faturanız varsa, OCR çağrısını bir `ThreadPoolExecutor` içine alarak I/O‑ağırlıklı işi paralelleştirin. +- **Güven kontrolü**: `ocr_result.confidence` 0 ile 1 arasında bir ondalık verir. 0.85'in altındaki sonuçları reddedin ve daha büyük bir ROI'ye ya da manuel incelemeye geçin. + +> **Dikkat**: ROI'yi çok küçük ayarlamak karakterleri kesebilir ve bozuk çıktı verir. Ölçeklendirmeden önce her zaman birkaç örnek fatura ile test edin. + +--- + +## Sonuç + +Artık Aspose OCR kullanarak **görüntüden metin çıkarmak** için sağlam, üretime hazır bir yönteme sahipsiniz; **ilgi bölgesi tanımlama**, **OCR için görüntüyü yükleme** ve fatura alanlarından güvenilir şekilde **metin çıkarma** yolları da dahil. OCR'yi dar bir ROI ile sınırlayarak hem hız hem de doğruluğu artırırsınız—binlerce makbuzun toplu işlenmesi için mükemmeldir. + +Bir sonraki adıma hazır mısınız? Bu betiği bir Flask API'sine entegre etmeyi deneyin; böylece web uygulamanız bir faturayı yükleyebilir ve anında toplam tutarı döndürebilir. Ya da birden çok ROI ile tarih, fatura numarası ve satıcı adını tek seferde çekmeyi deneyin. Olanaklar sonsuzdur ve burada temelleri öğrendiğiniz için herhangi bir OCR sorununu çözmeye iyi donanımlısınız. + +Kodlamaktan keyif alın ve çıkarılan metniniz her zaman temiz olsun! + +![Aspose OCR kullanarak görüntüden metin çıkarma sürecini gösteren iş akışı diyagramı](workflow.png){: .center-image alt="Aspose OCR kullanarak görüntüden metin çıkarma sürecini gösteren iş akışı diyagramı"} + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/turkish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..d4ba20156 --- /dev/null +++ b/ocr/turkish/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Python'un async OCR'ı kullanarak görüntüden metin çıkarın. Tif dosyasını + metne dönüştürmeyi, OCR için görüntüyü yüklemeyi ve görüntüden metni verimli bir + şekilde tanımayı öğrenin. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: tr +og_description: Python async OCR kullanarak görüntüden metin çıkarın. Bu kılavuz, + tif dosyasını metne dönüştürmeyi, OCR için görüntüyü yüklemeyi ve görüntüden metni + tanımayı gösterir. +og_title: Python Asenkron OCR ile Görüntüden Metin Çıkarma – Tam Kılavuz +tags: +- OCR +- Python +- AsyncIO +title: Python Asenkron OCR ile Görüntüden Metin Çıkarma – Tam Kılavuz +url: /tr/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Görüntüden Metin Çıkarma – Python Async OCR Tam Kılavuzu + +Metni **görüntüden hızlıca çıkarmak** mı istiyorsunuz? Python'un async OCR özelliğiyle bunu sadece birkaç satır kodla yapabilirsiniz. İster devasa bir .tif taraması, ister birkaç JPEG dosyasıyla çalışıyor olun, bu öğreticide tif’i metne dönüştürmeyi, OCR için görüntüyü yüklemeyi ve sonunda görüntüden metni tanımayı, olay döngünüzü engellemeden nasıl yapacağınızı göstereceğiz. + +Şöyle bir şey var—çoğu geliştirici senkron bir kütüphane kullanıp motor pikselleri işlerken donmuş bir UI ile karşı karşıya kalıyor. Bu rehberde Aspose OCR Cloud'un asenkron API'sini kullanarak bu senaryoyu tersine çevireceğiz, böylece uygulamanız yanıt vermeye devam edecek. Sonunda, desteklenen herhangi bir görüntü formatından metin çıkaran çalıştırılabilir bir betiğiniz olacak ve her adımın nedenini anlayacaksınız. + +## Öğrenecekleriniz + +- Aspose OCR Cloud SDK for Python nasıl kurulur. +- **OCR için görüntü yükleme** ve asenkron tanıma görevi başlatmak için gereken tam kod. +- Büyük .tif dosyaları ve lisans nüanslarıyla başa çıkma ipuçları. +- Servis hata döndürdüğünde bile **görüntü metnini çıkarmayı** güvenli bir şekilde yapma yolları. +- Kendi projenize ekleyebileceğiniz, kopyala‑yapıştır‑hazır bir örnek. + +> **Önkoşul**: Python 3.8+ ve bir Aspose OCR Cloud lisans dosyası (`Aspose.OCR.Java.lic`). Başka üçüncü‑taraf pakete ihtiyaç yok. + +--- + +![görüntüden metin çıkarma iş akışı](workflow.png){: .align-center alt="görüntüden metin çıkarma iş akışı"} + +## Görüntüden Metin Çıkarma – Async OCR Genel Bakış + +Koda geçmeden önce akışı inceleyelim. `recognize_async` metodunu çağırdığınızda SDK görüntüyü Aspose bulutuna gönderir, arka planda bir iş başlatır ve size bir `Task` nesnesi verir. Bu görevi beklediğinizde, resmin düz‑metin temsili olan bir `OcrResult` elde edersiniz. Çağrı asenkron olduğu için birden çok işi paralel olarak başlatabilirsiniz—büyük taranmış belge arşivlerini toplu işlemek için mükemmel. + +### Neden Async Kullanmalı? + +- **Bloklamayan I/O** – Olay döngünüz diğer işleri (ör. HTTP istekleri) halletmeye devam eder. +- **Ölçeklenebilirlik** – Aynı anda onlarca tanıma başlatabilirsiniz; ağır işleri bulut üstlenir. +- **Yanıt Verebilirlik** – UI uygulamaları OCR motorunu beklerken donmaz. + +“Neden” kısmı netleşti, şimdi **nasıl** yapılacağını görelim. + +## Aspose OCR ile TIF’i Metne Dönüştürme + +Sık karşılaşılan bir tuzak, her OCR kütüphanesinin .tif’i yerel olarak desteklediğini varsaymaktır. Aspose destekler, ancak yine de bir `Image` nesnesi vermeniz gerekir. SDK formatı soyutlar, böylece sadece dosya yolunu göstermeniz yeterlidir. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Ana satırların açıklaması** + +- `ocr_engine.license = ...` – Geçerli bir lisans olmadan bulut 403 hatası döner. `.lic` dosyasının betiğinizin çalışma dizininden erişilebilir olduğundan emin olun. +- `ocr.Image.from_file(image_path)` – Bu adım **OCR için görüntü yükleme**; SDK formatı otomatik algılar, böylece .tif’i önceden dönüştürmenize gerek kalmaz. +- `recognize_async` – Coroutine‑uyumlu bir görev döndürür. Bir toplu işlem yapıyorsanız bunları bir `gather` çağrısında bir araya getirebilirsiniz. + +> **Pro ipucu**: Gigabayt‑boyutundaki TIFF dosyalarını işliyorsanız önce sayfalara bölmeyi düşünün. Aspose’un `Image.from_file` metodu bir sayfa indeksi alabilir, bu da bellek baskısını azaltır. + +## Görüntüden Metni Asenkron Tanıma + +Tipik bir betikten fonksiyonu nasıl çağıracağınızı görelim. `asyncio.run` giriş noktası, zaten bir olay döngüsü içinde olmadığınızda (ör. sade bir CLI aracı) coroutine’i başlatmanın en basit yoludur. + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**Beklenen sonuç** + +Temiz, yüksek çözünürlüklü bir tarama üzerinde betiği çalıştırdığınızda genellikle basılı sayfaya karşılık gelen çok satırlı bir dize elde edersiniz. Görüntü gürültülü ise Aspose yine temizlemeye çalışır, ancak bozuk karakterler görebilirsiniz. Bu durumda OCR motoruna dosyayı vermeden önce OpenCV ile (ör. eşikleme) ön işleme yapmayı düşünün. + +### Hataları Zarifçe Yönetme + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +`OcrException` yakalamak, bulut bir hata döndürdüğünde programınızın çökmesini önler—bu, ağ kesintilerini unutmuş yeni başlayanların sık yaptığı bir hatadır. + +## OCR için Görüntü Yükleme – Pratik İpuçları + +1. **Dosya Yolu vs. Baytlar** – SDK bir dosya yolu kabul eder, ancak görüntü bellekte ise `ocr.Image.from_bytes` ile bir `bytes` nesnesinden de yükleyebilirsiniz. Bu, dosyayı S3 ya da bir veritabanından zaten çektiyseniz kullanışlıdır. +2. **Desteklenen Formatlar** – .tif’in yanı sıra Aspose PDF, BMP, GIF ve hatta çok sayfalı TIFF dosyalarını da işler. PDF’leri doğrudan OCRlamak için `Image.from_file("doc.pdf")` kullanın. +3. **Performans** – Toplu işler için aynı `OcrEngine` örneğini yeniden kullanın; her dosya için yeni bir motor oluşturmak gereksiz yük getirir. + +## Tam Çalışan Örnek (Tüm Adımlar Tek Betikte) + +Aşağıda lisanslama, hata yönetimi ve basit bir komut satırı argüman ayrıştırıcı içeren, çalıştırmaya hazır tam betik yer alıyor. Kopyala‑yapıştır yapın, lisans yolunu ayarlayın ve hazırsınız. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Beklenen çıktı** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Görüntü basit bir paragraf içeriyorsa, konsol aynı satırları, satır sonlarını koruyarak gösterir. Çok sayfalı TIFF’lerde SDK sayfaları sırayla birleştirir. + +## Sık Sorulan Sorular (SSS) + +**S: Bu, FastAPI gibi diğer async çerçevelerle çalışır mı?** +C: Kesinlikle. `asyncio.run` çağrısını endpoint içinde `await async_ocr(path)` ile değiştirin, FastAPI olay döngüsünü sizin için yönetir. + +**S: Yüzlerce dosyayı aynı anda işlemek istiyorum, ne yapmalıyım?** +C: `asyncio.gather` kullanın: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**S: Şifre korumalı bir PDF’den metin çıkarabilir miyim?** +C: Direkt değil. Önce PDF’i (ör. `pikepdf` ile) açmanız, ardından çözülen baytları `ocr.Image.from_bytes` ile vermeniz gerekir. + +**S: İngilizce dışındaki dilleri nasıl ele alırım?** +C: Tanımadan önce dili ayarlayın: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose 60’tan fazla dili destekler; kesin tanımlayıcılar için dokümantasyona bakın. + +## Sonuç + +Artık Python’un `asyncio` ve Aspose OCR Cloud’un asenkron API’sini kullanan sağlam bir **görüntüden metin çıkarma** çözümünüz var. Yukarıdaki adımları izleyerek **tif’i metne dönüştürme**, **OCR için görüntü yükleme** ve **görüntüden metni tanıma** işlemlerini bloklamayan bir şekilde gerçekleştirebilirsiniz—komut satırı araçları ve yüksek trafikli web servisleri için ideal. + +Sırada ne var? Bir klasördeki taramaları toplu işleyin, dil ayarlarıyla deney yapın ya da OCR çıktısını bir sonraki NLP hattına yönlendirin. Ufuklar geniş... + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/turkish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..65c43fcc1 --- /dev/null +++ b/ocr/turkish/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,177 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR kullanarak metni hızlıca çıkarın. OCR doğruluğunu artırmayı, + görüntüyü OCR ile yüklemeyi, görüntüyü OCR için ön işlemeyi ve Python’da OCR taraması + yapmayı öğrenin. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: tr +og_description: Aspose OCR kullanarak metni hızlıca çıkarın. OCR doğruluğunu artırmayı, + görüntüyü OCR ile yüklemeyi, görüntüyü OCR için ön işlemeyi ve Python’da OCR taraması + çalıştırmayı öğrenin. +og_title: metin çıkarma OCR – Aspose OCR ile Tam Kılavuz +tags: +- OCR +- Python +- Aspose +title: Metin Çıkarma OCR – Aspose OCR ile Tam Kılavuz +url: /tr/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Complete Guide with Aspose OCR + +Hiç **extract text ocr** işlemini titrek bir taramadan yapmaya çalıştınız ama sonuçların anlamsız harfler gibi göründüğünden şaşırdınız mı? Yalnız değilsiniz—görüntü eğimli, gürültülü ya da düşük kontrastlı olduğunda birçok geliştirici aynı sorunla karşılaşıyor. İyi haber şu ki, birkaç yapılandırma ayarıyla karışık bir resmi temiz, aranabilir metne dönüştürebilirsiniz. Bu öğreticide, ocr doğruluğunu nasıl artıracağınızı, image ocr nasıl yükleneceğini, image ocr nasıl ön‑işlemden geçirileceğini ve sonunda Aspose OCR for Python ile OCR taramasının nasıl çalıştırılacağını gösteren tam bir uçtan uca örnek üzerinden ilerleyeceğiz. + +Bu rehberin sonunda, taranmış bir JPEG dosyasını okuyup otomatik olarak temizleyen ve çıkarılan metni konsola yazdıran çalıştırılabilir bir betiğe sahip olacaksınız. “belgelere bakın” gibi gizli linkler yok—gereken her şey burada. + +## What You’ll Need + +- **Python 3.8+** (en yeni kararlı sürüm en iyisidir) +- **Aspose.OCR for Python via .NET** – `pip install aspose-ocr` ile kurun +- Satın aldıysanız bir **lisans dosyası** (`Aspose.OCR.Java.lic`) (deneme sürümü test için yeterli) +- İşlemek istediğiniz bir görüntü (ör. `skewed_scanned_doc.jpg`) + +Hepsi bu. Bu bileşenlere sahipseniz, doğrudan koda geçebiliriz. + +## Step 1: Extract Text OCR with Aspose OCR Engine + +İlk adım OCR motorunu başlatmak ve lisansınızı uygulamaktır. Motor, görüntüyü okuyacak beyin gibidir; lisans olmadan sadece çok sınırlı bir demo modunda çalışır. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** Lisansı önceden uygulamak, daha sonra sessiz bir hatayı önler. Bu adımı atlayınca motor kısıtlı moda geçer ve sadece birkaç karakter döner—extract text ocr yapmaya çalıştığınızda kesinlikle beklediğiniz şey değildir. + +## Step 2: Improve OCR Accuracy with Pre‑processing + +Eğik ya da grenli taramalar, her OCR projesinin baş ağrısıdır. Aspose, otomatik olarak deskew, denoise ve kontrast artırma gibi birkaç kullanışlı ayarı açıp kapamanıza izin verir. Bu, **improve ocr accuracy** işleminin kalbidir. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – görüntüyü yatay konuma döndürür, orijinal belge tam düz olmadığında kritik öneme sahiptir. +- **remove_noise** – düşük çözünürlüklü JPEG’lerde sıkça görülen rastgele lekeleri temizler. +- **enhance_contrast** – koyu metni daha koyu, açık arka planı daha açık yapar, motorun karakterleri ayırt etmesini kolaylaştırır. +- **binarization = "Otsu"** – siyah‑beyaz dönüşüm için en iyi eşik değerini belirleyen klasik bir algoritmadır. + +> **Pro tip:** Kaynak görüntülerinizin zaten temiz olduğunu biliyorsanız, bu seçenekleri kapatarak işleme süresini kısaltabilirsiniz. Ancak çoğu gerçek dünya taraması için açık bırakmak en güvenli yaklaşımdır. + +## Step 3: Load Image OCR for Scanning + +Motor hazır olduğuna göre, **load image ocr** yapmamız gerekiyor. Aspose’un `Image.from_file` metodu JPEG, PNG, TIFF ve birkaç başka formatı destekler. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +`YOUR_DIRECTORY` kısmını makinenizdeki gerçek yol ile değiştirin. Eğer bir web yüklemesinden gelen bellek içi bayt akışı (ör. `byte_data`) ile çalışıyorsanız, `ocr.Image.from_bytes(byte_data)` kullanabilirsiniz—aynı motor bunu halleder. + +> **Edge case:** Büyük TIFF dosyaları belleği çok tüketebilir. `MemoryError` alırsanız, önce görüntüyü küçültmeyi ya da `ocr_engine.config.max_image_size` ile boyutları sınırlamayı düşünün. + +## Step 4: Run OCR Scan and Get Results + +Görüntü yüklendi ve ön‑işleme etkinleştirildi, son adım **run OCR scan** yapmaktır. Bu çağrı, sahnenin arkasında tüm ağır işleri yürütür. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +`ocr_result` nesnesi birkaç kullanışlı özelliğe sahiptir: + +- `ocr_result.text` – ihtiyacınız olan düz metin. +- `ocr_result.confidence` – 0‑100 arasında bir sayı, genel güvenilirliği gösterir. +- `ocr_result.words` – sınırlayıcı kutu koordinatları içeren kelime nesneleri listesi, vurgulama için işe yarar. + +## Step 5: Print the Extracted Text + +Son olarak sonucu ekrana yazdırıyoruz. Gerçek bir uygulamada metni bir dosyaya, veritabanına ya da bir arama indeksine yazabilirsiniz. Bu öğreticide basit bir `print` yeterli. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output** (örnek bir fatura için): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Güven skoru düşükse (< 80), ön‑işleme ayarlarını yeniden gözden geçirin ya da `"Sauvola"` gibi farklı bir binarizasyon yöntemi deneyin. + +## Bonus: Visualizing the Pre‑processing Pipeline (Optional) + +Bazen motorun görüntüye ne yaptığını görmek faydalı olur. Aspose, işlenmiş bitmap’i dışa aktarmanıza izin verir: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Daha sonra bu görüntüyü belgelerinizde kullanabilirsiniz: + +extract text ocr workflow diagram showing preprocessing steps + +> **Why you’d do this:** OCR sonucu hatalı göründüğünde, `processed_debug.png`’e hızlı bir bakış, görüntünün hâlâ çok karanlık, eğik ya da gürültülü olup olmadığını ortaya çıkarır. + +## Common Questions & Gotchas + +- **What if my document is multi‑page?** + Aspose OCR sayfa‑sayfa çalışır. Her sayfa görüntüsü üzerinde döngü kurup `ocr_result.text`’i birleştirin. + +- **Can I recognize languages other than English?** + Evet—`ocr_engine.config.language = "fra"` (veya herhangi bir ISO‑639‑2 kodu) ayarlayıp `recognize` çağrısından önce belirleyin. + +- **Is there a limit on image size?** + Motor varsayılan olarak 10 MP ile sınırlıdır. Daha büyük taramalara ihtiyacınız varsa `ocr_engine.config.max_image_size` değerini artırın, ancak bellek kullanımına dikkat edin. + +- **Do I need a separate OCR engine for PDFs?** + PDF’ler için ya her sayfayı önce görüntüye dönüştürün (Aspose.PDF kullanarak) ya da yerleşik PDF OCR özelliğini kullanın. Burada gösterilen adımlar, bir görüntü elde ettikten sonra aynı kalır. + +## Recap + +Aspose OCR for Python ile **extract text ocr** nasıl yapılır, motorun lisanslanmasından **improve ocr accuracy** ayarlarının incelenmesine, kaynak dosyanın yüklenmesine ve sonunda **run OCR scan** ile temiz metnin elde edilmesine kadar her şeyi ele aldık. Tam betik kopyala‑yapıştır için hazır ve her yapılandırma bayrağının neden önemli olduğunu artık biliyorsunuz. + +## What’s Next? + +- **Farklı binarizasyon yöntemleri** (`"Sauvola"`, `"Bradley"`) deneyin. Bazı fontlar adaptif eşiklere daha iyi yanıt verir. +- **Bir arama motoru** (ör. Elasticsearch) ile entegrasyon sağlayın, güven skorunu sonuçları sıralamak için kullanın. +- **OCR sonrası işleme** kütüphaneleri (`pyspellchecker` gibi) ile yaygın tanıma hatalarını düzeltin. +- **Toplu işleme** keşfedin—adımları bir fonksiyon içinde paketleyip bir klasördeki yüzlerce görüntüyü işleyin. + +Kodu istediğiniz gibi özelleştirin, kendi loglamanızı ekleyin ya da daha büyük bir belge‑yönetim hattına entegre edin. Herhangi bir sorunla karşılaşırsanız, aşağıya yorum bırakın—mutlu kodlamalar! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/turkish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..62771b1c8 --- /dev/null +++ b/ocr/turkish/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR Java kullanarak PDF'yi OCR'lamak nasıl yapılır. PDF üzerinde + OCR çalıştırmayı, PDF'den metin tanımayı, PDF'yi JSON'a dönüştürmeyi ve OCR için + PDF'yi sadece birkaç satır kodla yüklemeyi öğrenin. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: tr +og_description: Aspose OCR Java kullanarak PDF'yi OCR nasıl yapılır. Bu rehber, PDF + üzerinde OCR çalıştırmayı, PDF'deki metni tanımayı, PDF'yi JSON'a dönüştürmeyi ve + PDF'yi hızlı bir şekilde OCR için yüklemeyi gösterir. +og_title: Aspose OCR ile PDF'yi OCR'lamak – Tam Programlama Öğreticisi +tags: +- Aspose OCR +- Java +- PDF processing +title: Aspose OCR ile PDF'yi OCR'lamak – Tam Adım Adım Kılavuz +url: /tr/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF'yi Aspose OCR ile Nasıl OCR Yapılır – Tam Adım‑Adım Kılavuz + +Hiç **PDF'yi OCR yapmanın** komut satırı araçlarıyla uğraşmadan ya da pahalı SaaS hizmetlerine para ödeyerek nasıl yapılacağını merak ettiniz mi? Tek başınıza değilsiniz. Birçok projede—fatura otomasyonu, taranmış sözleşmelerin arşivlenmesi veya aranabilir bir bilgi tabanı oluşturma—PDF'lerden hızlı ve güvenilir bir şekilde metin çıkarmanız gerekir. + +İyi haber? Aspose OCR for Java ile **PDF üzerinde OCR çalıştırabilir**, PDF sayfalarındaki metni tanıyabilir, **PDF'yi JSON'a dönüştürebilir** ve hatta **PDF'yi OCR için yükleyebilirsiniz** sadece birkaç satır kodla. Bu öğreticide tüm iş akışını adım adım inceleyecek, her adımın neden önemli olduğunu açıklayacak ve kendi projenize ekleyebileceğiniz çalıştırmaya hazır bir kod örneği sunacağız. + +## Öğrenecekleriniz + +- Aspose OCR motorunu nasıl kurup lisansınızı uygulayacağınızı. +- **PDF'yi OCR için yüklemenin** tam yolunu ve tanıyıcıya nasıl besleyeceğinizi. +- **PDF metnini tanımanın** tüm sayfalarda tek bir çağrıyla nasıl yapılacağını. +- Tam OCR sonucunu **JSON** dosyasına (alt sistem API'leri için mükemmel) ve tek bir sayfayı **XML**'e dışa aktarmayı. +- Çok sayfalı PDF'lerle veya özel dil paketleriyle çalışırken ihtiyaç duyabileceğiniz ipuçları, tuzaklar ve varyasyonlar. + +> **Önkoşullar** – Java 8 veya daha yeni bir sürüm, geçerli bir Aspose OCR for Java lisans dosyası (`Aspose.OCR.Java.lic`) ve sınıf yolunuzda Aspose OCR JAR dosyası gerekir. Başka harici kütüphane gerekmez. + +--- + +## PDF'yi OCR – Aspose OCR Motorunu Başlatma + +İlk olarak `OcrEngine` örneği oluşturmalı ve lisansınızı eklemelisiniz. Bu adım tüm özellik setini açar ve değerlendirme filigranını kaldırır. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Neden önemli:** +Lisans olmadan Aspose OCR, sayfa sayısını sınırlayan ve çıktıya filigran ekleyen sınırlı bir “deneme” modunda çalışır. Lisansı önceden uygulamak, sonraki adımların beklenmedik kısıtlamalar olmadan çalışmasını sağlar. + +--- + +## PDF'yi OCR – Belgeyi Yükleme ve Metni Tanıma + +Şimdi **PDF'yi OCR için yüklüyoruz**. Aspose OCR, PDF'leri özel bir `PdfDocument` türü olarak ele alır; bu tür içsel olarak her sayfayı bir görüntüye dönüştürür ve tanıyıcıya besler. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Arka planda neler oluyor?** +`recognizeDocument` her sayfayı dolaşır, optimal DPI'da rasterleştirir ve ardından OCR motorunu çalıştırır. Sonuç, her öğenin algılanan metni, güven skorlarını ve düzen bilgilerini içeren bir `OcrPage` dizisidir. Bu yaklaşım, ham PDF baytlarını genel bir OCR kütüphanesine vermekten çok daha güvenilirdir. + +--- + +## OCR Sonucunu JSON'a Dönüştür – Tam Raporu Dışa Aktarma + +Çoğu alt sistem JSON tercih eder çünkü Java, JavaScript, Python veya hatta PowerShell'de kolayca serileştirilebilir. Aspose OCR, tüm `OcrPage[]` dizisini serileştiren bir `JsonExport` yardımcı sınıfı ile birlikte gelir. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**Ne zaman kullanılır?** +OCR çıktısını bir arama indeksine (Elasticsearch, Solr) veya bir veri hattına beslemeniz gerektiğinde, JSON formatı her sayfa, satır ve kelime için güven değerleriyle birlikte yapılandırılmış bir temsil sunar. + +--- + +## İlk Sayfayı XML'e Dışa Aktar – Tek Sayfayı Kaydet + +Bazen sadece tek bir sayfa ilginizi çeker—belki ilk sayfa bir başlık ya da fatura numarası içerir. `XmlExport` sınıfı, tek bir `OcrPage`'i düzenli bir XML dosyasına dökmenizi sağlar. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Neden XML?** +Eski sistemler veya bazı kurumsal iş akışları hâlâ veri alımı için XML şemalarına dayanır. Oluşturulan dosya Aspose’un kendi şemasını izler, bu da doğrulamayı kolaylaştırır. + +--- + +## Çıktıyı Doğrulama – JSON ve XML Dosyalarını Kontrol Etme + +Program tamamlandığında `YOUR_DIRECTORY` içinde iki dosya görmelisiniz: + +- `report_ocr.json` – Sayfa nesnelerinin bir dizisini içerir. Hızlı bir örnek şöyle görünebilir: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Sayfa 1 için aynı bilgileri `` etiketleri içinde tutar. + +Herhangi bir editörde açın; ham OCR dizelerini, güven skorlarını ve sınırlayıcı kutu koordinatlarını göreceksiniz. JSON boş görünüyorsa, giriş PDF'inin gerçekten rasterleştirilmiş içerik (taranmış görüntüler) içerdiğini ve seçilebilir metin olmadığını iki kez kontrol edin—Aspose OCR yalnızca görüntüler üzerinde çalışır. + +--- + +## Yaygın Tuzaklar & Profesyonel İpuçları + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|-------| +| **Boş JSON** | PDF yerel metin içeriyor, görüntü değil. | Görüntüleme zorlamak için `PdfDocument.fromFile(..., true)` kullanın veya sayfaları önceden görüntülere dönüştürün. | +| **Düşük güven** | Kaynak PDF düşük çözünürlüklü veya aşırı sıkıştırılmış. | `recognizeDocument` çağrısından önce `ocrEngine.getImageProcessingOptions().setDpi(300)` ile DPI'yi artırın. | +| **Lisans bulunamadı** | Yanlış yol veya eksik dosya. | Mutlak bir yol kullanın veya `.lic` dosyasını sınıf yoluna koyup `lic.setLicense("Aspose.OCR.Java.lic")` çağırın. | +| **Büyük PDF'lerde bellek tükenmesi** | Tüm sayfalar aynı anda belleğe yükleniyor. | Sayfaları partiler halinde işleyin: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Örneği Genişletme + +- **Belirli bir dil ile PDF üzerinde OCR çalıştırma** – `ocrEngine.getLanguage().setLanguage(Language.English)` ayarlayın veya özel bir dil paketi yükleyin. +- **Her sayfayı ayrı JSON dosyalarına dışa aktarma** – `ocrPages` üzerinde döngü kurup `JsonExport.save(page, "page" + page.getPageNumber() + ".json")` çağırın. +- **Bir arama motoru ile bütünleştirme** – JSON'u Elasticsearch’ün `attachment` işlemcisine tam metin arama için besleyin. + +--- + +## Sonuç + +Artık Aspose OCR for Java kullanarak **PDF'yi OCR yapmanın** tam, üretim‑hazır bir çözümüne sahipsiniz. Motoru başlatıp PDF'yi yükleyerek, OCR çalıştırıp hem **JSON** hem de **XML** dışa aktararak OCR'ı herhangi bir arka uç iş akışına entegre edebilirsiniz—ister **PDF üzerinde OCR çalıştırın**, ister **PDF metnini tanıyın**, ister **PDF'yi JSON'a dönüştürün**, ister sadece **PDF'yi OCR için yükleyin**. + +Biraz deneyin, DPI veya dil ayarlarını değiştirin ve önceki opak PDF'lerinizin aranabilir varlıklara dönüşümünü izleyin. Daha ileri gitmek mi istiyorsunuz? JSON'u Elasticsearch'e indeksleyin ya da XML'i XSLT ile işleyerek özel raporlar oluşturun. + +İyi kodlamalar, PDF'leriniz her zaman okunabilir olsun! 🚀 + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/turkish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..b999a4e0d --- /dev/null +++ b/ocr/turkish/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,158 @@ +--- +category: general +date: 2026-05-03 +description: 'OCR''ı hızlıca çalıştırma: Aspose OCR Java kullanarak görüntüden metin + çıkarmayı ve formdan metni tanımayı öğrenin. OCR için görüntü okuma adımları basittir.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: tr +og_description: 'ocr''ı hızlıca çalıştırma: Aspose OCR Java kullanarak görüntüden + metin çıkarmayı ve formdan metin tanımayı öğrenin. OCR için görüntü okumanın basit + adımları.' +og_title: Formda OCR Nasıl Çalıştırılır – Görüntüden Metin Çıkarma +tags: +- ocr +- java +- image-processing +title: Bir formda OCR nasıl çalıştırılır – Görüntüden metin çıkarma +url: /tr/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# form üzerinde ocr nasıl çalıştırılır – görüntüden metin çıkarma + +Hiç **ocr nasıl çalıştırılır** sorusunu, karmaşık kütüphanelerle saatler harcamadan bir taranmış belge üzerinde merak ettiniz mi? Tek başınıza değilsiniz. Birçok projede—faturaları dijitalleştirmek, sözleşmeleri arşivlemek ya da el yazısı formlardan veri çekmek—**görüntüden metin çıkarma** dosyaları günlük bir sıkıntı haline geliyor. + +Aslında şu ki: Aspose OCR for Java, tüm süreci neredeyse ağrısız hâle getiriyor. Bu öğreticide, **formdan metin tanıma** için ihtiyacınız olan her kod satırını adım adım inceleyecek, her adımın neden önemli olduğunu açıklayacak ve **ocr için görüntü okuma** sonuçlarını güven puanlarıyla nasıl alacağınızı göstereceğiz. Sonunda, herhangi bir Maven ya da Gradle projesine ekleyebileceğiniz hazır‑çalışır bir Java sınıfına sahip olacaksınız. + +## Öğrenecekleriniz + +- Aspose OCR motorunu kurun ve lisansınızı uygulayın. +- JPEG, PNG veya TIFF dosyasını belleğe yükleyin. +- OCR çalıştırın ve tanınan her satırı yineleyin. +- Düşük‑güven puanlı satırları manuel inceleme için işaretleyin. +- Örneği çok‑sayfalı PDF’ler veya farklı görüntü formatları için genişletin. + +Aspose ile ilgili önceden bir deneyime ihtiyacınız yok, sadece temel bir Java geliştirme ortamı (JDK 11+ ve tercih ettiğiniz IDE) yeterli. Hadi başlayalım. + +![how to run ocr example](/images/ocr-demo.png){alt="taranmış bir formda ocr nasıl çalıştırılır örneği"} + +## Adım 1: OCR Motorunu Başlatma – **ocr nasıl çalıştırılır** + +Her OCR işleminden önce yapmanız gereken ilk şey, bir `OcrEngine` örneği oluşturup geçerli bir lisans eklemektir. Lisans olmadan kütüphane demo modunda çalışır ve işleyebileceğiniz sayfa sayısını kısıtlar. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Neden önemli:** +`OcrEngine`, dil, algılama modu ve performans ayarları gibi tüm yapılandırmaları tutar. Lisansı önceden ayarlayarak, çıktınızı kesintiye uğratabilecek sessiz deneme moduna geçişi önlersiniz. + +## Adım 2: Görüntüyü Yükleme – **görüntüden metin çıkarma** + +Şimdi taramak istediğiniz dosyayı işaret eden bir `Image` nesnesine ihtiyacımız var. Aspose, geniş bir format yelpazesini destekler; böylece zaten PNG’ye dönüştürülmüş bir taranmış PDF sayfası, ham bir JPEG ya da çok‑sayfalı bir TIFF besleyebilirsiniz. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Neden önemli:** +Görüntüyü bir `Image` nesnesi olarak yüklemek, motorun piksel verilerine, DPI bilgisine ve renk derinliğine erişmesini sağlar; bunların hepsi OCR doğruluğunu etkiler. Bu adımı atlayıp ham bir bayt dizisi geçirirseniz bu yararlı ipuçlarını kaybedersiniz. + +## Adım 3: OCR Çalıştırma – **formdan metin tanıma** + +Şimdi eğlenceli kısım: karakterleri gerçekten tanımak. `recognize` metodu, her biri kendi güven puanına sahip `Line` nesnelerinden oluşan bir `RecognitionResult` döndürür. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Neden önemli:** +`recognize` çağrısı, iç süreçlerin bir zincirini tetikler—ön‑işleme (eğrilik düzeltme, gürültü giderme), segmentasyon, karakter sınıflandırması ve son‑işleme (imla kontrolü, dil modeli). Sonuç nesnesi tüm bu karmaşıklığı soyutlar. + +## Adım 4: Sonuçları İşleme – **ocr için görüntü okuma** çıktısı + +`RecognitionResult` elde ettikten sonra, her satırı yineleyebilir, otomatik olarak neyin tutulacağını karar verebilir ve şüpheli görünenleri işaretleyebilirsiniz. Çoğu basılı form için %85 ’lik bir güven eşiği iyi bir başlangıçtır. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Beklenen çıktı (örnek):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +Yukarıdaki örnekte motor, toplam tutarın son rakamı konusunda emin değildi, bu yüzden bir uyarı bastık. Bu satırları manuel düzeltme için bir UI’ye yönlendirebilir ya da daha sonra inceleme amacıyla kaydedebilirsiniz. + +### Kenar Durumları & İpuçları + +- **Birden fazla sayfa:** Çok‑sayfalı bir PDF’niz varsa, her sayfa indeksi için döngü oluşturup `Image.fromPdf(pdfPath, pageIndex)` çağırın. +- **Farklı diller:** `engine.getLanguage().setLanguage(Language.Spanish);` satırını `recognize` çağrısından önce ekleyin. +- **Görüntü kalitesi:** Düşük çözünürlüklü taramalar (< 150 DPI) genellikle %80’in altında güven verir. `image.resize(300, 300)` ile ölçeklendirme yardımcı olabilir, ancak en iyi çözüm daha iyi bir taramadır. +- **Performans:** Her seferinde yeni bir `OcrEngine` oluşturmak yerine aynı örneği birden çok görüntüde yeniden kullanmak, yükü azaltır. + +## Sıkça Sorulan Sorular + +**Bunu başsız bir sunucuda çalıştırabilir miyim?** +Kesinlikle. Kütüphane GUI bağımlılığı içermez, bu yüzden Docker konteynerlerinde ya da CI boru hatlarında sorunsuz çalışır. + +**Henüz bir lisansım yoksa ne olur?** +`engine.recognize` hâlâ çağrılabilir, ancak demo modu ilk 2 sayfadan sonra durur ve çıktıya filigran ekler. Hızlı testler için idealdir. + +**Yapılandırılmış veri (ör. tablolar) çıkarma yolu var mı?** +Aspose OCR, bir `TableRecognizer` sınıfı sunar, ancak bu başlangıç rehberinin kapsamı dışındadır. Temelleri kavradıktan sonra `TableRecognizer` için resmi belgelere bakın. + +## Özet – **ocr nasıl çalıştırılır** bir bakışta + +Taranmış bir formda **ocr nasıl çalıştırılır** konusundaki tüm adımları ele aldık: motoru başlatma, görüntüyü yükleme, tanıma işlemini yürütme ve sonuçları akıllıca işleme. Birkaç satır Java kodu ile **görüntüden metin çıkarma** dosyalarını, **formdan metin tanıma** belgelerini ve **ocr için görüntü okuma** çıktısını, insan incelemesi gerekip gerekmediğini belirleyecek güven puanlarıyla elde edebilirsiniz. + +Sonraki adımlar? JPEG’i çok‑sayfalı bir TIFF ile değiştirin, farklı güven eşiklerini deneyin ya da çıktıyı otomatik veri girişi için bir veritabanına entegre edin. İşlemeye ihtiyaç duyduğunuz belgeler kadar geniş bir olasılık yelpazeniz var. + +OCR, görüntü ön‑işleme ya da lisanslama hakkında daha fazla sorunuz mu var? Aşağıya yorum bırakın, kodlamanın tadını çıkarın! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/turkish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..d1ee26398 --- /dev/null +++ b/ocr/turkish/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-05-03 +description: Java'da PDF dosyalarından metin çıkarmak için OCR nasıl kullanılır. PDF'den + metin tanımayı öğrenin, PDF'yi metne dönüştürün ve OCR çok sayfalı PDF'yi verimli + bir şekilde işleyin. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: tr +og_description: Java’da PDF dosyalarından metin çıkarmak için OCR nasıl kullanılır. + Bu kılavuz, PDF’den metin tanıma, PDF’yi metne dönüştürme ve çok sayfalı PDF’lerde + OCR işlemini nasıl gerçekleştireceğinizi gösterir. +og_title: Java'da OCR Nasıl Kullanılır – Çok Sayfalı PDF'lerden Metin Çıkarma +tags: +- ocr +- java +- pdf +- aspose +title: Java'da OCR Nasıl Kullanılır – Çok Sayfalı PDF'lerden Metin Çıkarma +url: /tr/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java’da OCR Kullanımı – Çok Sayfalı PDF’lerden Metin Çıkarma + +**How to use OCR** bir Java projesinde? PDF dosyalarından PDF’nin iç metin katmanına güvenmeden metin çıkarmanız gerektiğinde, doğru yerdesiniz. Bu öğretici, **PDF’den metin tanıma**, PDF’yi metne dönüştürme ve hatta **OCR çok sayfalı PDF**'yi tek bir çağrı ile işleme gibi tam, çalıştırılabilir bir çözümü adım adım gösterir. + +Bir taranmış sözleşme aldığınızı hayal edin — PDF içinde 12 sayfalık bir TIFF. Dizineleme için aranabilir metne ihtiyacınız var, ancak dosyada gömülü karakter yok. Sorun değil; bunu tam olarak nasıl yapacağınızı adım adım göstereceğiz. + +> **What you’ll get:** Aspose.OCR kullanan, çalıştırılmaya hazır bir Java kod parçacığı, her satırın neden önemli olduğuna dair açıklamalar, yaygın tuzaklar için ipuçları ve anında doğrulayabileceğiniz örnek çıktı. + +--- + +## Gereksinimler + +* **Java 17** (veya herhangi bir yeni JDK) – kod eski sürümlerle de çalışır, ancak 17 en ideal sürümdür. +* **Aspose OCR for Java** kütüphanesi – JAR dosyasını Aspose sitesinden indirebilir veya Maven/Gradle üzerinden ekleyebilirsiniz. +* İşlemek istediğiniz bir **çok sayfalı PDF** (veya TIFF). Örneklerimizde `contract_multipage.pdf` dosyasını `YOUR_DIRECTORY` adlı klasöre koyacağız. +* Geçerli bir **Aspose OCR lisans dosyası** (`Aspose.OCR.Java.lic`). Lisans olmadan kütüphane değerlendirme modunda çalışır; bu hızlı bir test için uygundur ancak bir filigran ekler. + +Hepsi bu—ek OCR motorları, yerel ikili dosyalar yok, sadece tek bir JAR ve bir lisans. + +![OCR kullanımı örneği](https://example.com/ocr-demo.png "Java’da OCR Kullanımı – sürecin görsel özeti") + +*Görsel alt metin: Java’da OCR kullanımı – yükleme, tanıma ve metin çıktısı sürecinin görsel özeti.* + +--- + +## Adım 1: OCR Motorunu Kurun – **How to Use OCR** Doğru Şekilde + +İlk yapmanız gereken, OCR motorunun bir örneğini oluşturmak ve lisansınızı uygulamaktır. Lisans olmadan motor yine çalışır, ancak çıktıda bir deneme filigranı görürsünüz. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Neden Önemli:** +`OcrEngine` görüntü analizini, dil algılamasını ve metin çıkarımını yöneten temel nesnedir. Lisansı erken ayarlamak, motorun daha sonra deneme moduna geçmesini önler ve doğruluğu etkileyebilir. + +--- + +## Adım 2: Belgeyi Yükleyin – **Extract Text from PDF** Verimli Şekilde + +Aspose OCR, PDF ve TIFF konteynerlerini doğrudan okuyabilir. Burada taranmış görüntüler içeren çok sayfalı bir PDF yüklüyoruz. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Neden Önemli:** +`PdfDocument.fromFile` konteyneri ayrıştırır ve her sayfaya bir görüntü olarak erişim sağlar. Bu soyutlama, OCR motorunun orijinal format ne olursa olsun her sayfayı aynı şekilde işlemesine olanak tanır. + +**Tip:** Kaynak dosyanız bir TIFF ise aynı çağrı çalışır—Aspose formatı otomatik algılar. Ek kod gerekmez. + +--- + +## Adım 3: Tüm Sayfaları Tek Seferde Tanıyın – **Recognize Text from PDF** Sorunsuz Şekilde + +Sayfaları kendiniz döngüye almanız yerine, motoru tüm belgeyi tek bir çağrıyla işleyebilirsiniz. Bu, **OCR çok sayfalı PDF** ile uğraşırken **PDF’yi metne dönüştürme** için en verimli yoldur. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Neden Önemli:** +`recognizeDocument` metodunu bir kez çağırmak, motorun tekrar tekrar başlatılmasından kaynaklanan yükü azaltır. Ayrıca sayfalar arasında tutarlı dil ayarlarını garantiler; bu, sık sık farklı fontlar kullanan yasal belgeler için kritiktir. + +--- + +## Adım 4: Tanınan Metni Çıktılayın – **Convert PDF to Text** Dizineleme İçin + +Şimdi her sayfa işlendiğine göre, sonuçları döngüyle gezip çıkarılan dizeleri yazdırıyoruz. Ayrıca bunları bir dosyaya, veritabanına yazabilir veya bir arama indeksine besleyebilirsiniz. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Beklenen çıktı (kısaltılmış):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +PDF 12 sayfa içeriyorsa, on iki `--- Page X ---` bölümü ve her birinin ardından OCR‑çıkarılmış metin göreceksiniz. + +--- + +## **OCR Multi Page PDF** için İleri Düzey İpuçları + +### 1. Dil Ayarlarını Düzenleyin + +Varsayılan olarak Aspose dili otomatik algılar, ancak belirterek işlemi hızlandırabilirsiniz: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Görüntü Ön‑İşlemeyi Kontrol Edin + +Taranmış sözleşmeler genellikle gürültülüdür. Eğikliği düzeltme ve ikilileştirme özelliklerini etkinleştirebilirsiniz: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Büyük Dosyaları Zarifçe İşleyin + +100 MB’den büyük PDF’ler işliyorsanız, belgeyi bir kerede yüklemek yerine sayfaları akış (stream) olarak okuyun: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Bu desen bellek kullanımını azaltır ve toplu işler için kullanışlıdır. + +### 4. Yapılandırılmış Formatlara Dışa Aktarın + +Düz metnin ötesinde, JSON veya XML gibi formatlara dışa aktararak sonraki işlemler için kullanabilirsiniz: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Yaygın Tuzaklar ve Nasıl Kaçınılır + +| Pitfall | Why It Happens | Fix | +|---------|----------------|-----| +| **Boş çıktı** | Lisans uygulanmadı veya dosya yolu hatalı. | `setLicense` yolunu doğrulayın ve dosyanın mevcut olduğunu onaylayın. | +| **Bozuk karakterler** | Yanlış dil ayarı veya düşük çözünürlüklü kaynak. | Doğru `Language` ayarını yapın ve kaynak görüntülerin ≥300 dpi olduğundan emin olun. | +| **Bellek dışı hatalar** | Büyük bir PDF’yi bir kerede yüklemek. | Yukarıda gösterilen akış (streaming) yaklaşımını kullanın. | +| **Kısmi sayfa tanıma** | PDF, karışık raster/vektör katmanları içeriyor. | OCR’dan önce PDF’yi düzleştirin: `pdfDoc.flatten();` | + +--- + +## Özet – Neler Kapsandı + +* **How to use OCR** Aspose ile Java’da. +* **Extract text from PDF** (veya TIFF) tek bir çağrıyla. +* **Recognize text from PDF** tüm sayfalarda manuel döngü olmadan. +* **Convert PDF to Text** ve temiz bir çıktı. +* **OCR multi page PDF** işlemek için ipuçları, dil ayarları ve bellek‑dostu akış dahil. + +Artık herhangi bir Java projesine ekleyebileceğiniz tam, üretim‑hazır bir kod parçacığınız var. Görüntü‑işleme seçeneklerini istediğiniz gibi ayarlayabilir, çıktı hedefini değiştirebilir veya sonucu bir arama indeksine entegre edebilirsiniz. + +--- + +## Sonraki Adımlar + +* **Aspose OCR’un ileri özelliklerini keşfedin** – el yazısı tanıma veya PDF/A uyumluluğu gibi. +* **OCR’u PDF manipülasyonu ile birleştirin** (ör. PDF’ye aranabilir bir metin katmanı ekleyerek arama yapılabilir PDF’ler oluşturun). +* **Toplu işleme otomasyonu** – bir klasördeki PDF’leri okuyup her birinin sonucunu karşılık gelen `.txt` dosyasına yazın. + +Herhangi bir sorunla karşılaşırsanız, Aspose forumları yardım almak için harika bir yerdir ve API referansı burada kullanılan her metodun ayrıntılı açıklamasını sunar. + +Kodlamanın tadını çıkarın ve inatçı taramaları aranabilir metne dönüştürmenin keyfini yaşayın! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/turkish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..d325ce21d --- /dev/null +++ b/ocr/turkish/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR lisansını yüklemek için Java’da ikili dosya okuyun. FileInputStream + kullanımını, ikili veri işleme ve pratik ipuçlarını adım adım bu rehberde öğrenin. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: tr +og_description: Aspose OCR lisansını yüklemek için Java’da ikili dosya okuyun. Java’da + FileInputStream ve ikili veri işleme konularında uzmanlaşmak için bu kapsamlı rehberi + izleyin. +og_title: Java'da İkili Dosya Okuma – Aspose OCR için Lisans Baytlarını Yükle +tags: +- Java +- File I/O +- OCR +title: Java’da İkili Dosya Okuma – Aspose OCR için Lisans Baytlarını Yükle +url: /tr/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java’da Binary Dosya Okuma – Aspose OCR için Lisans Baytlarını Yükleme + +Üçüncü‑taraf bir kütüphane lisansıyle uğraşırken **binary dosya okuma Java** yapmanız gerektiğinde hiç zorlandınız mı? Yalnız değilsiniz. Çoğu Java geliştiricisi, bir `.lic` dosyasını OCR motoruna beslemeye çalıştığında bu sorunu yaşar ve geleneksel metin‑dosyası yöntemleri işe yaramaz. + +Bu öğreticide, ikili bir lisans dosyasını nasıl açacağınızı, baytlarını belleğe nasıl çekeceğinizi ve bu baytları Aspose OCR for Java’ya nasıl aktaracağınızı gösteren tam, çalıştırılabilir bir örnek üzerinden adım adım ilerleyeceğiz. Yol boyunca `FileInputStream`'in neden doğru araç olduğunu, olası `IOException`'ların nasıl ele alınacağını ve resmi belgelerde bulunmayan birkaç ipucunu göreceksiniz. + +Kılavuzun sonunda **binary dosya okuma Java** tarzında lisans dosyasını okuyabilecek, bir `License` nesnesi oluşturabilecek ve bunu bir `OcrEngine`'e sorunsuz bir şekilde atayabileceksiniz. + +## Bu Kılavuzda Neler Kapsanıyor + +- Önkoşullar: Java 17+, Maven (veya Gradle) ve Aspose OCR for Java kütüphanesi. +- `FileInputStream` kullanarak ikili bir `.lic` dosyasını okuyan adım‑adım kod. +- Her satırın açıklaması, *neden*‑*nasıl* anlayışınızı pekiştirmek için. +- Kenar‑durum yönetimi (dosya eksik, bozuk baytlar) ve pratik hata ayıklama ipuçları. +- IDE'nize kopyalayıp hemen çalıştırabileceğiniz, bağımsız bir snippet. + +Lisans dosyalarını okumak için özel bir API'ye ihtiyacınız olup olmadığını hiç merak ettiyseniz, cevap kesinlikle **hayır**—sadece eski usul ikili I/O. Hadi başlayalım. + +## Adım 1: FileInputStream ile Java’da Binary Dosya Okuma + +İlk olarak, disk üzerindeki lisans dosyasından ham baytları çekmenin güvenilir bir yoluna ihtiyacımız var. Java’da `FileInputStream` tam da bunun için kullanılan işçi at. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Why this works:** `Files.readAllBytes` dahili olarak bir `FileInputStream` oluşturur, tüm akışı okur ve sizin için kapatır. Güvenli, özlü ve “akışı kapatmayı unutma” tuzağından kaçınır. Klasik deseni tercih ediyorsanız, doğrudan `FileInputStream` kullanan bir try‑with‑resources bloğu ile değiştirebilirsiniz. + +### Pro ipucu + +Lisans dosyası çok büyükse (olası ama nadir), tüm dosyayı bir kerede yüklemek yerine parçalar halinde akıtmayı düşünün. Çoğu OCR lisans dosyası—genellikle birkaç kilobayttan az—için tek seferlik yaklaşım tamamen uygundur. + +## Adım 2: Aspose OCR için Lisans Nesnesi Oluşturma + +Şimdi ham baytlarımız olduğuna göre, bunları Aspose‑uyumlu bir `License` örneğine dönüştürmemiz gerekiyor. Kütüphane, bir bayt dizisini kabul eden bir `License` sınıfı sağlar. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Why this matters:** Baytları doğrudan geçirerek, yol‑ile ilgili sorunları (çalışma dizinine göre göreli yol karışıklığı gibi) önlersiniz ve dağıtımınızı taşınabilir tutarsınız—`.lic` dosyasını uygulamanızın çalıştığı yerde paketleyin yeter. + +## Adım 3: Lisansı OCR Motoruna Atama + +`License` nesnesi hazır olduğunda, son adım onu bir `OcrEngine`'e eklemektir. Bu adım, OCR bileşeninin değerlendirme sandbox'ı yerine lisanslı modda çalışmasını sağlar. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Note:** Bazı eski Aspose sürümleri bir setter yerine public bir `license` alanı sunar. Derleme hatası alırsanız kodu buna göre ayarlayın (`ocrEngine.license = license;`). + +## Adım 4: Lisansın Başarıyla Yüklendiğini Doğrulama (İsteğe Bağlı ama Faydalı) + +Hızlı bir tutarlılık kontrolü, ileride saatler süren hata ayıklamayı önler. `License` sınıfı başarılı olduğunda istisna fırlatmaz, ancak zararsız bir OCR işlemi deneyerek doğrulayabilirsiniz. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +“License applied successfully” mesajını görürseniz her şey yolunda demektir. Görmezseniz dosya yolunu, bayt bütünlüğünü ve doğru Aspose sürümünü kullandığınızı tekrar kontrol edin. + +## Tam Çalışan Örnek + +Tüm parçaları bir araya getirdiğinizde kompakt, kopyala‑yapıştır‑hazır bir program elde edersiniz. Bu kodu bir `Main.java` dosyasına atıp çalıştırabilirsiniz. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Expected output (assuming the dummy image exists):** + +``` +License applied successfully – OCR engine is ready. +``` + +Lisans dosyası eksik ya da bozuksa, aşağıdaki gibi net bir hata mesajı alırsınız: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Yaygın Tuzaklar ve Nasıl Kaçınılır + +- **Path confusion:** Göreli yollar, JVM’in çalışma dizinine göre çözülür, kaynak dosya konumuna göre değil. Mutlak bir yol kullanın veya `.lic` dosyasını JAR ile aynı klasöre koyup `getResourceAsStream` ile referans verin. +- **Wrong byte order:** Bir `Reader` (karakter‑odaklı) ile ikili dosya okumaya çalışmayın. Veri bozulur. `FileInputStream`‑tabanlı API'leri kullanın. +- **Version mismatch:** Bazı eski Aspose sürümleri `setLicenseBytes` yerine `license.setLicense("path/to/file")` bekler. `NoSuchMethodError` alırsanız sürüm notlarını kontrol edin. +- **Forgot to close streams:** Klasik `FileInputStream` yaklaşımına geri dönüyorsanız, kapanmayı garanti altına almak için try‑with‑resources bloğu kullanın. + +## Sonuç + +Artık **binary dosya okuma Java** kullanarak bir Aspose OCR lisansını nasıl yükleyeceğinizi, bir `License` nesnesi oluşturup bunu bir `OcrEngine`'e bağlayacağınızı biliyorsunuz. Süreç, `FileInputStream` (veya daha modern `Files.readAllBytes`) ile doğru ikili veri işleme ve birkaç basit API çağrısına dayanıyor. + +Bundan sonra gerçek OCR görevlerine—PDF, görüntü veya taranmış belgelerden metin çıkarma—geçebilir, lisans katmanının sizi zorlamayacağından emin olabilirsiniz. İlgili konular hakkında merakınız varsa, **Java FileInputStream**, **binary data handling Java** ve **read license file Java** üzerine diğer kütüphaneler için öğreticilere göz atın. + +Kodlamanın tadını çıkarın, OCR sonuçlarınız kristal gibi olsun! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/turkish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/turkish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..3029cfc9e --- /dev/null +++ b/ocr/turkish/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-05-03 +description: Aspose OCR for Java kullanarak görüntüden metin tanımayı ve görüntüyü + metne dönüştürmeyi öğrenin. OCR doğruluğunu artırmak ve PNG dosyalarında OCR çalıştırmak + için ipuçları içerir. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: tr +og_description: Java için Aspose OCR kullanarak görüntüden metin tanıma konusunda + adım adım kılavuz. Görüntüyü metne dönüştürmeyi, OCR doğruluğunu artırmayı ve PNG + üzerinde OCR çalıştırmayı öğrenin. +og_title: Aspose OCR ile görüntüden metin tanıma – Java Öğreticisi +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Aspose OCR ile Görüntüden Metin Tanıma – Tam Java Rehberi +url: /tr/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Aspose OCR ile görüntüden metin tanıma – Tam Java Rehberi + +Hiç **görüntüden metin tanıma** yapmak istediniz ama hangi kütüphanenin güvenilir sonuçlar vereceğinden emin olamadınız mı? Yalnız değilsiniz—birçok geliştirici, taranmış PDF'ler, fişler veya laboratuvar raporlarından veri çıkarmaya ilk kez çalıştıklarında bu duvara çarpar. İyi haber şu ki, Aspose OCR for Java tüm süreci çocuk oyuncağı haline getiriyor ve sadece birkaç satırla **görüntüyü metne dönüştürebilirsiniz**. + +Bu öğreticide, OCR için bir görüntüyü yüklemek, **OCR doğruluğunu artırmak** için ayarları ince ayar yapmak ve sonunda **PNG** dosyalarında **OCR çalıştırmak** ve çıkarılan metni yazdırmak gibi bilmeniz gereken her şeyi adım adım göstereceğiz. Gereksiz ayrıntı yok, sadece bugün projenize ekleyebileceğiniz uygulanabilir, çalıştırılabilir bir örnek. + +--- + +## Gereksinimler + +İşe başlamadan önce makinenizde aşağıdakilerin olduğundan emin olun: + +| Önkoşul | Sebep | +|--------------|--------| +| Java 17 (veya daha yeni) | Aspose OCR, Java 8+ hedefler, ancak en yeni JDK daha iyi performans sağlar. | +| Aspose OCR for Java kütüphanesi (`aspose-ocr.jar`) | Ağır işi yapan çekirdek motor. | +| Geçerli bir Aspose OCR lisans dosyası (`Aspose.OCR.Java.lic`) | Tam özellik setini etkinleştirir; aksi takdirde deneme filigranı alırsınız. | +| Açık metin içeren bir görüntü dosyası (PNG, JPEG, TIFF, vb.) | Somut örnek olarak `lab_report.png` kullanacağız. | +| Özel bir sözlük (isteğe bağlı) | “hemoglobin” gibi alan‑spesifik terimler için tanıma doğruluğunu artırır. | + +Bu maddeler size yabancı geliyorsa panik yapmayın—bir JAR dosyası kurmak ve basit bir metin dosyası oluşturmak, hemen ardından ele alacağımız çok basit görevlerdir. + +--- + +## Adım 1 – Projeyi Oluşturun ve Bağımlılıkları İçe Aktarın + +İlk olarak yeni bir Maven (veya Gradle) projesi oluşturun ve Aspose OCR bağımlılığını ekleyin. Maven kullanıcıları aşağıdaki snippet'i `pom.xml` dosyalarına yapıştırabilir: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Gradle tercih ediyorsanız eşdeğeri şudur: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **İpucu:** Sürüm numarasına dikkat edin; yeni sürümler genellikle **OCR doğruluğunu artırmak** için doğrudan etkili hata düzeltmeleri içerir. + +Şimdi `OcrDemo.java` adlı bir Java sınıfı oluşturun. Dosyanın en üst kısmına gerekli sınıfları içe aktarın: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +--- + +## Adım 2 – OCR Motorunu Başlatın ve Lisansınızı Uygulayın + +Motor lisanslı olmadıkça **PNG** dosyalarında **OCR çalıştıramazsınız**. İşte bunu nasıl yapacağınız: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Neden ekstra bir `License` nesnesi? Aspose, lisans yönetimini motorun kendisinden ayırarak çok‑kiracılı SaaS senaryolarında lisansları anlık olarak değiştirebilmenizi sağlar. + +--- + +## Adım 3 – Özel Sözlük Yükleyin (İsteğe Bağlı ama Güçlü) + +Tıbbi terminoloji, kimyasal formüller veya marka adlarıyla çalışıyorsanız, özel bir sözlük **OCR doğruluğunu artırabilir**. Sözlük, satır başına bir kelime içeren düz‑metin bir dosyadır: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Neden işe yarar:** OCR motoru, sözlüğü dil modelini sizin önemsediğiniz kelimelere kaydırmak için kullanır; böylece “hemo‑globin” → “hemoglobin” gibi hatalı tanıma olasılığı azalır. + +Sözlüğünüz yoksa bu satırı atlayabilirsiniz—Aspose, yerleşik dil paketleriyle de iyi çalışır. + +--- + +## Adım 4 – İşlemek İstediğiniz Görüntüyü Yükleyin + +Şimdi **görüntüyü OCR için yükleyeceğiz**. Aspose birçok formatı destekler, ancak PNG kayıpsız olduğu için taranmış belgeler için güvenli bir tercihtir. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Köşe durumu:** Görüntünüz çok büyükse (5 MB üzeri), işleme hızını artırmak için önce ölçeklendirmeyi düşünün. `Image` sınıfı, tanıma öncesi çağırabileceğiniz bir `resize` metodu sunar. + +--- + +## Adım 5 – OCR İşlemini Çalıştırın ve Metni Alın + +Her şey hazır olduğunda OCR motorunu çalıştırın. `recognize` metodu, çıkarılan dizeyi, güven skorlarını ve hatta düzen bilgisi gerekiyorsa sınırlayıcı kutuları içeren bir `OcrResult` nesnesi döndürür. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Programı çalıştırdığınızda aşağıdakine benzer bir çıktı görmelisiniz: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +İşte bu kadar—Aspose OCR kullanarak **görüntüden metin tanıma** ve **görüntüyü metne dönüştürme** işlemini başarıyla tamamladınız. + +--- + +## Adım 6 – Yaygın Tuzaklar ve Çözüm Önerileri + +Sağlam bir kütüphane olsa bile birkaç küçük sorun sizi zorlayabilir: + +| Belirti | Muhtemel Neden | Çözüm | +|---------|----------------|------| +| Boş çıktı | Lisans uygulanmamış veya süresi dolmuş | `Aspose.OCR.Java.lic` yolunu doğrulayın ve sürümle eşleştiğinden emin olun. | +| Bozuk karakterler | Görüntü düşük çözünürlüklü veya aşırı sıkıştırılmış | Daha yüksek çözünürlüklü bir kaynak kullanın veya görüntüyü ön‑işleyin (binaryzasyon, eğri düzeltme). | +| Alan‑spesifik kelimeler eksik | Özel sözlük yok | Eksik terimleri satır başına bir kelime olacak şekilde sözlük dosyasına ekleyin. | +| Büyük toplularda yavaş işleme | Çoklu iş parçacığı kullanılmıyor | `OcrEngine` örneklerinden bir havuz oluşturun (thread‑safe’dir) ve görüntüleri paralel işleyin. | + +--- + +## Adım 7 – Örneği Genişletmek: Sonuçları Bir Dosyaya Kaydetmek + +Çıkarılan metni daha sonra analiz için saklamanız gerekiyorsa, sadece bir dosyaya yazın: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Artık **görüntüyü OCR için yükleyebilen**, içeriği çıkaran ve istediğiniz yere kaydeden yeniden kullanılabilir bir pipeline’ınız var. + +--- + +## Bonus: Bir Klasördeki Birden Çok PNG Dosyasında OCR Çalıştırmak + +Gerçek dünyada projeler genellikle onlarca taramayı işlemek zorunda kalır. Aşağıdaki döngü, bir dizindeki tüm `.png` dosyalarını yakalar: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Aynı `ocrEngine` örneğini yeniden kullanmayı unutmayın—her dosya için yeni bir örnek oluşturmak gereksiz yük getirir. + +--- + +## Sonuç + +Artık Aspose OCR for Java kullanarak **görüntüden metin tanıma** için tam özellikli, uçtan uca bir çözümünüz var. Görüntüyü yüklemek, isteğe bağlı olarak özel bir sözlükle **OCR doğruluğunu artırmak**, **PNG** dosyalarında **OCR çalıştırmak** ve çıktıyı kaydetmek gibi adımları içeren kod, herhangi bir Java projesine kolayca eklenebilir. + +Sırada ne var? Çıkarılan metni bir doğal dil işleme (NLP) boru hattına beslemeyi deneyin veya el yazısı notlarda OCR denemeleri yapın (Aspose ayrıca el yazısı modunu da sunar). Olanaklar sınırsız ve siz sadece ilk adımı attınız. + +İyi kodlamalar! Herhangi bir sorunla karşılaşırsanız, aşağıya yorum bırakın—birlikte sorunları çözebiliriz. + +![Screenshot of OCR result in console – recognize text from image](/images/ocr_console_result.png "recognize text from image 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/vietnamese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md b/ocr/vietnamese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md new file mode 100644 index 000000000..5c1defe14 --- /dev/null +++ b/ocr/vietnamese/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-05-03 +description: Trích xuất bảng từ hình ảnh bằng Aspose OCR Java. Học cách tải hình ảnh + cho OCR, trích xuất bảng từ PNG, chuyển đổi văn bản bảng trong hình ảnh và nhận + dạng nhanh hình ảnh biên lai. +draft: false +keywords: +- extract tables from image +- extract table from png +- load image for ocr +- convert image table text +- recognize receipt image +language: vi +og_description: Trích xuất bảng từ hình ảnh bằng Aspose OCR Java. Hướng dẫn này chỉ + cách tải hình ảnh để OCR, trích xuất bảng từ PNG, chuyển đổi văn bản bảng trong + hình ảnh và nhận dạng hình ảnh biên lai. +og_title: Trích xuất bảng từ hình ảnh – Hướng dẫn Aspose OCR Java +tags: +- Aspose OCR +- Java +- Image Processing +title: Trích xuất bảng từ hình ảnh – Hướng dẫn đầy đủ Aspose OCR Java +url: /vi/python-java/general/extract-tables-from-image-complete-aspose-ocr-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Trích xuất bảng từ hình ảnh – Hướng dẫn đầy đủ Aspose OCR Java + +Bạn đã bao giờ cần **trích xuất bảng từ hình ảnh** nhưng gặp khó khăn? Có thể bạn có một biên lai đã quét hoặc một hoá đơn chụp ảnh và dữ liệu dạng bảng ẩn trong file PNG. Trong hướng dẫn này, bạn sẽ thấy cách *tải hình ảnh để OCR*, biến bức ảnh thành các hàng có cấu trúc, và **chuyển đổi văn bản bảng trong hình ảnh** thành dạng có thể làm việc trong Java. + +Chúng ta sẽ đi qua từng bước, từ cấp phép cho engine Aspose OCR đến việc in mỗi ô của các bảng được phát hiện. Khi kết thúc, bạn sẽ có thể **nhận dạng hình ảnh biên lai** và lấy ra các bảng mà không gặp khó khăn. + +## Những gì bạn sẽ học + +- Cách khởi tạo engine Aspose OCR và áp dụng giấy phép. +- Tại sao việc bật phát hiện bảng là chìa khóa để **trích xuất bảng từ hình ảnh**. +- Mã chính xác cần để **tải hình ảnh để OCR** và chạy nhận dạng trên file PNG. +- Các cách xử lý nhiều bảng, ảnh quét độ phân giải thấp và những bẫy thường gặp. +- Cách **chuyển đổi văn bản bảng trong hình ảnh** thành định dạng có thể in (hoặc lưu vào cơ sở dữ liệu). + +Không cần tài liệu bên ngoài—mọi thứ bạn cần đều có ở đây. + +## Điều kiện tiên quyết + +- Java 17 trở lên (mã sử dụng hệ thống module hiện đại). +- Một file giấy phép Aspose OCR for Java (`Aspose.OCR.Java.lic`). Nếu bạn chỉ thử nghiệm, một khóa đánh giá tạm thời cũng hoạt động. +- Một ảnh PNG chứa bảng rõ ràng (ví dụ: `receipt_with_table.png`). +- Maven hoặc Gradle để kéo phụ thuộc Aspose OCR: + +```xml + + + com.aspose + aspose-ocr + 23.10 + +``` + +> **Mẹo chuyên nghiệp:** Đặt file giấy phép cạnh thư mục `src/main/resources` của bạn để đường dẫn luôn ổn định trên mọi môi trường. + +--- + +## Bước 1 – Khởi tạo engine OCR để **trích xuất bảng từ hình ảnh** + +Trước khi engine có thể làm bất cứ việc gì, nó cần biết bạn là người dùng hợp pháp. + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Step 1: Create the OCR engine instance + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your Aspose OCR license – this removes evaluation watermarks + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); +``` + +*Lý do quan trọng:* Nếu không có giấy phép hợp lệ, engine OCR sẽ chạy ở chế độ dùng thử, có thể cắt ngắn kết quả hoặc thêm watermark không mong muốn—điều này làm cho việc trích xuất bảng không đáng tin cậy. + +--- + +## Bước 2 – Bật phát hiện bảng (**trích xuất bảng từ png**) + +Phát hiện bảng không được bật mặc định; bạn phải bật nó lên. + +```java + // Step 2: Turn on table detection so the engine looks for tabular structures + ocrEngine.getConfig().setEnableTableDetection(true); +``` + +Bật cờ này sẽ khiến Aspose OCR xem các nhóm văn bản căn chỉnh thành hàng và cột, chính xác là những gì bạn cần khi muốn **trích xuất bảng từ hình ảnh** dạng PNG. + +--- + +## Bước 3 – **Tải hình ảnh để OCR** và **nhận dạng hình ảnh biên lai** + +Bây giờ chúng ta thực sự đưa ảnh vào engine. + +```java + // Step 3: Load the PNG that contains the table + // You can also use Image.fromStream(...) for in‑memory data + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Run the recognition process – this returns an OcrResult object + OcrResult ocrResult = ocrEngine.recognize(inputImage); +``` + +Nếu bạn đang xử lý trường hợp **nhận dạng hình ảnh biên lai**, có thể muốn tiền xử lý ảnh (cân chỉnh, tăng độ tương phản). Điều này nằm ngoài phạm vi của hướng dẫn nhanh này nhưng đáng khám phá cho các ảnh quét nhiễu. + +--- + +## Bước 4 – Xử lý kết quả OCR và **chuyển đổi văn bản bảng trong hình ảnh** + +Đối tượng `OcrResult` có thể chứa một hoặc nhiều bảng. Hãy lặp qua chúng và in mỗi ô. + +```java + // Step 4: Iterate over every detected table + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + // Join each cell's text with a tab for easy copy‑paste + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +**Công dụng:** + +- Kiểm tra xem có bảng nào được tìm thấy không; nếu không, gợi ý cải thiện chất lượng ảnh. +- Đối với mỗi bảng, in các hàng với các ô cách nhau bằng tab, một định dạng tiện lợi cho việc nhập CSV. +- Lệnh `Cell::getText` là trái tim của **chuyển đổi văn bản bảng trong hình ảnh** – nó lấy chuỗi OCR thô từ mỗi ô. + +### Kết quả mong đợi + +Giả sử `receipt_with_table.png` chứa một bảng đơn giản 3 × 2, bạn sẽ thấy gì đó như: + +``` +Table detected: +Item Quantity +Apple 2 +Banana 5 +``` + +Nếu ảnh có nhiều bảng, mỗi bảng sẽ được ngăn cách bằng một dòng trống. + +--- + +## Bước 5 – Xác minh các bảng đã trích xuất và xử lý các trường hợp đặc biệt + +### Những bẫy thường gặp + +| Vấn đề | Tại sao xảy ra | Giải pháp nhanh | +|--------|----------------|-----------------| +| **Không phát hiện bảng** | Ảnh quá mờ hoặc độ tương phản thấp | Áp dụng nhị phân hoá (`ImageProcessing.applyThreshold`) trước khi OCR | +| **Ô bị gộp** | Đường viền bảng mờ, OCR xem chúng như một khối | Tăng `TableDetectionSensitivity` trong `ocrEngine.getConfig()` | +| **Thứ tự cột sai** | Ảnh bị nghiêng gây mất căn chỉnh | Sử dụng `ImageProcessing.deskew` hoặc xoay ảnh 90° | + +### Những việc cần làm tiếp theo + +- **Xuất ra CSV** – thay `System.out.println(line);` bằng một `FileWriter` để lưu dữ liệu. +- **Đưa vào cơ sở dữ liệu** – ánh xạ mỗi hàng thành POJO và dùng JPA để lưu. +- **Kết hợp với các API khác** – đối với xử lý biên lai, bạn cũng có thể trích xuất tổng tiền bằng biểu thức chính quy trên văn bản OCR. + +--- + +## Ví dụ hoàn chỉnh (Sẵn sàng sao chép) + +```java +import com.aspose.ocr.*; + +public class TableExtractor { + public static void main(String[] args) throws Exception { + + // Initialize OCR engine and apply license + OcrEngine ocrEngine = new OcrEngine(); + License license = new License(); + license.setLicense("Aspose.OCR.Java.lic"); + ocrEngine.setLicense(license); + + // Enable table detection – crucial for extracting tables from image + ocrEngine.getConfig().setEnableTableDetection(true); + + // Load the PNG image (replace with your actual path) + Image inputImage = Image.fromFile("YOUR_DIRECTORY/receipt_with_table.png"); + + // Recognize the image – this step performs OCR on the whole picture + OcrResult ocrResult = ocrEngine.recognize(inputImage); + + // Verify we have tables; otherwise suggest a quality fix + if (ocrResult.getTables().isEmpty()) { + System.out.println("No tables were detected. Try improving image quality."); + return; + } + + // Print each table row by row, converting image table text into tab‑separated values + for (Table table : ocrResult.getTables()) { + System.out.println("Table detected:"); + for (TableRow row : table.getRows()) { + String line = row.getCells() + .stream() + .map(Cell::getText) + .reduce((a, b) -> a + "\t" + b) + .orElse(""); + System.out.println(line); + } + System.out.println(); // Blank line between tables + } + } +} +``` + +Chạy chương trình này, chỉ định một PNG chứa bảng rõ ràng, và xem console hiện ra các hàng được định dạng gọn gàng. + +--- + +## Kết luận + +Bạn đã có một giải pháp toàn diện, đầu‑cuối, để **trích xuất bảng từ hình ảnh** bằng Aspose OCR for Java. Từ cấp phép, **tải hình ảnh để OCR**, bật **trích xuất bảng từ png**, và cuối cùng **chuyển đổi văn bản bảng trong hình ảnh**, mọi bước đều được giải thích kèm mẹo thực tiễn. + +Tiếp theo, hãy thử chuyển đầu ra sang file CSV, đẩy các hàng vào cơ sở dữ liệu quan hệ, hoặc kết hợp bước OCR với quy trình trích xuất tổng tiền từ biên lai. Mẫu này cũng áp dụng cho hoá đơn, bảng giá và bất kỳ tài liệu quét nào ẩn dữ liệu trong lưới. + +Có câu hỏi về xử lý biên lai độ phân giải thấp hoặc mở rộng quy mô batch? Hãy để lại bình luận bên dưới, chúc bạn lập trình vui vẻ! + +![Ví dụ trích xuất bảng từ hình ảnh](https://example.com/assets/extract-tables-from-image.png "Trích xuất bảng từ hình ảnh – mẫu đầu ra") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md b/ocr/vietnamese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md new file mode 100644 index 000000000..06837e3c9 --- /dev/null +++ b/ocr/vietnamese/python-java/general/extract-text-from-image-python-complete-aspose-ocr-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-05-03 +description: Trích xuất văn bản từ hình ảnh bằng Python sử dụng Aspose OCR. Học hướng + dẫn OCR Python từng bước với hỗ trợ hỗn hợp Latin‑Cyrillic. +draft: false +keywords: +- extract text from image python +- Aspose OCR Python +- image to text conversion +- mixed language OCR +- Python OCR tutorial +language: vi +og_description: Trích xuất văn bản từ hình ảnh bằng Python nhanh chóng. Hướng dẫn + này cho thấy cách sử dụng Aspose OCR trong Python cho các hình ảnh hỗn hợp Latin‑Cyrillic. +og_title: Trích xuất văn bản từ hình ảnh bằng Python – Hướng dẫn đầy đủ Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Trích xuất văn bản từ hình ảnh bằng Python – Hướng dẫn đầy đủ Aspose OCR +url: /vi/python-java/general/extract-text-from-image-python-complete-aspose-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 Python – Hướng dẫn Aspose OCR đầy đủ + +Bạn đã bao giờ cần **extract text from image python** nhưng không chắc thư viện nào có thể xử lý hỗn hợp ký tự Latin và Cyrillic? Bạn không phải là người duy nhất—các nhà phát triển liên tục gặp khó khăn này khi OCR các ảnh chụp màn hình đa ngôn ngữ. + +Tin tốt là Aspose OCR cho Python làm cho toàn bộ quá trình gần như không đau đầu. Trong hướng dẫn này, chúng ta sẽ đi qua việc cài đặt gói, áp dụng giấy phép, tải một hình ảnh hỗn hợp ngôn ngữ, và cuối cùng lấy văn bản đã nhận dạng ra chỉ trong vài dòng code. Khi kết thúc, bạn sẽ có một script sẵn sàng chạy mà bạn có thể đưa vào bất kỳ dự án nào. + +## Những gì bạn sẽ học + +- Cách thiết lập **Aspose OCR Python** trong môi trường ảo. +- Tại sao việc gợi ý ngôn ngữ (như Latin và Cyrillic) giúp tăng tốc phát hiện. +- Mã chính xác cần thiết để **extract text from image python** bằng một lời gọi hàm duy nhất. +- Những khó khăn thường gặp khi xử lý OCR đa ngôn ngữ và cách tránh chúng. + +### Yêu cầu trước + +- Python 3.8 hoặc mới hơn đã được cài đặt trên máy của bạn. +- Một file giấy phép Aspose OCR (`Aspose.OCR.Java.lic`). Bản dùng thử miễn phí hoạt động cho việc thử nghiệm, nhưng file có giấy phép sẽ loại bỏ watermark. +- Một hình ảnh PNG/JPEG chứa cả ký tự Latin và Cyrillic (chúng tôi sẽ gọi nó là `mixed_latin_cyrillic.png`). + +Nếu bạn đã đáp ứng các mục trên, bạn đã sẵn sàng—không cần framework hay phụ thuộc nặng nào. + +--- + +## Bước 1 – Trích xuất Văn bản từ Hình ảnh Python: Cài đặt Aspose OCR + +Đầu tiên: lấy thư viện từ PyPI và đảm bảo môi trường của bạn có thể tìm thấy file giấy phép. + +```bash +# Create a clean virtual environment (optional but recommended) +python -m venv venv +source venv/bin/activate # Windows: venv\Scripts\activate + +# Install the Aspose OCR package +pip install asposeocrcloud +``` + +> **Pro tip:** Nếu gặp lỗi quyền, thêm `--user` vào lệnh `pip install` hoặc chạy terminal với quyền quản trị. + +Bây giờ gói đã có trên hệ thống, chúng ta sẽ import nó và chỉ định engine tới giấy phép của chúng ta. + +```python +import asposeocrcloud as ocr # the library we just installed + +# Initialise the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with the actual location of your .lic file +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") +``` + +Tại sao chúng ta cần giấy phép ở giai đoạn này? Nếu không, engine sẽ chạy ở **evaluation mode**, giới hạn số trang và thêm watermark vào kết quả. Cung cấp giấy phép ngay từ đầu đảm bảo lời gọi `recognize` sau này trả về văn bản sạch. + +--- + +## Bước 2 – Tải Hình ảnh của Bạn với Nội dung Latin‑Cyrillic hỗn hợp + +Tiếp theo, chúng ta đưa hình ảnh vào bộ nhớ. Aspose OCR hoạt động với lớp `Image` riêng của nó, giúp trừu tượng hoá định dạng file gốc. + +```python +# Load the image that contains both Latin and Cyrillic characters +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") +``` + +Nếu bạn thắc mắc các định dạng khác có hoạt động không—có, JPEG, BMP, TIFF, và thậm chí PDF đều được hỗ trợ. Chỉ cần đổi phần mở rộng file và phương thức `from_file` sẽ xử lý phần còn lại. + +--- + +## Bước 3 – Gợi ý Ngôn ngữ để Phát hiện Nhanh hơn (Tùy chọn nhưng Hữu ích) + +Khi bạn biết các ngôn ngữ có trong hình ảnh, bạn có thể thông báo trước cho engine. Điều này không bắt buộc, nhưng nó **giảm đáng kể thời gian xử lý** và cải thiện độ chính xác cho OCR đa ngôn ngữ. + +```python +# Provide language hints: Latin and Cyrillic +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] +``` + +Danh sách gợi ý chấp nhận bất kỳ ngôn ngữ nào được Aspose OCR hỗ trợ (ví dụ, `"Arabic"`, `"Japanese"`). Nếu bỏ qua bước này, engine sẽ thử mọi ngôn ngữ tích hợp, có thể chậm hơn khi xử lý hàng loạt lớn. + +--- + +## Bước 4 – Chạy Engine OCR và Trích xuất Văn bản + +Bây giờ là thời khắc quyết định: thực sự nhận dạng các ký tự. Phương thức `recognize` trả về một đối tượng `OcrResult` chứa văn bản thuần, điểm tin cậy, và thậm chí các hộp bao nếu bạn cần sau này. + +```python +# Perform OCR on the loaded image +ocr_result = ocr_engine.recognize(input_image) + +# The recognised text is available via the .text attribute +extracted_text = ocr_result.text +``` + +> **Why this works:** Bên trong, Aspose OCR kết hợp bộ phát hiện văn bản dựa trên mạng nơ-ron với các bộ phân loại riêng cho từng ngôn ngữ. Bằng cách cung cấp một đối tượng `Image`, bạn tránh được nhu cầu tiền xử lý thủ công như nhị phân hoá. + +--- + +## Bước 5 – Xem Văn bản Đã Trích xuất + +Cuối cùng, hãy in kết quả ra console. Trong một ứng dụng thực tế, bạn có thể ghi nó vào file, đưa vào cơ sở dữ liệu, hoặc truyền vào API dịch thuật. + +```python +print("Recognised text:") +print(extracted_text) +``` + +Khi bạn chạy script, bạn sẽ thấy kết quả giống như: + +``` +Recognised text: +Hello мир! This is a test. +``` + +Kết quả này xác nhận chúng ta đã thành công **extract text from image python**, xử lý cả ký tự Latin và Cyrillic trong một lần chạy. + +--- + +## Ví dụ Hoạt động Đầy đủ + +Dưới đây là script hoàn chỉnh bạn có thể sao chép‑dán vào file có tên `extract_ocr.py`. Chỉ cần thay thế các đường dẫn placeholder bằng thư mục thực tế của bạn. + +```python +import asposeocrcloud as ocr # package installed via pip + +# ------------------------------------------------------------ +# Step 1 – Initialise engine and apply license +# ------------------------------------------------------------ +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License() +ocr_engine.license.set_license(r"YOUR_DIRECTORY/Aspose.OCR.Java.lic") # path to your license file + +# ------------------------------------------------------------ +# Step 2 – Load the image (mixed Latin‑Cyrillic) +# ------------------------------------------------------------ +input_image = ocr.Image.from_file(r"YOUR_DIRECTORY/mixed_latin_cyrillic.png") + +# ------------------------------------------------------------ +# Step 3 – (Optional) Hint the languages present +# ------------------------------------------------------------ +ocr_engine.config.language_hints = ["Latin", "Cyrillic"] + +# ------------------------------------------------------------ +# Step 4 – Run OCR +# ------------------------------------------------------------ +ocr_result = ocr_engine.recognize(input_image) + +# ------------------------------------------------------------ +# Step 5 – Display the recognised text +# ------------------------------------------------------------ +print("Recognised text:") +print(ocr_result.text) +``` + +Lưu file, kích hoạt môi trường ảo của bạn, và chạy: + +```bash +python extract_ocr.py +``` + +Bạn sẽ thấy văn bản đã nhận dạng được in ra, xác nhận script hoạt động từ đầu đến cuối. + +--- + +## Câu hỏi Thường gặp & Trường hợp Đặc biệt + +**What if the image is blurry?** +Aspose OCR bao gồm tính năng tự động chỉnh nghiêng và giảm nhiễu, nhưng đối với ảnh bị hỏng nặng, bạn có thể muốn tiền xử lý bằng OpenCV (ví dụ, áp dụng Gaussian blur và threshold). Lớp `Image` cũng có thể nhận một mảng NumPy, vì vậy bạn có thể nối các bộ lọc tùy chỉnh trước khi gọi `recognize`. + +**Can I process a whole folder of images?** +Chắc chắn. Đặt logic trong một vòng `for`, thay đổi `from_file` để đọc từng tên file, và lưu kết quả vào một dictionary. Hãy nhớ tuân thủ giới hạn tần suất API nếu bạn đang dùng phiên bản cloud. + +**Do I need a separate license for each language?** +Không, một giấy phép Aspose OCR duy nhất bao phủ tất cả các ngôn ngữ được hỗ trợ. Danh sách `language_hints` chỉ là một gợi ý về hiệu năng. + +**What about PDF input?** +Thay `Image.from_file` bằng `ocr.Image.from_file("document.pdf")`. Engine OCR sẽ tự động raster hoá mỗi trang và trả về văn bản nối liền. + +--- + +## Kết luận + +Chúng tôi vừa trình bày một cách ngắn gọn, sẵn sàng cho sản xuất để **extract text from image python** bằng Aspose OCR. Các bước—cài đặt, giấy phép, tải, gợi ý ngôn ngữ, nhận dạng và hiển thị—bao gồm mọi thứ bạn cần để có kết quả đáng tin cậy cho nội dung Latin‑Cyrillic hỗn hợp. + +Từ đây bạn có thể khám phá các chủ đề nâng cao như **image to text conversion** cho xử lý hàng loạt, tích hợp kết quả với **Python OCR tutorial** về xử lý ngôn ngữ tự nhiên, hoặc thử nghiệm các gợi ý ngôn ngữ khác cho tài liệu đa ngôn ngữ. Không gì là không thể, và mã đã sẵn sàng trong tay bạn. + +Có trường hợp sử dụng khác hoặc gặp vấn đề? Để lại bình luận, chia sẻ trải nghiệm, và chúng ta sẽ tiếp tục trao đổi. Chúc lập trình vui vẻ! + +![Extract text from image python example](/images/extract-text-from-image-python.png "Screenshot showing OCR output – extract text from image python") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md b/ocr/vietnamese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md new file mode 100644 index 000000000..d94e233b9 --- /dev/null +++ b/ocr/vietnamese/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-guide/_index.md @@ -0,0 +1,204 @@ +--- +category: general +date: 2026-05-03 +description: Trích xuất văn bản từ hình ảnh ngay lập tức bằng Aspose OCR. Học cách + xác định vùng quan tâm, tải hình ảnh để OCR và trích xuất văn bản từ hoá đơn chỉ + trong vài phút. +draft: false +keywords: +- extract text from image +- define region of interest +- load image for ocr +- extract text from invoice +- process image with ocr +language: vi +og_description: Trích xuất văn bản từ hình ảnh bằng Aspose OCR. Hướng dẫn này chỉ + cách xác định vùng quan tâm, tải hình ảnh để OCR và trích xuất văn bản từ hoá đơn + một cách hiệu quả. +og_title: Trích xuất văn bản từ hình ảnh bằng Aspose OCR – Hướng dẫn đầy đủ +tags: +- ocr +- python +- image-processing +title: Trích xuất văn bản từ hình ảnh bằng Aspose OCR – Hướng dẫn từng bước +url: /vi/python-java/general/extract-text-from-image-with-aspose-ocr-step-by-step-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 bằng Aspose OCR – Hướng dẫn từng bước + +Cần **trích xuất văn bản từ hình ảnh** nhanh chóng? Bạn không phải là người duy nhất—các nhà phát triển luôn phải đấu tranh với các bản scan nhiễu, biên lai và hoá đơn. Trong hướng dẫn này, chúng tôi sẽ trình bày một giải pháp hoàn chỉnh không chỉ cho thấy cách *trích xuất văn bản từ hình ảnh* mà còn minh họa cách **định nghĩa vùng quan tâm**, **tải hình ảnh cho OCR**, và lấy dòng chính xác bạn cần từ một hoá đơn. + +Chúng tôi sẽ bao quát 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ư trang bị xoay. Khi hoàn thành, bạn sẽ có một script có thể chạy được để trích xuất văn bản mong muốn trong một lần gọi—không cần cắt thủ công. + +## Những gì bạn sẽ học + +- Cách **tải hình ảnh cho OCR** bằng API Python của Aspose. +- Cách tốt nhất để **định nghĩa vùng quan tâm** (ROI) để bạn chỉ xử lý phần ảnh quan trọng. +- Cách **trích xuất văn bản từ hoá đơn** mà không cần lấy toàn bộ trang. +- Mẹo để **xử lý ảnh với OCR** hiệu quả và tránh các lỗi thường gặp. + +**Yêu cầu trước** – môi trường Python 3.9+ mới, tệp giấy phép Aspose OCR hợp lệ, và một hình ảnh (ví dụ: một file PNG hoá đơn). Không cần công cụ bên ngoài nào khác. + +--- + +## Bước 1 – Khởi tạo Engine OCR (Cài đặt chính) + +Trước khi bạn có thể **xử lý ảnh với OCR**, bạn cần một thể hiện engine chứa giấy phép của mình. Bước này quan trọng vì engine không có giấy phép sẽ chỉ trả về một tập kết quả hạn chế. + +```python +import aspose.ocr as ocr # Make sure you installed aspose-ocr via pip + +# Create the OCR engine +ocr_engine = ocr.OcrEngine() + +# Apply your license – replace the path with your actual .lic file location +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +*Why this matters*: *Tại sao điều này quan trọng*: Đối tượng `OcrEngine` là trái tim của thư viện; nó quản lý các mô hình ngôn ngữ, tiền xử lý ảnh và giấy phép. Thiết lập giấy phép ngay từ đầu đảm bảo bạn nhận được độ chính xác đầy đủ và không có watermark. + +--- + +## Bước 2 – Tải hình ảnh cho OCR + +Bây giờ engine đã sẵn sàng, chúng ta cần **tải hình ảnh cho OCR**. Aspose hỗ trợ nhiều định dạng (PNG, JPEG, TIFF), nhưng việc sử dụng `Image.from_file` đảm bảo ảnh được giải mã đúng. + +```python +# Load the target image – change the path to point at your invoice file +image_path = "YOUR_DIRECTORY/invoice.png" +image = ocr.Image.from_file(image_path) +``` + +> **Pro tip**: **Mẹo chuyên nghiệp**: Giữ các tệp ảnh của bạn dưới 5 MB để xử lý nhanh nhất. Các tệp lớn hơn có thể được giảm kích thước bằng `image.resize(width, height)` trước khi OCR. + +--- + +## Bước 3 – Định nghĩa vùng quan tâm (ROI) + +Hầu hết hoá đơn chứa rất nhiều văn bản không liên quan—khối địa chỉ, chân trang, v.v. Bằng cách **định nghĩa vùng quan tâm**, chúng ta nói với engine chỉ nhìn vào nơi chứa số tiền hoặc ngày tháng, giúp tăng tốc và độ chính xác. + +```python +# Define ROI: (x, y, width, height) in pixels +# Adjust these numbers based on the layout of your specific invoice +roi = ocr.Rectangle(150, 300, 400, 120) +``` + +*How it works*: *Cách hoạt động*: Lớp `Rectangle` cắt ảnh một cách ảo; engine OCR sẽ không nhìn thấy các pixel bên ngoài hình chữ nhật, vì vậy nhiễu bên ngoài ROI sẽ bị bỏ qua. + +--- + +## Bước 4 – Nhận dạng văn bản trong ROI + +Với engine, ảnh và ROI đã sẵn sàng, cuối cùng chúng ta **trích xuất văn bản từ hình ảnh**. Phương thức `recognize` trả về một đối tượng `OcrResult` chứa chuỗi đã phát hiện và điểm tin cậy. + +```python +# Perform OCR only within the defined ROI +ocr_result = ocr_engine.recognize(image, roi=roi) + +# Print the raw extracted text +print("Text inside ROI:") +print(ocr_result.text) +``` + +**Expected output** (example for a typical invoice total line): **Kết quả mong đợi** (ví dụ cho dòng tổng tiền điển hình của hoá đơn): + +``` +Text inside ROI: +Total Amount: $1,245.67 +``` + +Nếu ROI được đặt đúng vị trí, bạn sẽ chỉ thấy dòng bạn cần—không có gì khác. + +--- + +## Bước 5 – Ví dụ hoàn chỉnh (Sẵn sàng sao chép) + +Dưới đây là script hoàn chỉnh kết nối tất cả các bước trước. Lưu nó dưới tên `extract_invoice_roi.py` và chạy `python extract_invoice_roi.py`. + +```python +# extract_invoice_roi.py +import aspose.ocr as ocr + +def main(): + # 1️⃣ Initialize OCR engine and apply license + ocr_engine = ocr.OcrEngine() + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image you want to process + image = ocr.Image.from_file("YOUR_DIRECTORY/invoice.png") + + # 3️⃣ Define the region of interest (ROI) – rectangle where the text lives + roi = ocr.Rectangle(150, 300, 400, 120) # (x, y, width, height) + + # 4️⃣ Recognize text only inside the ROI + ocr_result = ocr_engine.recognize(image, roi=roi) + + # 5️⃣ Display the extracted text + print("Text inside ROI:") + print(ocr_result.text) + +if __name__ == "__main__": + main() +``` + +Chạy script và bạn sẽ thấy dòng mục tiêu được in ra console. Nếu bạn nhận được một chuỗi rỗng, hãy kiểm tra lại tọa độ ROI—đôi khi lệch một vài pixel sẽ loại bỏ hoàn toàn văn bản. + +--- + +## Bước 6 – Các biến thể phổ biến & Trường hợp đặc biệt + +### a) Bố cục hoá đơn khác nhau +Hoá đơn từ các nhà cung cấp khác nhau thường di chuyển hộp tổng tiền. Để **xử lý ảnh với OCR** trên nhiều bố cục, hãy cân nhắc: + +- **Multiple ROIs**: **Nhiều ROI**: Chạy engine tuần tự với một vài hình chữ nhật và chọn kết quả có độ tin cậy cao nhất. +- **Dynamic ROI detection**: **Phát hiện ROI động**: Sử dụng một thư viện xử lý ảnh nhẹ (ví dụ: OpenCV) để xác định nhãn “Total” trước, sau đó tính ROI tương đối với nó. + +### b) Ảnh bị xoay hoặc lệch +Nếu bản scan bị nghiêng, gọi `image.rotate(angle)` trước khi nhận dạng: + +```python +image = image.rotate(2.5) # Rotate 2.5 degrees clockwise +``` + +Aspose OCR cũng cung cấp tính năng tự động cân chỉnh, nhưng việc xoay thủ công cho phép bạn kiểm soát chặt chẽ hơn. + +### c) Ký tự không phải Latin +Mô hình ngôn ngữ mặc định là tiếng Anh. Để **trích xuất văn bản từ hoá đơn** viết bằng ngôn ngữ khác, hãy đặt ngôn ngữ trước khi nhận dạng: + +```python +ocr_engine.language = ocr.Language.French # Example for French invoices +``` + +### d) PDF lớn +Khi làm việc với PDF đa trang, hãy trích xuất mỗi trang thành ảnh trước (Aspose PDF → Image) và sau đó áp dụng cùng logic ROI cho mỗi trang. + +--- + +## Bước 7 – Mẹo hiệu năng & Mẹo chuyên nghiệp + +- **Cache the engine**: Tạo `OcrEngine` liên tục trong vòng lặp sẽ làm chậm. Khởi tạo một lần và tái sử dụng. +- **Batch processing**: Nếu bạn có hàng chục hoá đơn, bao bọc lời gọi OCR trong một `ThreadPoolExecutor` để song song hoá công việc I/O‑bound. +- **Confidence check**: `ocr_result.confidence` trả về một số thực từ 0 đến 1. Loại bỏ các kết quả dưới 0.85 và chuyển sang ROI lớn hơn hoặc kiểm tra thủ công. + +> **Watch out**: **Cảnh báo**: Đặt ROI quá nhỏ có thể cắt bỏ ký tự, dẫn đến kết quả rối. Luôn thử nghiệm với một vài hoá đơn mẫu trước khi mở rộng. + +--- + +## Kết luận + +Bây giờ bạn đã có một phương pháp vững chắc, sẵn sàng cho sản xuất để **trích xuất văn bản từ hình ảnh** bằng Aspose OCR, đầy đủ cách **định nghĩa vùng quan tâm**, **tải hình ảnh cho OCR**, và **trích xuất văn bản từ hoá đơn** một cách đáng tin cậy. Bằng cách giới hạn OCR trong một ROI chặt chẽ, bạn tăng cả tốc độ và độ chính xác—hoàn hảo cho việc xử lý hàng nghìn biên lai theo batch. + +Bạn đã sẵn sàng cho bước tiếp theo? Hãy thử tích hợp script này vào một API Flask để ứng dụng web của bạn có thể tải lên hoá đơn và ngay lập tức trả về tổng số tiền. Hoặc thử nghiệm với nhiều ROI để lấy ngày, số hoá đơn và tên nhà cung cấp trong một lần. Các khả năng là vô tận, và với những nền tảng đã được đề cập ở đây, bạn đã được trang bị tốt để đối mặt với bất kỳ thử thách OCR nào. + +Chúc lập trình vui vẻ, và hy vọng văn bản bạn trích xuất luôn sạch sẽ! + +![Sơ đồ quy trình cho việc trích xuất văn bản từ hình ảnh bằng Aspose OCR](workflow.png){: .center-image alt="Quy trình trích xuất văn bản từ hình ảnh bằng Aspose 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/vietnamese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md b/ocr/vietnamese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md new file mode 100644 index 000000000..633feef48 --- /dev/null +++ b/ocr/vietnamese/python-java/general/extract-text-from-image-with-python-async-ocr-complete-guide/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-05-03 +description: Trích xuất văn bản từ hình ảnh bằng OCR bất đồng bộ của Python. Tìm hiểu + cách chuyển đổi tệp tif sang văn bản, tải hình ảnh cho OCR và nhận dạng văn bản + từ hình ảnh một cách hiệu quả. +draft: false +keywords: +- extract text from image +- convert tif to text +- load image for ocr +- extract image text +- recognize text from image +language: vi +og_description: Trích xuất văn bản từ hình ảnh bằng Python async OCR. Hướng dẫn này + chỉ cách chuyển đổi tệp tif sang văn bản, tải hình ảnh cho OCR và nhận dạng văn + bản từ hình ảnh. +og_title: Trích xuất văn bản từ hình ảnh bằng Python Async OCR – Hướng dẫn đầy đủ +tags: +- OCR +- Python +- AsyncIO +title: Trích xuất văn bản từ hình ảnh bằng Python Async OCR – Hướng dẫn toàn diện +url: /vi/python-java/general/extract-text-from-image-with-python-async-ocr-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ừ hình ảnh bằng Python Async OCR – Hướng dẫn đầy đủ + +Cần **trích xuất văn bản từ hình ảnh** nhanh chóng? Với async OCR của Python, bạn có thể thực hiện chỉ trong vài dòng mã. Dù bạn đang xử lý một tệp .tif khổng lồ hay một vài ảnh JPEG, hướng dẫn này sẽ chỉ cho bạn cách chuyển đổi tif sang văn bản, tải hình ảnh cho OCR, và cuối cùng nhận dạng văn bản từ hình ảnh mà không làm chặn event loop của bạn. + +Thực tế là—hầu hết các nhà phát triển thường dùng thư viện đồng bộ, rồi phải nhìn chờ UI đóng băng trong khi engine xử lý pixel. Trong hướng dẫn này, chúng ta sẽ thay đổi cách tiếp cận bằng cách sử dụng API bất đồng bộ của Aspose OCR Cloud, để ứng dụng của bạn luôn phản hồi nhanh. Khi kết thúc, bạn sẽ có một script có thể chạy được, trích xuất văn bản từ bất kỳ định dạng hình ảnh nào được hỗ trợ, và bạn sẽ hiểu lý do đằng sau mỗi bước. + +## Những gì bạn sẽ học + +- Cách thiết lập Aspose OCR Cloud SDK cho Python. +- Đoạn mã chính xác để **tải hình ảnh cho OCR** và bắt đầu một tác vụ nhận dạng bất đồng bộ. +- Mẹo xử lý các tệp .tif lớn và các vấn đề về giấy phép. +- Cách **trích xuất văn bản từ hình ảnh** một cách an toàn, ngay cả khi dịch vụ trả về lỗi. +- Một ví dụ hoàn chỉnh, sẵn sàng sao chép‑dán mà bạn có thể đưa vào dự án của mình. + +> **Yêu cầu trước**: Python 3.8+ và tệp giấy phép Aspose OCR Cloud (`Aspose.OCR.Java.lic`). Không cần bất kỳ gói bên thứ ba nào khác. + +--- + +![luồng công việc trích xuất văn bản từ hình ảnh](workflow.png){: .align-center alt="luồng công việc trích xuất văn bản từ hình ảnh"} + +## Trích xuất văn bản từ hình ảnh – Tổng quan Async OCR + +Trước khi đi vào mã, hãy cùng xem qua luồng xử lý. Khi bạn gọi `recognize_async`, SDK sẽ gửi hình ảnh tới đám mây của Aspose, khởi tạo một công việc nền, và trả về một đối tượng `Task`. Khi chờ (await) task này, bạn sẽ nhận được một `OcrResult` chứa bản đại diện dạng văn bản thuần của hình ảnh. Vì lời gọi là bất đồng bộ, bạn có thể khởi chạy nhiều công việc cùng lúc—rất phù hợp cho việc xử lý hàng loạt các tài liệu quét lớn. + +### Tại sao nên dùng Async? + +- **I/O không chặn** – Event loop của bạn vẫn tự do xử lý các công việc khác (ví dụ: phục vụ các yêu cầu HTTP). +- **Khả năng mở rộng** – Khởi chạy hàng chục nhận dạng cùng lúc; đám mây sẽ thực hiện phần việc nặng. +- **Độ phản hồi** – Các ứng dụng UI sẽ không bị đóng băng khi chờ engine OCR. + +Bây giờ đã hiểu “tại sao”, hãy xem “**cách**”. + +## Chuyển đổi TIF sang Văn bản bằng Aspose OCR + +Một rào cản thường gặp là cho rằng mọi thư viện OCR đều hỗ trợ .tif một cách tự nhiên. Aspose có hỗ trợ, nhưng bạn vẫn cần cung cấp cho nó một đối tượng `Image`. SDK sẽ trừu tượng hoá định dạng, vì vậy bạn chỉ cần chỉ tới đường dẫn tệp. + +```python +import asyncio +import asposeocrcloud as ocr + +async def async_ocr(image_path: str) -> str: + """ + Asynchronously extract text from the given image file. + + Parameters + ---------- + image_path: str + Path to the image (e.g., a .tif, .png, or .jpg file). + + Returns + ------- + str + The plain‑text OCR result. + """ + # 1️⃣ Create the OCR engine and apply the license + ocr_engine = ocr.OcrEngine() + # The License class reads the .lic file; adjust the path if needed. + ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") + + # 2️⃣ Load the image for OCR – this works for TIF, PNG, JPEG, etc. + ocr_image = ocr.Image.from_file(image_path) + + # 3️⃣ Start the asynchronous recognition task + recognition_task = ocr_engine.recognize_async(ocr_image) + + # 4️⃣ Await the task and retrieve the extracted text + ocr_result = await recognition_task + return ocr_result.text +``` + +**Explanation of key lines** + +- `ocr_engine.license = ...` – Nếu không có giấy phép hợp lệ, đám mây sẽ trả về lỗi 403. Đảm bảo tệp `.lic` có thể truy cập được từ thư mục làm việc của script. +- `ocr.Image.from_file(image_path)` – Bước này **tải hình ảnh cho OCR**; SDK tự động phát hiện định dạng, vì vậy bạn không cần chuyển đổi .tif trước. +- `recognize_async` – Trả về một task tương thích coroutine. Bạn có thể khởi chạy nhiều task này trong một lời gọi `gather` nếu có batch. + +> **Mẹo chuyên nghiệp**: Nếu bạn đang xử lý các tệp TIFF có kích thước gigabyte, hãy cân nhắc tách chúng thành các trang trước. `Image.from_file` của Aspose có thể nhận chỉ số trang, giúp giảm áp lực bộ nhớ. + +## Nhận dạng Văn bản từ Hình ảnh một cách Bất đồng bộ + +Xem cách bạn sẽ gọi hàm này từ một script điển hình. Điểm vào `asyncio.run` là cách đơn giản nhất để khởi chạy coroutine khi bạn chưa ở trong một event loop (ví dụ: một công cụ CLI thuần). + +```python +if __name__ == "__main__": + # Replace with the actual path to your large TIF file. + tif_path = "YOUR_DIRECTORY/large_image.tif" + + # Execute the coroutine and capture the output. + extracted_text = asyncio.run(async_ocr(tif_path)) + + # Print the result – this is the final step of **extracting text from image**. + print("=== OCR Result ===") + print(extracted_text) +``` + +**What to expect** + +Chạy script với một bản scan rõ ràng, độ phân giải cao thường sẽ trả về một chuỗi đa dòng khớp với trang in. Nếu hình ảnh bị nhiễu, Aspose vẫn cố gắng làm sạch, nhưng bạn có thể thấy các ký tự bị lỗi. Trong trường hợp đó, hãy cân nhắc tiền xử lý bằng OpenCV (ví dụ: threshold) trước khi đưa tệp cho engine OCR. + +### Xử lý Lỗi một cách Tinh tế + +```python +try: + extracted_text = asyncio.run(async_ocr(tif_path)) +except ocr.OcrException as exc: + print(f"⚠️ OCR failed: {exc}") + # Fallback: you could retry, log, or switch to a different service. +else: + print(extracted_text) +``` + +Bắt `OcrException` giúp chương trình của bạn không bị sập khi đám mây trả về lỗi—điều mà thường làm người mới bối rối vì quên các trục trặc mạng. + +## Tải Hình ảnh cho OCR – Mẹo Thực tiễn + +1. **Đường dẫn tệp vs. Bytes** – SDK chấp nhận đường dẫn tệp, nhưng bạn cũng có thể tải từ một đối tượng `bytes` nếu hình ảnh đã ở trong bộ nhớ (`ocr.Image.from_bytes`). Điều này hữu ích khi bạn đã lấy tệp từ S3 hoặc cơ sở dữ liệu. +2. **Định dạng được hỗ trợ** – Ngoài .tif, Aspose còn xử lý PDF, BMP, GIF, và thậm chí TIFF đa trang. Dùng `Image.from_file("doc.pdf")` để OCR trực tiếp PDF. +3. **Hiệu năng** – Đối với các job batch, hãy tái sử dụng cùng một thể hiện `OcrEngine`; tạo engine mới cho mỗi tệp sẽ gây tốn tài nguyên không cần thiết. + +## Ví dụ Hoàn chỉnh (Tất cả các Bước trong Một Script) + +Dưới đây là script đầy đủ, sẵn sàng chạy, bao gồm việc cấp giấy phép, xử lý lỗi, và một trình phân tích đối số dòng lệnh đơn giản. Sao chép‑dán, điều chỉnh đường dẫn giấy phép, và bạn đã sẵn sàng. + +```python +# full_async_ocr.py +import asyncio +import argparse +import asposeocrcloud as ocr +import sys +from pathlib import Path + +async def async_ocr(image_path: Path) -> str: + """Extract text from an image file asynchronously.""" + engine = ocr.OcrEngine() + # Adjust this if your .lic file lives elsewhere + license_path = Path("Aspose.OCR.Java.lic") + if not license_path.is_file(): + sys.exit("❌ License file not found. Place Aspose.OCR.Java.lic beside the script.") + engine.license = ocr.License().set_license(str(license_path)) + + # Load the image (supports TIFF, PNG, JPEG, PDF, etc.) + image = ocr.Image.from_file(str(image_path)) + + # Fire off the async recognition + task = engine.recognize_async(image) + + # Await and return the plain text + result = await task + return result.text + +def parse_args(): + parser = argparse.ArgumentParser( + description="Extract text from image using Aspose OCR async API." + ) + parser.add_argument( + "image", + type=Path, + help="Path to the image file (e.g., .tif, .png, .jpg, .pdf)." + ) + return parser.parse_args() + +def main(): + args = parse_args() + if not args.image.is_file(): + sys.exit(f"❌ File not found: {args.image}") + + try: + text = asyncio.run(async_ocr(args.image)) + except ocr.OcrException as e: + sys.exit(f"⚠️ OCR failed: {e}") + + print("\n=== Extracted Text ===\n") + print(text) + +if __name__ == "__main__": + main() +``` + +**Expected output** + +``` +=== Extracted Text === + +Lorem ipsum dolor sit amet, +consectetur adipiscing elit. +... +``` + +Nếu hình ảnh chứa một đoạn văn đơn giản, console sẽ hiển thị các dòng giống nhau, giữ nguyên ngắt dòng. Đối với TIFF đa trang, SDK sẽ nối các trang theo thứ tự. + +## Câu hỏi Thường gặp (FAQ) + +**H: Điều này có hoạt động với các framework async khác như FastAPI không?** +Đ: Hoàn toàn có thể. Thay thế lời gọi `asyncio.run` bằng `await async_ocr(path)` trong endpoint của bạn, và FastAPI sẽ tự quản lý event loop. + +**H: Nếu tôi cần xử lý hàng trăm tệp cùng lúc thì sao?** +Đ: Dùng `asyncio.gather`: + +```python +tasks = [async_ocr(p) for p in list_of_paths] +results = await asyncio.gather(*tasks, return_exceptions=True) +``` + +**H: Tôi có thể trích xuất văn bản từ PDF được bảo vệ bằng mật khẩu không?** +Đ: Không trực tiếp. Bạn cần mở khóa PDF trước (ví dụ: bằng `pikepdf`) rồi đưa các byte đã giải mã vào `ocr.Image.from_bytes`. + +**H: Làm sao để xử lý các ngôn ngữ ngoài tiếng Anh?** +Đ: Đặt ngôn ngữ trước khi nhận dạng: + +```python +engine.language = "spa" # Spanish ISO code +``` + +Aspose hỗ trợ hơn 60 ngôn ngữ; xem tài liệu để biết các định danh chính xác. + +## Kết luận + +Bạn đã có một giải pháp **trích xuất văn bản từ hình ảnh** vững chắc, tận dụng `asyncio` của Python và API bất đồng bộ của Aspose OCR Cloud. Bằng cách làm theo các bước trên, bạn có thể **chuyển đổi tif sang văn bản**, **tải hình ảnh cho OCR**, và **nhận dạng văn bản từ hình ảnh** một cách không chặn—phù hợp cho cả công cụ dòng lệnh và các dịch vụ web có lưu lượng cao. + +Tiếp theo bạn có thể thử batch một thư mục các bản scan, thử nghiệm các cài đặt ngôn ngữ, hoặc đưa đầu ra OCR vào một pipeline NLP tiếp theo. Bầu trời là + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/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/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md b/ocr/vietnamese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md new file mode 100644 index 000000000..0167a4ffb --- /dev/null +++ b/ocr/vietnamese/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/_index.md @@ -0,0 +1,176 @@ +--- +category: general +date: 2026-05-03 +description: Trích xuất văn bản OCR nhanh chóng bằng Aspose OCR. Tìm hiểu cách cải + thiện độ chính xác OCR, tải ảnh OCR, tiền xử lý ảnh OCR và chạy quét OCR trong Python. +draft: false +keywords: +- extract text ocr +- improve ocr accuracy +- load image ocr +- preprocess image ocr +- run OCR scan +language: vi +og_description: Trích xuất văn bản OCR nhanh chóng bằng Aspose OCR. Nắm vững cách + cải thiện độ chính xác OCR, tải ảnh OCR, tiền xử lý ảnh OCR và thực hiện quét OCR + trong Python. +og_title: Trích xuất văn bản OCR – Hướng dẫn đầy đủ với Aspose OCR +tags: +- OCR +- Python +- Aspose +title: Trích xuất văn bản OCR – Hướng dẫn đầy đủ với Aspose OCR +url: /vi/python-java/general/extract-text-ocr-complete-guide-with-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# extract text ocr – Hướng dẫn đầy đủ với Aspose OCR + +Bạn đã bao giờ cần **extract text ocr** từ một bản scan bị nghiêng nhưng không chắc tại sao kết quả lại giống như vô nghĩa? Bạn không phải là người duy nhất—nhiều nhà phát triển gặp phải vấn đề này khi hình ảnh bị nghiêng, nhiễu, hoặc chỉ đơn giản là độ tương phản thấp. Tin tốt là một vài điều chỉnh cấu hình có thể biến một bức ảnh lộn xộn thành văn bản sạch, có thể tìm kiếm được. Trong hướng dẫn này, chúng tôi sẽ đi qua một ví dụ đầy đủ, từ đầu đến cuối, cho bạn thấy cách improve ocr accuracy, load image ocr, preprocess image ocr, và cuối cùng run OCR scan với Aspose OCR for Python. + +Kết thúc hướng dẫn này, bạn sẽ có một script có thể chạy được, đọc một tệp JPEG đã scan, tự động làm sạch nó, và in văn bản đã trích xuất ra console. Không có liên kết “xem tài liệu” bí ẩn—mọi thứ bạn cần đều có ở đây. + +## Những gì bạn cần + +- **Python 3.8+** (phiên bản ổn định mới nhất hoạt động tốt nhất) +- **Aspose.OCR for Python via .NET** – cài đặt bằng `pip install aspose-ocr` +- Một **license file** (`Aspose.OCR.Java.lic`) nếu bạn đã mua (bản dùng thử miễn phí hoạt động cho việc thử nghiệm) +- Một hình ảnh bạn muốn xử lý (ví dụ, `skewed_scanned_doc.jpg`) + +Đó là tất cả. Nếu bạn đã có những thứ này, chúng ta có thể ngay lập tức chuyển sang mã. + +## Bước 1: Extract Text OCR với Aspose OCR Engine + +Điều đầu tiên bạn làm là khởi động OCR engine và áp dụng giấy phép của bạn. Hãy nghĩ engine như bộ não sẽ đọc hình ảnh; nếu không có giấy phép, nó sẽ từ chối hoạt động vượt quá giới hạn demo nhỏ. + +```python +# Step 1: Create an OCR engine instance and apply your license +import aspose.ocr as ocr + +ocr_engine = ocr.OcrEngine() +ocr_engine.license = ocr.License().set_license("Aspose.OCR.Java.lic") +``` + +> **Why this matters:** Áp dụng giấy phép ngay từ đầu tránh lỗi im lặng sau này. Nếu bạn bỏ qua bước này, engine sẽ quay lại chế độ hạn chế và bạn sẽ chỉ nhận được một vài ký tự—chắc chắn không phải những gì bạn mong đợi khi cố gắng extract text ocr. + +## Bước 2: Improve OCR Accuracy với Pre‑processing + +Các bản scan bị nghiêng hoặc hạt hạt là nỗi ác mộng của bất kỳ dự án OCR nào. Aspose cho phép bạn bật tắt một vài cài đặt tiện lợi tự động deskew, denoise và tăng độ tương phản. Đây là trung tâm của **improve ocr accuracy**. + +```python +# Step 2: Enable preprocessing to improve accuracy on skewed or noisy scans +ocr_engine.config.auto_deskew = True # automatically corrects rotation +ocr_engine.config.remove_noise = True # reduces speckles +ocr_engine.config.enhance_contrast = True # boosts text visibility +ocr_engine.config.binarization = "Otsu" # choose a robust binarization method +``` + +- **auto_deskew** – xoay lại hình ảnh về chiều ngang, điều này rất quan trọng khi tài liệu gốc không hoàn toàn phẳng. +- **remove_noise** – loại bỏ các đốm ngẫu nhiên thường xuất hiện trong JPEG độ phân giải thấp. +- **enhance_contrast** – làm cho văn bản tối hơn và nền sáng hơn, giúp engine phân biệt ký tự. +- **binarization = "Otsu"** – một thuật toán cổ điển quyết định ngưỡng tốt nhất cho chuyển đổi đen‑trắng. + +> **Pro tip:** Nếu bạn biết các hình ảnh nguồn của mình đã sạch, bạn có thể tắt các tùy chọn này để tăng tốc xử lý. Nhưng đối với hầu hết các bản scan thực tế, để chúng bật là lựa chọn an toàn nhất. + +## Bước 3: Load Image OCR để quét + +Bây giờ engine đã sẵn sàng, chúng ta cần **load image ocr**. Phương thức `Image.from_file` của Aspose hỗ trợ JPEG, PNG, TIFF và một vài định dạng khác. + +```python +# Step 3: Load the image you want to recognize +input_image = ocr.Image.from_file("YOUR_DIRECTORY/skewed_scanned_doc.jpg") +``` + +Thay thế `YOUR_DIRECTORY` bằng đường dẫn thực tế trên máy của bạn. Nếu bạn đang làm việc với một luồng byte trong bộ nhớ (ví dụ, từ tải lên web), bạn cũng có thể sử dụng `ocr.Image.from_bytes(byte_data)`—engine sẽ xử lý nó. + +> **Edge case:** Các tệp TIFF lớn có thể tiêu tốn nhiều bộ nhớ. Nếu bạn gặp `MemoryError`, hãy cân nhắc giảm độ phân giải của hình ảnh trước hoặc sử dụng `ocr_engine.config.max_image_size` để giới hạn kích thước. + +## Bước 4: Run OCR Scan và nhận kết quả + +Với hình ảnh đã được tải và preprocessing được bật, bước cuối cùng là **run OCR scan**. Lệnh này thực hiện toàn bộ công việc nặng phía sau. + +```python +# Step 4: Run the OCR process on the prepared image +ocr_result = ocr_engine.recognize(input_image) +``` + +Đối tượng `ocr_result` chứa một số thuộc tính hữu ích: + +- `ocr_result.text` – chuỗi văn bản thuần mà bạn quan tâm. +- `ocr_result.confidence` – điểm số số (0‑100) cho biết độ tin cậy tổng thể. +- `ocr_result.words` – danh sách các đối tượng từ với tọa độ bounding box, hữu ích để đánh dấu. + +## Bước 5: In văn bản đã trích xuất + +Cuối cùng, chúng ta xuất kết quả. Trong một ứng dụng thực tế, bạn có thể ghi văn bản vào tệp, cơ sở dữ liệu, hoặc đưa vào chỉ mục tìm kiếm. Đối với hướng dẫn này, một lệnh `print` đơn giản đã đủ. + +```python +# Step 5: Print the extracted text +print("=== Extracted Text ===") +print(ocr_result.text) +print("\nConfidence:", ocr_result.confidence) +``` + +**Expected output** (ví dụ cho một hoá đơn đơn giản): + +``` +=== Extracted Text === +Invoice #12345 +Date: 2024‑04‑30 +Total: $1,250.00 + +Confidence: 96.2 +``` + +Nếu độ tin cậy thấp (< 80), bạn có thể muốn xem lại các tùy chọn preprocessing hoặc thử một phương pháp binarization khác như `"Sauvola"`. + +## Bonus: Visualizing the Pre‑processing Pipeline (Tùy chọn) + +Đôi khi việc xem engine đã làm gì với hình ảnh sẽ hữu ích. Aspose cho phép bạn xuất bitmap đã xử lý: + +```python +# Save the pre‑processed image for debugging +processed_image = ocr_engine.config.get_processed_image() +processed_image.save("processed_debug.png") +``` + +Bạn có thể sau đó nhúng hình ảnh vào tài liệu: + +extract text ocr workflow diagram showing preprocessing steps + +> **Why you’d do this:** Khi kết quả OCR không như mong đợi, một cái nhìn nhanh vào `processed_debug.png` thường cho thấy hình ảnh còn quá tối, còn nghiêng, hoặc còn nhiễu. + +## Các câu hỏi thường gặp & Gotchas + +- **What if my document is multi‑page?** + Aspose OCR hoạt động theo từng trang. Lặp qua mỗi ảnh trang và nối `ocr_result.text`. + +- **Can I recognize languages other than English?** + Có—đặt `ocr_engine.config.language = "fra"` (hoặc bất kỳ mã ISO‑639‑2 nào) trước khi gọi `recognize`. + +- **Is there a limit on image size?** + Engine giới hạn mặc định ở 10 MP. Tăng `ocr_engine.config.max_image_size` nếu bạn cần scan lớn hơn, nhưng hãy chú ý tới việc sử dụng bộ nhớ. + +- **Do I need a separate OCR engine for PDFs?** + Đối với PDF, bạn có thể trích xuất mỗi trang thành ảnh trước (sử dụng Aspose.PDF) hoặc sử dụng tính năng PDF OCR tích hợp. Các bước ở đây vẫn giống nhau sau khi bạn có ảnh. + +## Tóm tắt + +Chúng tôi đã trình bày cách **extract text ocr** bằng Aspose OCR cho Python, từ việc cấp phép cho engine đến việc điều chỉnh các cài đặt **improve ocr accuracy**, tải tệp nguồn, và cuối cùng **run OCR scan** để lấy văn bản sạch. Script hoàn chỉnh đã sẵn sàng để sao chép‑dán, và bạn đã hiểu tại sao mỗi cờ cấu hình lại quan trọng. + +## Bước tiếp theo là gì? + +- **Experiment with different binarization methods** (`"Sauvola"`, `"Bradley"`). Một số phông chữ phản hồi tốt hơn với ngưỡng thích nghi. +- **Integrate with a search engine** (ví dụ, Elasticsearch) sử dụng điểm confidence để xếp hạng kết quả. +- **Combine with OCR post‑processing** libraries như `pyspellchecker` để làm sạch các nhận dạng sai thường gặp. +- **Explore batch processing** cho hàng trăm bản scan—đóng gói các bước vào một hàm và cung cấp một thư mục chứa ảnh. + +Bạn có thể tự do chỉnh sửa mã, thêm logging của riêng mình, hoặc tích hợp vào một pipeline quản lý tài liệu lớn hơn. 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 diff --git a/ocr/vietnamese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md b/ocr/vietnamese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md new file mode 100644 index 000000000..40748e9e2 --- /dev/null +++ b/ocr/vietnamese/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/_index.md @@ -0,0 +1,185 @@ +--- +category: general +date: 2026-05-03 +description: Cách thực hiện OCR PDF bằng Aspose OCR Java. Tìm hiểu cách chạy OCR trên + PDF, nhận dạng văn bản PDF, chuyển PDF sang JSON và tải PDF để OCR chỉ trong vài + dòng mã. +draft: false +keywords: +- how to ocr pdf +- run ocr on pdf +- recognize text pdf +- convert pdf to json +- load pdf for ocr +language: vi +og_description: Cách OCR PDF bằng Aspose OCR Java. Hướng dẫn này cho thấy cách thực + hiện OCR trên PDF, nhận dạng văn bản PDF, chuyển PDF sang JSON và tải PDF để OCR + nhanh chóng. +og_title: Cách OCR PDF bằng Aspose OCR – Hướng dẫn lập trình đầy đủ +tags: +- Aspose OCR +- Java +- PDF processing +title: Cách OCR PDF với Aspose OCR – Hướng dẫn chi tiết từng bước +url: /vi/python-java/general/how-to-ocr-pdf-with-aspose-ocr-complete-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách OCR PDF với Aspose OCR – Hướng Dẫn Chi Tiết Từng Bước + +Bạn đã bao giờ tự hỏi **cách OCR PDF** mà không phải vật lộn với các công cụ dòng lệnh hay trả phí cho các dịch vụ SaaS đắt đỏ chưa? Bạn không phải là người duy nhất. Trong nhiều dự án—tự động hoá hoá đơn, lưu trữ hợp đồng đã quét, hoặc xây dựng cơ sở kiến thức có thể tìm kiếm—bạn sẽ gặp nhu cầu trích xuất văn bản từ PDF một cách nhanh chóng và đáng tin cậy. + +Tin tốt là gì? Với Aspose OCR cho Java, bạn có thể **run OCR on PDF**, nhận dạng văn bản PDF, **convert PDF to JSON**, và thậm chí **load PDF for OCR** chỉ trong vài dòng code. Trong tutorial này, chúng tôi sẽ hướng dẫn toàn bộ quy trình, giải thích lý do mỗi bước quan trọng, và cung cấp một mẫu code sẵn sàng chạy mà bạn có thể đưa vào dự án của mình. + +## Những Điều Bạn Sẽ Học + +- Cách thiết lập engine Aspose OCR và áp dụng giấy phép. +- Cách **load PDF for OCR** và đưa nó vào bộ nhận dạng. +- Cách **recognize text PDF** trên tất cả các trang chỉ bằng một lần gọi. +- Xuất toàn bộ kết quả OCR ra file **JSON** (lý tưởng cho các API downstream) và một trang duy nhất ra **XML**. +- Các mẹo, lưu ý và biến thể bạn có thể cần khi làm việc với PDF đa trang hoặc gói ngôn ngữ tùy chỉnh. + +> **Prerequisites** – Bạn cần Java 8 hoặc mới hơn, một file giấy phép Aspose OCR cho Java hợp lệ (`Aspose.OCR.Java.lic`), và Aspose OCR JAR trong classpath. Không cần thư viện bên ngoài nào khác. + +--- + +## How to OCR PDF – Initialize Aspose OCR Engine + +Điều đầu tiên bạn phải làm là tạo một instance của `OcrEngine` và gắn giấy phép của bạn. Bước này mở khóa toàn bộ tính năng và loại bỏ watermark đánh giá. + +```java +// Step 1: Initialize the OCR engine and apply the license +import com.aspose.ocr.*; + +public class PdfOcrDemo { + public static void main(String[] args) throws Exception { + // Create the engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply the license – replace the path with your actual .lic file location + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); + + // From here on the engine runs in licensed mode +``` + +**Why this matters:** +Nếu không có giấy phép, Aspose OCR sẽ chạy ở chế độ “trial” có giới hạn số trang và thêm watermark vào kết quả. Áp dụng giấy phép ngay từ đầu đảm bảo phần còn lại của pipeline hoạt động mà không gặp các hạn chế bất ngờ. + +--- + +## Run OCR on PDF – Load Document and Recognize Text + +Bây giờ chúng ta **load PDF for OCR**. Aspose OCR coi PDF như một kiểu `PdfDocument` đặc biệt, bên trong nó sẽ trích xuất mỗi trang dưới dạng hình ảnh trước khi đưa vào bộ nhận dạng. + +```java + // Step 2: Load the PDF document you want to process + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/input.pdf"); + + // Step 3: Run OCR on the whole document + // recognizeDocument returns an array of OcrPage objects, one per PDF page + OcrPage[] ocrPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**What’s happening under the hood?** +`recognizeDocument` lặp qua từng trang, rasterize nó ở DPI tối ưu, rồi chạy engine OCR. Kết quả là một mảng `OcrPage` trong đó mỗi phần tử chứa văn bản đã phát hiện, điểm confidence và thông tin bố cục. Cách tiếp cận này đáng tin cậy hơn rất nhiều so với việc đưa raw PDF bytes vào một thư viện OCR chung. + +--- + +## Convert OCR Result to JSON – Export Full Report + +Hầu hết các hệ thống downstream ưu thích JSON vì dễ deserialize trong Java, JavaScript, Python, hoặc thậm chí PowerShell. Aspose OCR cung cấp helper `JsonExport` để serialize toàn bộ mảng `OcrPage[]`. + +```java + // Step 4: Export the complete OCR result to a JSON file + String jsonPath = "YOUR_DIRECTORY/report_ocr.json"; + JsonExport.save(ocrPages, jsonPath); + System.out.println("JSON saved to " + jsonPath); +``` + +**When would you use this?** +Nếu bạn cần đưa kết quả OCR vào một chỉ mục tìm kiếm (Elasticsearch, Solr) hoặc một pipeline dữ liệu, định dạng JSON cung cấp một cấu trúc có tổ chức cho mỗi trang, mỗi dòng và mỗi từ, kèm theo giá trị confidence. + +--- + +## Export First Page to XML – Save Individual Page + +Đôi khi bạn chỉ quan tâm tới một trang duy nhất—có thể trang đầu chứa tiêu đề hoặc số hoá đơn. Lớp `XmlExport` cho phép bạn xuất một `OcrPage` duy nhất ra file XML gọn gàng. + +```java + // Step 5: Export the OCR result of the first page to an XML file + String xmlPath = "YOUR_DIRECTORY/page1_ocr.xml"; + XmlExport.save(ocrPages[0], xmlPath); + System.out.println("XML saved to " + xmlPath); + } +} +``` + +**Why XML?** +Các hệ thống legacy hoặc một số workflow doanh nghiệp vẫn dựa vào schema XML để nhập dữ liệu. File được tạo tuân theo schema riêng của Aspose, giúp việc validation trở nên đơn giản. + +--- + +## Verify the Output – Check JSON and XML Files + +Sau khi chương trình kết thúc, bạn sẽ thấy hai file trong `YOUR_DIRECTORY`: + +- `report_ocr.json` – Chứa một mảng các đối tượng trang. Một đoạn trích nhanh có thể trông như sau: + +```json +[ + { + "pageNumber": 1, + "text": "Invoice #12345\nDate: 2026‑04‑30\n...", + "confidence": 98.7, + "words": [...] + }, + { + "pageNumber": 2, + "text": "...", + "confidence": 97.4, + "words": [...] + } +] +``` + +- `page1_ocr.xml` – Chứa cùng thông tin cho trang 1, được bọc trong thẻ ``. + +Mở chúng bằng bất kỳ trình soạn thảo nào; bạn sẽ thấy các chuỗi OCR thô, điểm confidence và tọa độ bounding‑box. Nếu JSON trông rỗng, hãy kiểm tra lại PDF đầu vào có thực sự chứa nội dung raster (hình ảnh quét) chứ không phải văn bản có thể chọn—Aspose OCR chỉ hoạt động trên hình ảnh. + +--- + +## Common Pitfalls & Pro Tips + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Empty JSON** | PDF chứa văn bản gốc, không phải hình ảnh. | Dùng `PdfDocument.fromFile(..., true)` để buộc rasterization, hoặc chuyển các trang sang hình ảnh trước. | +| **Low confidence** | PDF nguồn có độ phân giải thấp hoặc nén mạnh. | Tăng DPI bằng cách gọi `ocrEngine.getImageProcessingOptions().setDpi(300)` trước `recognizeDocument`. | +| **License not found** | Đường dẫn sai hoặc file thiếu. | Dùng đường dẫn tuyệt đối hoặc đặt file `.lic` trên classpath và gọi `lic.setLicense("Aspose.OCR.Java.lic")`. | +| **Out‑of‑memory on huge PDFs** | Tất cả các trang được tải vào bộ nhớ cùng lúc. | Xử lý trang theo batch: `recognizeDocument(pdfDoc, startPage, endPage)`. | + +--- + +## Extending the Example + +- **Run OCR on PDF với một ngôn ngữ cụ thể** – đặt `ocrEngine.getLanguage().setLanguage(Language.English)` hoặc tải gói ngôn ngữ tùy chỉnh. +- **Export mỗi trang ra các file JSON riêng** – lặp qua `ocrPages` và gọi `JsonExport.save(page, "page" + page.getPageNumber() + ".json")`. +- **Tích hợp với công cụ tìm kiếm** – đưa JSON vào processor `attachment` của Elasticsearch để thực hiện tìm kiếm toàn văn bản. + +--- + +## Conclusion + +Bạn đã có một giải pháp hoàn chỉnh, sẵn sàng cho môi trường production để **cách OCR PDF** bằng Aspose OCR cho Java. Bằng việc khởi tạo engine, tải PDF, chạy OCR, và xuất cả **JSON** và **XML**, bạn có thể tích hợp OCR vào bất kỳ workflow backend nào—dù bạn cần **run OCR on PDF**, **recognize text PDF**, **convert PDF to JSON**, hay chỉ **load PDF for OCR**. + +Hãy thử nghiệm, điều chỉnh DPI hoặc cài đặt ngôn ngữ, và xem các PDF trước đây không thể đọc được trở thành tài sản có thể tìm kiếm. Muốn tiến xa hơn? Hãy index JSON vào Elasticsearch, hoặc post‑process XML bằng XSLT để tạo báo cáo tùy chỉnh. + +Chúc lập trình vui vẻ, và chúc các PDF của bạn luôn đọc đượ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/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md b/ocr/vietnamese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md new file mode 100644 index 000000000..9fd92934c --- /dev/null +++ b/ocr/vietnamese/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/_index.md @@ -0,0 +1,159 @@ +--- +category: general +date: 2026-05-03 +description: 'cách chạy OCR nhanh chóng: học cách trích xuất văn bản từ hình ảnh và + nhận dạng văn bản từ biểu mẫu bằng Aspose OCR Java. Các bước đơn giản để đọc hình + ảnh cho OCR.' +draft: false +keywords: +- how to run ocr +- extract text from image +- recognize text from form +- read image for ocr +language: vi +og_description: 'cách chạy OCR nhanh chóng: học cách trích xuất văn bản từ hình ảnh + và nhận dạng văn bản từ biểu mẫu bằng Aspose OCR Java. Các bước đơn giản để đọc + hình ảnh cho OCR.' +og_title: cách chạy OCR trên mẫu – trích xuất văn bản từ hình ảnh +tags: +- ocr +- java +- image-processing +title: cách chạy OCR trên biểu mẫu – trích xuất văn bản từ hình ảnh +url: /vi/python-java/general/how-to-run-ocr-on-a-form-extract-text-from-image/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# cách chạy OCR trên mẫu – trích xuất văn bản từ hình ảnh + +Bạn đã bao giờ tự hỏi **cách chạy OCR** trên tài liệu đã quét mà không phải mất hàng giờ với các thư viện khó hiểu chưa? Bạn không đơn độc. Trong nhiều dự án—dù là số hoá hoá đơn, lưu trữ hợp đồng, hay lấy dữ liệu từ các mẫu viết tay—việc **trích xuất văn bản từ hình ảnh** là một vấn đề hàng ngày. + +Thực tế là Aspose OCR for Java làm cho toàn bộ quy trình gần như không đau đầu. Trong tutorial này chúng ta sẽ đi qua từng dòng code bạn cần để **nhận dạng văn bản từ mẫu** files, giải thích tại sao mỗi bước quan trọng, và chỉ cho bạn cách **đọc hình ảnh cho OCR** với các điểm tin cậy. Khi hoàn thành, bạn sẽ có một lớp Java sẵn sàng chạy mà có thể đưa vào bất kỳ dự án Maven hoặc Gradle nào. + +## Những gì bạn sẽ học + +- Cài đặt engine Aspose OCR và áp dụng giấy phép. +- Tải một file JPEG, PNG, hoặc TIFF vào bộ nhớ. +- Chạy OCR và lặp qua từng dòng văn bản đã nhận dạng. +- Phát hiện các dòng có độ tin cậy thấp để xem xét thủ công. +- Mở rộng ví dụ sang PDF đa trang hoặc các định dạng ảnh khác. + +Không cần kinh nghiệm trước với Aspose, chỉ cần môi trường phát triển Java cơ bản (JDK 11+ và bất kỳ IDE nào bạn thích). Hãy bắt đầu. + +![ví dụ chạy OCR](/images/ocr-demo.png){alt="ví dụ chạy OCR trên mẫu quét"} + +## Bước 1: Khởi tạo OCR Engine – **cách chạy OCR** + +Điều đầu tiên bạn phải làm trước bất kỳ thao tác OCR nào là tạo một instance `OcrEngine` và gắn giấy phép hợp lệ. Nếu không có giấy phép, thư viện sẽ chạy ở chế độ demo, giới hạn số trang bạn có thể xử lý. + +```java +// Step 1: Initialize the OCR engine and set the license +import com.aspose.ocr.*; + +public class OcrDemo { + public static void main(String[] args) { + // Create the engine + OcrEngine engine = new OcrEngine(); + + // Load your license – replace the path with your actual .lic file + License lic = new License(); + lic.setLicense("Aspose.OCR.Java.lic"); // <-- ensure the file is on the classpath + + // From here on the engine is ready to process images +``` + +**Tại sao điều này quan trọng:** +`OcrEngine` chứa tất cả cấu hình—ngôn ngữ, chế độ phát hiện, và các tùy chỉnh hiệu năng. Bằng cách thiết lập giấy phép ngay từ đầu, bạn tránh việc tự động chuyển sang chế độ dùng thử mà sẽ cắt ngắn kết quả đầu ra. + +## Bước 2: Tải ảnh – **trích xuất văn bản từ hình ảnh** + +Tiếp theo chúng ta cần một đối tượng `Image` trỏ tới file bạn muốn quét. Aspose hỗ trợ nhiều định dạng, vì vậy bạn có thể đưa vào một trang PDF đã quét mà bạn đã chuyển sang PNG, một JPEG thô, hoặc thậm chí một TIFF đa trang. + +```java + // Step 2: Load the image to be processed + // Replace the path with the location of your scanned form + Image image = Image.fromFile("YOUR_DIRECTORY/scanned_form.jpg"); + + // Optional: If you’re dealing with a PDF, you could use + // Image image = Image.fromPdf("document.pdf", 1); // page 1 +``` + +**Tại sao điều này quan trọng:** +Việc tải ảnh dưới dạng đối tượng `Image` cung cấp cho engine dữ liệu pixel, thông tin DPI và độ sâu màu—tất cả đều ảnh hưởng đến độ chính xác của OCR. Nếu bỏ qua bước này và truyền một mảng byte thô, bạn sẽ mất những gợi ý hữu ích này. + +## Bước 3: Chạy OCR – **nhận dạng văn bản từ mẫu** + +Bây giờ là phần thú vị: thực sự nhận dạng các ký tự. Phương thức `recognize` trả về một `RecognitionResult` chứa một tập hợp các đối tượng `Line`, mỗi dòng có điểm tin cậy riêng. + +```java + // Step 3: Run OCR on the loaded image + RecognitionResult result = engine.recognize(image); +``` + +**Tại sao điều này quan trọng:** +Gọi `recognize` kích hoạt một chuỗi các quy trình nội bộ—tiền xử lý (điều chỉnh góc, loại bỏ nhiễu), phân đoạn, phân loại ký tự, và hậu xử lý (kiểm tra chính tả, mô hình ngôn ngữ). Đối tượng kết quả trừu tượng hoá toàn bộ độ phức tạp này. + +## Bước 4: Xử lý kết quả – **đọc hình ảnh cho OCR** output + +Khi bạn có `RecognitionResult`, bạn có thể lặp qua từng dòng, quyết định tự động giữ lại gì, và đánh dấu những dòng có vẻ không chắc chắn. Ngưỡng tin cậy 85 % là điểm khởi đầu tốt cho hầu hết các mẫu in. + +```java + // Step 4: Examine each recognized line + for (Line line : result.getLines()) { + // Highlight lines with low confidence for manual review + if (line.getConfidence() < 85) { + System.out.println( + String.format("Low‑confidence line (%.2f%%): %s", line.getConfidence(), line.getText())); + } else { + // High‑confidence lines can be used directly + System.out.println(line.getText()); + } + } + } +} +``` + +**Kết quả mong đợi (mẫu):** + +``` +Invoice Number: 2023‑00123 +Date: 2023‑04‑15 +Customer: Acme Corp. +Low‑confidence line (72.34%): Total Amount: $1,23O.00 +``` + +Trong ví dụ trên, engine không chắc chắn về chữ số cuối cùng của tổng số, vì vậy chúng tôi in ra một cảnh báo. Bạn có thể chuyển những dòng này vào UI để chỉnh sửa thủ công hoặc ghi log để xem xét sau. + +### Các trường hợp đặc biệt & Mẹo + +- **Nhiều trang:** Nếu bạn có PDF đa trang, lặp qua mỗi chỉ số trang và gọi `Image.fromPdf(pdfPath, pageIndex)`. +- **Ngôn ngữ khác:** Đặt `engine.getLanguage().setLanguage(Language.Spanish);` trước khi gọi `recognize`. +- **Chất lượng ảnh:** Quét độ phân giải thấp (< 150 DPI) thường cho độ tin cậy dưới 80 %. Tăng kích thước bằng `image.resize(300, 300)` có thể giúp, nhưng cách tốt nhất là quét lại với chất lượng cao hơn. +- **Hiệu năng:** Tái sử dụng cùng một instance `OcrEngine` cho nhiều ảnh sẽ giảm overhead so với việc tạo mới mỗi lần. + +## Câu hỏi thường gặp + +**Có thể chạy trên server không có giao diện không?** +Chắc chắn. Thư viện không phụ thuộc vào GUI, vì vậy nó hoạt động tốt trong container Docker hoặc pipeline CI. + +**Nếu chưa có giấy phép thì sao?** +Bạn vẫn có thể gọi `engine.recognize`, nhưng chế độ demo sẽ dừng sau 2 trang đầu và thêm watermark vào kết quả. Thích hợp cho các thử nghiệm nhanh. + +**Có cách nào để trích xuất dữ liệu có cấu trúc (ví dụ: bảng) không?** +Aspose OCR cung cấp lớp `TableRecognizer`, nhưng điều đó nằm ngoài phạm vi hướng dẫn cho người mới. Khi đã nắm vững các kiến thức cơ bản, hãy tham khảo tài liệu chính thức về `TableRecognizer`. + +## Tổng kết – **cách chạy OCR** trong một câu + +Chúng ta đã bao phủ mọi thứ bạn cần để **cách chạy OCR** trên mẫu quét: khởi tạo engine, tải ảnh, thực hiện nhận dạng, và xử lý kết quả một cách thông minh. Chỉ với vài dòng Java, bạn có thể **trích xuất văn bản từ hình ảnh**, **nhận dạng văn bản từ mẫu**, và **đọc hình ảnh cho OCR** với các điểm tin cậy giúp bạn quyết định khi nào cần kiểm tra bằng con người. + +Bước tiếp theo? Thử thay JPEG bằng TIFF đa trang, thử nghiệm các ngưỡng tin cậy khác nhau, hoặc tích hợp đầu ra vào cơ sở dữ liệu để tự động nhập dữ liệu. Khả năng là vô hạn tùy thuộc vào các tài liệu bạn cần xử lý. + +Có thêm câu hỏi về OCR, tiền xử lý ảnh, hay giấy phép? Để 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/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md b/ocr/vietnamese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md new file mode 100644 index 000000000..62db9f492 --- /dev/null +++ b/ocr/vietnamese/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-05-03 +description: Cách sử dụng OCR để trích xuất văn bản từ các tệp PDF trong Java. Học + cách nhận dạng văn bản từ PDF, chuyển PDF sang văn bản và xử lý PDF đa trang bằng + OCR một cách hiệu quả. +draft: false +keywords: +- how to use ocr +- extract text from pdf +- recognize text from pdf +- convert pdf to text +- ocr multi page pdf +language: vi +og_description: Cách sử dụng OCR để trích xuất văn bản từ các tệp PDF trong Java. + Hướng dẫn này chỉ cách nhận dạng văn bản từ PDF, chuyển PDF sang văn bản và xử lý + OCR cho PDF đa trang. +og_title: Cách sử dụng OCR trong Java – Trích xuất văn bản từ PDF đa trang +tags: +- ocr +- java +- pdf +- aspose +title: Cách sử dụng OCR trong Java – Trích xuất văn bản từ PDF đa trang +url: /vi/python-java/general/how-to-use-ocr-in-java-extract-text-from-multi-page-pdfs/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Sử Dụng OCR trong Java – Trích Xuất Văn Bản từ PDF Đa Trang + +**Cách sử dụng OCR** trong một dự án Java? Nếu bạn từng cần trích xuất văn bản từ các tệp PDF mà không dựa vào lớp văn bản nội bộ của PDF, bạn đang ở đúng chỗ. Hướng dẫn này sẽ dẫn bạn qua một giải pháp hoàn chỉnh, có thể chạy được, **nhận dạng văn bản từ PDF**, chuyển PDF sang văn bản, và thậm chí xử lý một **OCR đa trang PDF** chỉ với một lần gọi. + +Hãy tưởng tượng bạn nhận được một hợp đồng đã quét — một tệp TIFF 12 trang nằm trong PDF. Bạn muốn có văn bản có thể tìm kiếm để lập chỉ mục, nhưng tệp không có ký tự nhúng. Không vấn đề gì; chúng tôi sẽ chỉ cho bạn cách thực hiện, từng bước một. + +> **Bạn sẽ nhận được:** một đoạn mã Java sẵn sàng chạy sử dụng Aspose.OCR, giải thích lý do mỗi dòng quan trọng, mẹo tránh các lỗi thường gặp, và mẫu đầu ra bạn có thể kiểm tra ngay lập tức. + +--- + +## Những Điều Bạn Cần Chuẩn Bị + +Trước khi bắt đầu, hãy chắc chắn bạn có: + +* **Java 17** (hoặc bất kỳ JDK hiện đại nào) – mã hoạt động với các phiên bản cũ hơn, nhưng 17 là lựa chọn tối ưu. +* Thư viện **Aspose OCR for Java** – bạn có thể tải JAR từ trang Aspose hoặc thêm qua Maven/Gradle. +* Một **PDF đa trang** (hoặc TIFF) mà bạn muốn xử lý. Trong các ví dụ chúng tôi sẽ dùng `contract_multipage.pdf` đặt trong thư mục có tên `YOUR_DIRECTORY`. +* Tệp **giấy phép Aspose OCR** hợp lệ (`Aspose.OCR.Java.lic`). Nếu không có, thư viện sẽ chạy ở chế độ đánh giá, vẫn được nhưng sẽ có watermark. + +Đó là tất cả—không cần engine OCR bổ sung, không cần binary gốc, chỉ một JAR và giấy phép. + +--- + +![cách sử dụng ocr ví dụ](https://example.com/ocr-demo.png "Cách sử dụng OCR trong Java – tổng quan trực quan quy trình") + +*Văn bản thay thế hình ảnh: cách sử dụng OCR trong Java – tổng quan trực quan về việc tải, nhận dạng và xuất văn bản.* + +--- + +## Bước 1: Thiết Lập Engine OCR – **Cách Sử Dụng OCR** Đúng Cách + +Điều đầu tiên bạn phải làm là tạo một thể hiện của engine OCR và áp dụng giấy phép của bạn. Nếu không có giấy phép, engine vẫn hoạt động nhưng bạn sẽ thấy watermark bản dùng thử trong kết quả. + +```java +// Import the Aspose OCR package +import com.aspose.ocr.*; + +public class OcrPdfDemo { + public static void main(String[] args) { + // 1️⃣ Create the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // 2️⃣ Apply your license – replace the path with your actual .lic file + ocrEngine.setLicense(new License().setLicense("Aspose.OCR.Java.lic")); +``` + +**Tại sao điều này quan trọng:** +`OcrEngine` là đối tượng cốt lõi điều phối phân tích hình ảnh, phát hiện ngôn ngữ và trích xuất văn bản. Đặt giấy phép sớm ngăn engine chuyển sang chế độ dùng thử sau này, điều có thể ảnh hưởng đến độ chính xác. + +--- + +## Bước 2: Tải Tài Liệu – **Trích Xuất Văn Bản từ PDF** Một Cách Hiệu Quả + +Aspose OCR có thể đọc trực tiếp cả container PDF và TIFF. Ở đây chúng ta tải một PDF đa trang chứa các hình ảnh đã quét. + +```java + // 3️⃣ Load a multi‑page PDF (or TIFF) from disk + PdfDocument pdfDoc = PdfDocument.fromFile("YOUR_DIRECTORY/contract_multipage.pdf"); +``` + +**Tại sao điều này quan trọng:** +`PdfDocument.fromFile` phân tích container và cho bạn truy cập mỗi trang dưới dạng hình ảnh. Lớp trừu tượng này cho phép engine OCR xử lý mọi trang một cách đồng nhất, bất kể định dạng gốc. + +**Mẹo:** Nếu tệp nguồn của bạn là TIFF, cùng một lệnh gọi vẫn hoạt động—Aspose tự động phát hiện định dạng. Không cần mã bổ sung. + +--- + +## Bước 3: Nhận Dạng Tất Cả Các Trang Cùng Lần – **Nhận Dạng Văn Bản từ PDF** Một Cách Mượt Mà + +Thay vì tự vòng lặp qua các trang, bạn có thể yêu cầu engine xử lý toàn bộ tài liệu trong một lần gọi. Đây là cách hiệu quả nhất để **chuyển PDF sang văn bản** khi làm việc với một **OCR đa trang PDF**. + +```java + // 4️⃣ Recognize text on all pages with a single method call + List recognizedPages = ocrEngine.recognizeDocument(pdfDoc); +``` + +**Tại sao điều này quan trọng:** +Gọi `recognizeDocument` một lần giảm tải do việc khởi tạo engine lặp đi lặp lại. Nó cũng đảm bảo các cài đặt ngôn ngữ đồng nhất trên mọi trang, điều quan trọng đối với các tài liệu pháp lý thường pha trộn nhiều phông chữ. + +--- + +## Bước 4: Xuất Văn Bản Đã Nhận Dạng – **Chuyển PDF sang Văn Bản** Để Lập Chỉ Mục + +Bây giờ mọi trang đã được xử lý, chúng ta chỉ cần duyệt qua kết quả và in ra các chuỗi đã trích xuất. Bạn cũng có thể ghi chúng vào tệp, cơ sở dữ liệu, hoặc đưa vào chỉ mục tìm kiếm. + +```java + // 5️⃣ Loop through each page's result and print the text + for (int i = 0; i < recognizedPages.size(); i++) { + OcrPageResult pageResult = recognizedPages.get(i); + System.out.println("--- Page " + (i + 1) + " ---"); + System.out.println(pageResult.getText()); + } + } +} +``` + +**Kết quả mong đợi (rút gọn):** + +``` +--- Page 1 --- +THIS AGREEMENT is made on the 1st day of January 2024... +--- Page 2 --- +WHEREAS, the Parties desire to... +... +``` + +Nếu PDF có 12 trang, bạn sẽ thấy 12 phần `--- Page X ---`, mỗi phần theo sau là văn bản được OCR trích xuất. + +--- + +## Mẹo Nâng Cao cho **OCR Đa Trang PDF** + +### 1. Điều Chỉnh Cài Đặt Ngôn Ngữ + +Mặc định Aspose sẽ tự động phát hiện ngôn ngữ, nhưng bạn có thể tăng tốc bằng cách chỉ định trước: + +```java +ocrEngine.getLanguage().setLanguage(Language.ENGLISH); +``` + +### 2. Kiểm Soát Tiền Xử Lý Hình Ảnh + +Các hợp đồng đã quét thường có nhiễu. Bạn có thể bật cân bằng nghiêng và nhị phân hoá: + +```java +ocrEngine.getImageProcessingOptions() + .setDeskew(true) + .setBinarization(true); +``` + +### 3. Xử Lý Tệp Lớn Một Cách Thông Minh + +Nếu bạn đang xử lý các PDF lớn hơn 100 MB, hãy cân nhắc streaming các trang thay vì tải toàn bộ tài liệu một lúc: + +```java +for (int pageNum = 1; pageNum <= pdfDoc.getPageCount(); pageNum++) { + OcrPageResult result = ocrEngine.recognizePage(pdfDoc.getPage(pageNum)); + // process result... +} +``` + +Mô hình này giảm áp lực bộ nhớ và hữu ích cho các công việc batch. + +### 4. Xuất Sang Định Dạng Có Cấu Trúc + +Ngoài văn bản thuần, bạn có thể xuất sang JSON hoặc XML để xử lý tiếp theo: + +```java +String json = pageResult.toJson(); +System.out.println(json); +``` + +--- + +## Các Sai Lầm Thường Gặp & Cách Tránh + +| Sai Lầm | Nguyên Nhân | Giải Pháp | +|---------|-------------|----------| +| **Kết quả trống** | Chưa áp dụng giấy phép hoặc đường dẫn tệp sai. | Kiểm tra lại đường dẫn `setLicense` và xác nhận tệp tồn tại. | +| **Ký tự rác** | Cài đặt ngôn ngữ sai hoặc nguồn có độ phân giải thấp. | Đặt đúng `Language` và đảm bảo hình ảnh nguồn ≥300 dpi. | +| **Lỗi hết bộ nhớ** | Tải một PDF khổng lồ toàn bộ một lúc. | Sử dụng cách streaming đã nêu ở trên. | +| **Nhận dạng một phần trang** | PDF chứa lớp raster và vector hỗn hợp. | Làm phẳng PDF trước: `pdfDoc.flatten();` trước khi OCR. | + +--- + +## Tóm Tắt – Những Điều Chúng Ta Đã Bao Quát + +* **Cách sử dụng OCR** với Aspose trong Java. +* **Trích xuất văn bản từ PDF** (hoặc TIFF) trong một lần gọi. +* **Nhận dạng văn bản từ PDF** trên tất cả các trang mà không cần vòng lặp thủ công. +* **Chuyển PDF sang văn bản** và xuất ra một cách sạch sẽ. +* Mẹo xử lý **OCR đa trang PDF**, bao gồm tinh chỉnh ngôn ngữ và streaming thân thiện với bộ nhớ. + +Bạn giờ đã có một đoạn mã hoàn chỉnh, sẵn sàng cho môi trường production, có thể chèn vào bất kỳ dự án Java nào. Tự do tùy chỉnh các tùy chọn tiền xử lý hình ảnh, thay đổi đích xuất, hoặc tích hợp kết quả vào chỉ mục tìm kiếm. + +--- + +## Bước Tiếp Theo + +* **Khám phá các tính năng nâng cao của Aspose OCR** – như nhận dạng chữ viết tay hoặc tuân thủ PDF/A. +* **Kết hợp OCR với thao tác PDF** (ví dụ: thêm lớp văn bản ẩn trở lại PDF để tạo PDF có thể tìm kiếm). +* **Tự động hoá xử lý batch** bằng cách đọc một thư mục các PDF và ghi mỗi kết quả vào tệp `.txt` tương ứng. + +Nếu gặp bất kỳ khó khăn nào, diễn đàn Aspose là nơi tốt để đặt câu hỏi, và tài liệu API cung cấp chi tiết đầy đủ về mọi phương thức được sử dụng ở đây. + +Chúc lập trình vui vẻ, và tận hưởng việc biến những bản scan cứng đầu thành văn bản 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/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md b/ocr/vietnamese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md new file mode 100644 index 000000000..651693746 --- /dev/null +++ b/ocr/vietnamese/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-05-03 +description: Đọc tệp nhị phân Java để tải giấy phép Aspose OCR. Tìm hiểu cách sử dụng + FileInputStream, xử lý dữ liệu nhị phân và các mẹo thực tế trong hướng dẫn từng + bước này. +draft: false +keywords: +- read binary file java +- Java FileInputStream +- read license file Java +- binary data handling Java +- Aspose OCR Java +language: vi +og_description: Đọc tệp nhị phân Java để tải giấy phép Aspose OCR. Theo dõi hướng + dẫn đầy đủ này để thành thạo FileInputStream và xử lý dữ liệu nhị phân trong Java. +og_title: Đọc tệp nhị phân Java – Tải byte giấy phép cho Aspose OCR +tags: +- Java +- File I/O +- OCR +title: Đọc tệp nhị phân Java – Tải byte giấy phép cho Aspose OCR +url: /vi/python-java/general/read-binary-file-java-load-license-bytes-for-aspose-ocr/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Đọc Tệp Nhị Phân Java – Tải Byte Giấy Phép cho Aspose OCR + +Bạn đã bao giờ cần **đọc tệp nhị phân Java** khi làm việc với giấy phép của một thư viện bên thứ ba chưa? Bạn không phải là người duy nhất. Hầu hết các lập trình viên Java đều gặp khó khăn này khi cố gắng đưa một tệp `.lic` vào engine OCR, và các thủ thuật với tệp văn bản thông thường không hiệu quả. + +Trong tutorial này, chúng ta sẽ đi qua một ví dụ hoàn chỉnh, có thể chạy được, cho thấy cách mở một tệp giấy phép nhị phân, lấy các byte của nó vào bộ nhớ, và truyền các byte đó cho Aspose OCR for Java. Trong quá trình thực hiện, bạn sẽ hiểu tại sao `FileInputStream` là công cụ phù hợp, cách xử lý các `IOException` có thể xảy ra, và một vài mẹo chuyên nghiệp mà bạn có thể chưa thấy trong tài liệu chính thức. + +Kết thúc hướng dẫn, bạn sẽ có thể **đọc tệp nhị phân Java** một cách dễ dàng, tạo một đối tượng `License`, và gán nó cho một `OcrEngine` mà không gặp khó khăn nào. + +## Những Điều Hướng Dẫn Này Bao Quát + +- Yêu cầu trước: Java 17+, Maven (hoặc Gradle), và thư viện Aspose OCR for Java. +- Mã từng bước đọc tệp `.lic` nhị phân bằng `FileInputStream`. +- Giải thích từng dòng để bạn hiểu *tại sao* phía sau *cách thực hiện*. +- Xử lý các trường hợp biên (tệp thiếu, byte bị hỏng) và các mẹo gỡ lỗi thực tế. +- Đoạn mã cuối cùng, tự chứa, bạn có thể sao chép‑dán vào IDE và chạy ngay lập tức. + +Nếu bạn từng tự hỏi liệu có cần một API đặc biệt để đọc tệp giấy phép không, câu trả lời là **không**—chỉ cần I/O nhị phân truyền thống. Hãy cùng bắt đầu. + +## Bước 1: Đọc Tệp Nhị Phân Java bằng FileInputStream + +Điều đầu tiên chúng ta cần là một cách đáng tin cậy để lấy các byte thô từ tệp giấy phép trên đĩa. Trong Java, `FileInputStream` là công cụ chính cho việc này. + +```java +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.nio.file.Files; + +/** + * Reads the entire content of a binary file into a byte array. + * + * @param path the absolute or relative path to the .lic file + * @return a byte[] containing the file's raw bytes + * @throws IOException if the file cannot be read + */ +public static byte[] readBinaryFile(String path) throws IOException { + File file = new File(path); + // Defensive check – give a clear message if the file is missing. + if (!file.exists()) { + throw new IOException("License file not found at: " + path); + } + + // Using Files.readAllBytes is concise and handles buffering internally. + // It also throws IOException if something goes wrong. + return Files.readAllBytes(file.toPath()); +} +``` + +**Tại sao cách này hoạt động:** `Files.readAllBytes` bên trong tạo một `FileInputStream`, đọc toàn bộ luồng, và tự động đóng nó cho bạn. Nó an toàn, ngắn gọn, và tránh được lỗi “quên đóng luồng”. Nếu bạn thích cách cổ điển, có thể thay thế bằng khối `try‑with‑resources` sử dụng trực tiếp `FileInputStream`. + +### Mẹo chuyên nghiệp + +Nếu tệp giấy phép rất lớn (hiếm khi xảy ra, nhưng có thể), hãy cân nhắc đọc theo từng khối thay vì tải toàn bộ một lần. Đối với hầu hết các tệp giấy phép OCR—thường dưới vài kilobyte—cách đọc một lần là hoàn toàn ổn. + +## Bước 2: Tạo Đối Tượng License cho Aspose OCR + +Bây giờ chúng ta đã có các byte thô, cần chuyển chúng thành một instance `License` tương thích với Aspose. Thư viện cung cấp lớp `License` nhận một mảng byte. + +```java +import com.aspose.ocr.License; + +/** + * Constructs a License object from a byte array. + * + * @param licenseBytes the raw bytes of the .lic file + * @return a configured License instance + */ +public static License createLicense(byte[] licenseBytes) { + License license = new License(); + // The setLicenseBytes method tells Aspose to use the in‑memory license. + license.setLicenseBytes(licenseBytes); + return license; +} +``` + +**Tại sao điều này quan trọng:** Bằng cách truyền trực tiếp các byte, bạn tránh được các vấn đề liên quan đến đường dẫn (như nhầm lẫn thư mục làm việc) và giữ cho việc triển khai của bạn di động—chỉ cần đóng gói tệp `.lic` cùng với ứng dụng. + +## Bước 3: Gán License cho OCR Engine + +Với đối tượng `License` đã sẵn sàng, bước cuối cùng là gắn nó vào một `OcrEngine`. Bước này đảm bảo thành phần OCR chạy ở chế độ có giấy phép thay vì chế độ đánh giá. + +```java +import com.aspose.ocr.OcrEngine; + +/** + * Initializes the OCR engine and applies the license. + * + * @param license the License object created from binary data + * @return a ready‑to‑use OcrEngine instance + */ +public static OcrEngine initializeEngine(License license) { + OcrEngine ocrEngine = new OcrEngine(); + // Direct assignment – the engine now knows it’s licensed. + ocrEngine.setLicense(license); + return ocrEngine; +} +``` + +> **Lưu ý:** Một số phiên bản Aspose cũ hơn cung cấp trường công khai `license` thay vì một setter. Điều chỉnh mã cho phù hợp (`ocrEngine.license = license;`) nếu bạn gặp lỗi biên dịch. + +## Bước 4: Xác Nhận License Được Tải Thành Công (Tùy Chọn nhưng Hữu Ích) + +Một kiểm tra nhanh có thể tiết kiệm hàng giờ gỡ lỗi sau này. Lớp `License` không ném ngoại lệ khi thành công, nhưng bạn có thể thực hiện một thao tác OCR không gây hại để xác nhận. + +```java +public static void verifyLicense(OcrEngine engine) { + try { + // Perform a dummy OCR on a tiny black image; it should succeed without a license error. + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } +} +``` + +Nếu bạn thấy thông báo “License applied successfully”, mọi thứ đã sẵn sàng. Nếu không, hãy kiểm tra lại đường dẫn tệp, tính toàn vẹn của byte, và chắc chắn bạn đang dùng phiên bản Aspose đúng. + +## Ví Dụ Hoàn Chỉnh + +Kết hợp tất cả các phần lại sẽ cho ra một chương trình ngắn gọn, sẵn sàng sao chép‑dán. Bạn có thể đặt đoạn mã này vào file `Main.java` và chạy. + +```java +import java.io.IOException; +import com.aspose.ocr.License; +import com.aspose.ocr.OcrEngine; + +public class LicenseLoader { + + public static void main(String[] args) { + // Adjust this path to point at your actual license file. + String licensePath = "YOUR_DIRECTORY/Aspose.OCR.Java.lic"; + + try { + // Step 1: Read the binary license file. + byte[] licenseBytes = readBinaryFile(licensePath); + + // Step 2: Create the License object. + License license = createLicense(licenseBytes); + + // Step 3: Initialize the OCR engine with the license. + OcrEngine ocrEngine = initializeEngine(license); + + // Step 4: Optional verification. + verifyLicense(ocrEngine); + + } catch (IOException e) { + System.err.println("Failed to load license file: " + e.getMessage()); + } catch (Exception ex) { + System.err.println("Unexpected error: " + ex.getMessage()); + } + } + + // ----- Helper methods from previous sections ----- + public static byte[] readBinaryFile(String path) throws IOException { + // Implementation from Step 1 + return java.nio.file.Files.readAllBytes(new java.io.File(path).toPath()); + } + + public static License createLicense(byte[] licenseBytes) { + // Implementation from Step 2 + License license = new License(); + license.setLicenseBytes(licenseBytes); + return license; + } + + public static OcrEngine initializeEngine(License license) { + // Implementation from Step 3 + OcrEngine engine = new OcrEngine(); + engine.setLicense(license); + return engine; + } + + public static void verifyLicense(OcrEngine engine) { + // Implementation from Step 4 + try { + engine.processImage("path/to/blank.png"); + System.out.println("License applied successfully – OCR engine is ready."); + } catch (Exception e) { + System.err.println("License verification failed: " + e.getMessage()); + } + } +} +``` + +**Kết quả mong đợi (giả sử ảnh mẫu tồn tại):** + +``` +License applied successfully – OCR engine is ready. +``` + +Nếu tệp giấy phép bị thiếu hoặc hỏng, bạn sẽ nhận được thông báo lỗi rõ ràng như: + +``` +Failed to load license file: License file not found at: YOUR_DIRECTORY/Aspose.OCR.Java.lic +``` + +## Những Sai Lầm Thường Gặp & Cách Tránh + +- **Nhầm lẫn đường dẫn:** Đường dẫn tương đối được giải quyết dựa trên thư mục làm việc của JVM, không phải vị trí file nguồn. Hãy dùng đường dẫn tuyệt đối hoặc đặt tệp `.lic` cùng thư mục JAR và truy cập bằng `getResourceAsStream`. +- **Thứ tự byte sai:** Đừng bao giờ cố đọc tệp nhị phân bằng `Reader` (dành cho ký tự). Điều này sẽ làm hỏng dữ liệu. Hãy luôn sử dụng các API dựa trên `FileInputStream`. +- **Phiên bản không khớp:** Một số bản Aspose cũ hơn yêu cầu `license.setLicense("path/to/file")` thay vì `setLicenseBytes`. Kiểm tra notes phát hành của thư viện nếu gặp `NoSuchMethodError`. +- **Quên đóng luồng:** Nếu bạn quay lại cách `FileInputStream` cổ điển, hãy bọc nó trong khối `try‑with‑resources` để đảm bảo luồng được đóng. + +## Kết Luận + +Bây giờ bạn đã biết cách **đọc tệp nhị phân Java** để tải giấy phép Aspose OCR, tạo đối tượng `License`, và kết nối nó với `OcrEngine`. Quy trình dựa trên việc xử lý dữ liệu nhị phân đúng cách bằng `FileInputStream` (hoặc `Files.readAllBytes` hiện đại), và một vài lời gọi API đơn giản. + +Từ đây, bạn có thể tiến tới các nhiệm vụ OCR thực tế—trích xuất văn bản từ PDF, ảnh, hoặc tài liệu quét—với sự yên tâm rằng lớp giấy phép sẽ không gây rắc rối. Nếu bạn quan tâm đến các chủ đề liên quan, hãy xem các tutorial về **Java FileInputStream**, **binary data handling Java**, và **read license file Java** cho các thư viện khác. + +Chúc lập trình vui vẻ, và hy vọng kết quả OCR của bạn sẽ luôn rõ nét! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/ocr/vietnamese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md b/ocr/vietnamese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md new file mode 100644 index 000000000..e626f69c0 --- /dev/null +++ b/ocr/vietnamese/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-05-03 +description: Tìm hiểu cách nhận dạng văn bản từ hình ảnh và chuyển đổi hình ảnh thành + văn bản bằng Aspose OCR cho Java. Bao gồm các mẹo để cải thiện độ chính xác của + OCR và chạy OCR trên các tệp PNG. +draft: false +keywords: +- recognize text from image +- convert image to text +- improve ocr accuracy +- load image for ocr +- run ocr on png +language: vi +og_description: Hướng dẫn từng bước để nhận dạng văn bản từ hình ảnh bằng Aspose OCR + cho Java. Tìm hiểu cách chuyển đổi hình ảnh thành văn bản, cải thiện độ chính xác + của OCR và chạy OCR trên PNG. +og_title: Nhận dạng văn bản từ hình ảnh bằng Aspose OCR – Hướng dẫn Java +tags: +- OCR +- Java +- Aspose +- Image Processing +title: Nhận dạng văn bản từ hình ảnh bằng Aspose OCR – Hướng dẫn Java toàn diện +url: /vi/python-java/general/recognize-text-from-image-with-aspose-ocr-complete-java-guid/ +--- + +{{< 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ừ hình ảnh với Aspose OCR – Hướng dẫn Java đầy đủ + +Bạn đã bao giờ cần **recognize text from image** nhưng không chắc thư viện nào sẽ cho kết quả đáng tin cậy? 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 cố gắng trích xuất dữ liệu từ các PDF đã quét, biên lai, hoặc báo cáo phòng thí nghiệm. Tin tốt là Aspose OCR cho Java làm cho toàn bộ quá trình trở nên dễ dàng, và bạn thậm chí có thể **convert image to text** chỉ với vài dòng mã. + +Trong hướng dẫn này, chúng tôi sẽ đi qua mọi thứ bạn cần biết: từ việc tải hình ảnh cho OCR, điều chỉnh cài đặt để **improve OCR accuracy**, đến cuối cùng **run OCR on PNG** các tệp và in ra văn bản đã trích xuất. Không có phần thừa, chỉ có một ví dụ thực tế, có thể chạy được mà bạn có thể đưa vào dự án ngay hôm nay. + +--- + +## Những gì bạn cần + +Trước khi chúng ta bắt đầu, hãy chắc chắn rằng bạn có những thứ sau trên máy của mình: + +| Yêu cầu | Lý do | +|--------------|--------| +| Java 17 (hoặc mới hơn) | Aspose OCR hỗ trợ Java 8+, nhưng JDK mới nhất mang lại hiệu năng tốt hơn. | +| Aspose OCR for Java library (`aspose-ocr.jar`) | Công cụ lõi thực hiện các tác vụ nặng. | +| A valid Aspose OCR license file (`Aspose.OCR.Java.lic`) | Kích hoạt đầy đủ các tính năng; nếu không sẽ nhận được watermark bản dùng thử. | +| An image file (PNG, JPEG, TIFF, etc.) containing clear text | Chúng tôi sẽ sử dụng `lab_report.png` làm ví dụ cụ thể. | +| A custom dictionary (optional) | Cải thiện nhận dạng cho các thuật ngữ chuyên ngành như “hemoglobin”. | + +Nếu bất kỳ mục nào ở trên nghe lạ, đừng hoảng sợ—cài đặt một JAR và tạo một tệp văn bản đơn giản là những việc dễ dàng mà chúng tôi sẽ đề cập ngay sau đây. + +## Bước 1 – Thiết lập dự án và nhập các phụ thuộc + +Đầu tiên, tạo một dự án Maven (hoặc Gradle) mới và thêm phụ thuộc Aspose OCR. Người dùng Maven có thể dán đoạn mã này vào file `pom.xml` của họ: + +```xml + + com.aspose + aspose-ocr + 23.10 + +``` + +Nếu bạn thích Gradle, tương đương là: + +```groovy +implementation 'com.aspose:aspose-ocr:23.10' +``` + +> **Mẹo:** Hãy chú ý đến số phiên bản; các bản phát hành mới thường chứa các bản sửa lỗi ảnh hưởng trực tiếp đến **improve OCR accuracy**. + +Bây giờ, tạo một lớp Java có tên `OcrDemo.java`. Ở đầu file, nhập các lớp cần thiết: + +```java +import com.aspose.ocr.OcrEngine; +import com.aspose.ocr.License; +import com.aspose.ocr.Image; +import com.aspose.ocr.OcrResult; +``` + +## Bước 2 – Khởi tạo Engine OCR và áp dụng giấy phép + +Bạn không thể **run OCR on PNG** các tệp nếu chưa thông báo cho engine rằng nó đã được cấp phép. Đây là cách thực hiện: + +```java +public class OcrDemo { + public static void main(String[] args) { + // Initialize the OCR engine + OcrEngine ocrEngine = new OcrEngine(); + + // Apply your license – replace the path with your actual license location + License lic = new License(); + lic.setLicense("YOUR_DIRECTORY/Aspose.OCR.Java.lic"); + ocrEngine.setLicense(lic); +``` + +Tại sao lại có đối tượng `License` bổ sung? Aspose tách việc xử lý giấy phép ra khỏi engine để cho phép bạn chuyển đổi giấy phép một cách linh hoạt, điều này hữu ích trong các kịch bản SaaS đa người dùng. + +## Bước 3 – Tải từ điển tùy chỉnh (Tùy chọn nhưng mạnh mẽ) + +Nếu bạn đang làm việc với thuật ngữ y tế, công thức hoá học, hoặc tên thương hiệu, một từ điển tùy chỉnh có thể **improve OCR accuracy** một cách đáng kể. Từ điển là một tệp văn bản thuần với mỗi từ trên một dòng: + +```java + // Optional: improve accuracy with a custom dictionary + // Create a file named custom_dictionary.txt in YOUR_DIRECTORY + ocrEngine.getConfig().setCustomDictionary("YOUR_DIRECTORY/custom_dictionary.txt"); +``` + +> **Tại sao nó hoạt động:** Engine OCR sử dụng từ điển để điều chỉnh mô hình ngôn ngữ về phía các từ bạn quan tâm, giảm các nhận dạng sai như “hemo­globin” → “hemoglobin”. + +Nếu bạn không có từ điển, chỉ cần bỏ qua dòng này—Aspose vẫn hoạt động tốt với các gói ngôn ngữ tích hợp. + +## Bước 4 – Tải hình ảnh bạn muốn xử lý + +Bây giờ chúng ta thực sự **load image for OCR**. Aspose hỗ trợ nhiều định dạng, nhưng PNG đặc biệt không mất dữ liệu, là lựa chọn an toàn cho tài liệu đã quét. + +```java + // Load the PNG image containing the text you want to extract + Image inputImage = Image.fromFile("YOUR_DIRECTORY/lab_report.png"); +``` + +> **Trường hợp đặc biệt:** Nếu hình ảnh của bạn quá lớn (hơn 5 MB), hãy cân nhắc giảm kích thước trước để tăng tốc xử lý. Lớp `Image` cung cấp phương thức `resize` mà bạn có thể gọi trước khi nhận dạng. + +## Bước 5 – Chạy quá trình OCR và lấy văn bản + +Với mọi thứ đã sẵn sàng, khởi động engine OCR. Phương thức `recognize` trả về một đối tượng `OcrResult` chứa chuỗi đã trích xuất, điểm tin cậy, và thậm chí các hộp bao quanh nếu bạn cần thông tin bố cục. + +```java + // Perform OCR on the loaded image + OcrResult result = ocrEngine.recognize(inputImage); + + // Print the extracted text to the console + System.out.println("=== Extracted Text ==="); + System.out.println(result.getText()); + } +} +``` + +Khi bạn chạy chương trình, bạn sẽ thấy kết quả tương tự: + +``` +=== Extracted Text === +Patient Name: John Doe +Hemoglobin: 13.5 g/dL +... +``` + +Xong rồi—bạn đã thành công **recognize text from image** và **convert image to text** bằng Aspose OCR. + +## Bước 6 – Những lỗi thường gặp và cách khắc phục + +Ngay cả với một thư viện vững chắc, một vài trục trặc vẫn có thể làm bạn bối rối: + +| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục | +|---------|--------------|-----| +| Kết quả trống | Giấy phép chưa được áp dụng hoặc đã hết hạn | Kiểm tra đường dẫn tới `Aspose.OCR.Java.lic` và đảm bảo nó phù hợp với phiên bản. | +| Ký tự bị rối | Hình ảnh độ phân giải thấp hoặc nén mạnh | Sử dụng nguồn hình ảnh độ phân giải cao hơn hoặc tiền xử lý hình ảnh (nhị phân hoá, chỉnh thẳng). | +| Thiếu các từ chuyên ngành | Không có từ điển tùy chỉnh | Thêm tệp từ điển chứa các thuật ngữ thiếu, mỗi dòng một từ. | +| Xử lý chậm khi batch lớn | Không có đa luồng | Tạo một pool các instance `OcrEngine` (chúng an toàn với đa luồng) và xử lý hình ảnh song song. | + +## Bước 7 – Mở rộng ví dụ: Lưu kết quả vào tệp + +Nếu bạn cần lưu văn bản đã trích xuất để phân tích sau, chỉ cần ghi nó vào một tệp: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + +// ... + + // Save the text to a .txt file + Files.write(Paths.get("output.txt"), + result.getText().getBytes(StandardCharsets.UTF_8)); + System.out.println("Text saved to output.txt"); +``` + +Bây giờ bạn có một pipeline có thể tái sử dụng mà **load image for OCR**, trích xuất nội dung và lưu nó ở bất kỳ nơi nào bạn muốn. + +## Bonus: Chạy OCR trên nhiều tệp PNG trong một thư mục + +Các dự án thực tế thường cần xử lý hàng chục bản quét. Dưới đây là một vòng lặp nhanh lấy mọi tệp `.png` trong một thư mục: + +```java +import java.io.File; + +// ... + + File folder = new File("YOUR_DIRECTORY/scans"); + File[] pngFiles = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".png")); + + for (File png : pngFiles) { + Image img = Image.fromFile(png.getAbsolutePath()); + OcrResult res = ocrEngine.recognize(img); + System.out.println("---- " + png.getName() + " ----"); + System.out.println(res.getText()); + } +``` + +Hãy nhớ tái sử dụng cùng một instance `ocrEngine`—tạo mới cho mỗi tệp sẽ gây tốn tài nguyên không cần thiết. + +## Kết luận + +Bạn giờ đã có một giải pháp đầy đủ tính năng, từ đầu đến cuối để **recognize text from image** bằng Aspose OCR cho Java. Từ việc tải hình ảnh, tùy chọn nâng cao engine bằng từ điển tùy chỉnh để **improve OCR accuracy**, cho tới **run OCR on PNG** các tệp và lưu kết quả, mã đã sẵn sàng để tích hợp vào bất kỳ dự án Java nào. + +Tiếp theo là gì? Hãy thử đưa văn bản đã trích xuất vào một pipeline xử lý ngôn ngữ tự nhiên, hoặc thử nghiệm OCR trên ghi chú viết tay (Aspose cũng cung cấp chế độ handwriting). Các khả năng là vô hạn, và bạn vừa mở khóa bước đầu tiên. + +Chúc lập trình vui vẻ! Nếu bạn gặp bất kỳ khó khăn nào, hãy để lại bình luận bên dưới—cùng nhau giải quyết. + +![Screenshot of OCR result in console – recognize text from image](/images/ocr_console_result.png "recognize text from image 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