בצע OCR באמצעות C++

טכנולוגיית OCR(זיהוי תווים אופטי) מאפשרת לך לקרוא ולהמיר את הטקסט בתמונות או במסמכים הסרוקים לצורה הניתנת לקריאה במכונה. ל-OCR מקרי שימוש שונים הכוללים קריאת קודים משוברים, הפיכת הטקסט לניתן לעריכה, חנויות בשירות עצמי, המרת מסמכים מודפסים לפורמטים דיגיטליים וכו’. כלים וספריות OCR שונות זמינים בשוק, עם זאת, מהימנות תוצאות ה-OCR היא גורם מפתח. במאמר זה, אני אראה לך כיצד ליצור יישום OCR משלך ולהמיר תמונות לטקסט באופן פרוגרמטי באמצעות C++.

ספריית C++ OCR להמרת תמונה לטקסט

Aspose מציעה [ספריית OCR C++] רבת עוצמה 2 המשתמשת בלמידה עמוקה כדי לספק לך תוצאות OCR אמינות יותר וקרובות למדויקות. אתה יכול להוריד את קבצי הספרייה וכן פרויקט לדוגמה מ-GitHub.

המרת דף תמונה לטקסט באמצעות C++

תחילה נבדוק את התרחיש שבו התמונה מכילה טקסט מרובה שורות. זה יכול להיות המקרה כאשר יש לך ספר סרוק שבו כל עמוד של הספר מכיל חבורה של שורות טקסט. להלן השלבים להמרת תמונה לטקסט במקרה זה.

  • הגדר את הנתיב של התמונה במשתנה מחרוזת.
  • הכן מאגר לאחסון תוצאות ה-OCR.
  • בצע OCR באמצעות פונקציית aspose::ocr::page(const char \imagepath, wchart \buffer, sizet buffersize).
  • הדפס את התוצאות או שמור אותן בקובץ.

דגימת הקוד הבאה מראה כיצד לבצע OCR ולהמיר תמונה לטקסט באמצעות C++.

std::string image_path = "sample.png";

// הכן מאגר לתוצאה (בסמלים, len_byte = len * sizeof(wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };

// בצע OCR
size_t size = aspose::ocr::page(image_path.c_str(), buffer, len);

//תוצאת הדפסה
std::wcout << buffer << L"\n"; 

בצע OCR עבור תמונה עם קו בודד באמצעות C++

בדוגמה הקודמת, המרנו תמונה בעלת שורות טקסט מרובות. עם זאת, יכול להיות מקרה שהתמונה מכילה רק שורת טקסט בודדת כמו הכיתוב או סיסמה. להלן השלבים לביצוע OCR במקרים כאלה.

  • השתמש במשתנה מחרוזת כדי להגדיר את הנתיב של התמונה.
  • צור מאגר לאחסון תוצאות ה-OCR.
  • בצע OCR באמצעות פונקציית aspose::ocr::line(const char \imagepath, wchart \buffer, sizet buffersize).
  • שמור או הדפס את תוצאות ה-OCR.

דוגמת הקוד הבאה מראה כיצד לבצע OCR בתמונה עם שורת טקסט בודדת באמצעות C++.

std::string image_path = "sample_line.jpg";

// הכן מאגר לתוצאה (בסמלים, len_byte = len * sizeof(wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };

// בצע OCR
size_t size = aspose::ocr::line(image_path.c_str(), buffer, len);

//תוצאת הדפסה
std::wcout << buffer << L"\n";

המר אזור מסוים של תמונה לטקסט ב-C++

אתה יכול גם להתאים אישית את ה-API כדי להגביל את האזור של התמונה שבו אתה רוצה לבצע את ה-OCR. במקרה זה, ניתן ליצור מלבן על התמונה כדי לגשת לאזור הרצוי. להלן השלבים לחילוץ טקסט מאזור מסוים בתמונה.

  • הגדר את הנתיב של התמונה במשתנה מחרוזת.
  • הכן מאגר לאחסון תוצאות ה-OCR.
  • בצע OCR באמצעות פונקציית aspose::ocr::pagerect(const char \imagepath, wchart \buffer, sizet buffersize, int x, int y, int w, int h).
  • הדפס את תוצאות ה-OCR.

דוגמת הקוד הבאה מראה כיצד להמיר אזור מסוים בתמונה לטקסט באמצעות C++.

std::string image_path = "sample_line.jpg";

// הכן מאגר לתוצאה (בסמלים, len_byte = len * sizeof(wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };

int x = 138, y = 352, w = 2033, h = 537;

// בצע OCR או אזור נבחר
size_t size = aspose::ocr::page_rect(image_path.c_str(), buffer, len, x, y, w, h);

//תוצאת הדפסה
std::wcout << buffer << L"\n";

סיכום

במאמר זה, למדת כיצד להשתמש בספריית ה-OCR של Aspose כדי להמיר תמונות לטקסט ב-C++. ראינו כיצד לבצע OCR על תמונה עם שורות טקסט בודדות או מרובות וכן לקרוא טקסט מאזור מסוים בתמונה. אתה יכול ללמוד עוד על Aspose.OCR עבור C++ באמצעות תיעוד.

ראה גם