![ทำ OCR โดยใช้ C++](images/Perform-OCR-using-C.jpg#center)
เทคโนโลยี OCR (การรู้จำอักขระด้วยแสง) ช่วยให้คุณอ่านและแปลงข้อความในรูปภาพหรือเอกสารที่สแกนเป็นรูปแบบที่เครื่องอ่านได้ OCR มีกรณีการใช้งานที่หลากหลาย ซึ่งรวมถึงการอ่านรหัสจากบัตรกำนัล ทำให้ข้อความสามารถแก้ไขได้ ร้านค้าแบบบริการตนเอง การแปลงเอกสารที่พิมพ์เป็นรูปแบบดิจิทัล และอื่นๆ มีเครื่องมือและไลบรารี OCR มากมายในท้องตลาด อย่างไรก็ตาม ความน่าเชื่อถือของผลลัพธ์ OCR เป็นปัจจัยสำคัญ ในบทความนี้ ฉันจะแสดงวิธีสร้างแอปพลิเคชัน OCR ของคุณเองและแปลงรูปภาพเป็นข้อความโดยใช้ภาษา C++
- ไลบรารี C ++ OCR เพื่อแปลงรูปภาพเป็นข้อความ
- แปลงหน้ารูปภาพเป็นข้อความโดยใช้ C++
- ดำเนินการ OCR สำหรับรูปภาพที่มีบรรทัดเดียวโดยใช้ C ++
- แปลงพื้นที่เฉพาะของรูปภาพเป็นข้อความใน C++
ไลบรารี C ++ OCR เพื่อแปลงรูปภาพเป็นข้อความ
Aspose เสนอ ไลบรารี C++ OCR อันทรงพลังที่ใช้การเรียนรู้เชิงลึกเพื่อให้ผลลัพธ์ OCR ที่เชื่อถือได้มากขึ้นและใกล้เคียงกับผลลัพธ์ 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 for C++ โดยใช้ เอกสารประกอบ