Free Swift OCR Library to Perform OCR on Scanned Images & PDFs
Open Source Swift Optical Character Recognition (OCR) Library allows to Scan, Recognize, and Extract Text from Camera Photos Scanned Images & PDFs for free inside iOS and macOS
SwiftyTesseract چیست؟
SwiftyTesseract یک کتابخانه پیشرو و منبع باز OCR است که بهطور خاص برای اکوسیستم سوئیفت طراحی شده و به توسعهدهندگان نرمافزار امکان میدهد تشخیص نوری کاراکتر پیشرفته را بهصورت یکپارچه در برنامههای iOS و macOS خود ادغام کنند. با بهرهگیری از موتور قدرتمند و آزمودهشده صنعتی Tesseract OCR، این کتابخانه یک رابط کاربری سوئیفت شهودی و بهینه برای استخراج دقیق متن از تصاویر، اسناد اسکنشده و انواع رسانههای دیجیتال فراهم میکند. این ویژگی آن را به پایهای ایدهآل برای توسعهدهندگانی تبدیل میکند که از ابزارهای ساده خواندن متن تا ابزارهای پیچیده پردازش دادهها را میسازند و به قابلیتهای قابل اعتماد اسکن و شناسایی متن در محیط اپل نیاز دارند.
این کتابخانه ادغام OCR را با بستهبندی عملکردهای Tesseract در یک API ساده و دوستانه برای توسعهدهندگان آسان میکند. از همان ابتدا پشتیبانی گستردهای از چندین زبان را ارائه میدهد—ویژگیای حیاتی برای ساخت برنامههای بینالمللی. برای اطمینان از دقت بالا، SwiftyTesseract قابلیتهای پیشپردازش تصویر ضروری را برای بهبود وضوح متن قبل از شناسایی گنجانده است. علاوه بر این، توسعهدهندگان میتوانند با سفارشیسازی گزینههای پیکربندی کلیدی Tesseract، مانند حالت موتور OCR و حالت تقسیمبندی صفحه، کنترل دقیقتری داشته باشند. ترکیب سادگی استفاده، پشتیبانی چندزبانه و قابلیت سفارشیسازی عمیق، SwiftyTesseract را به ابزاری منحصر بهفرد، چندمنظوره و قدرتمند برای توسعهدهندگان نرمافزار تبدیل میکند که به پروژههای متنوع شناسایی متن میپردازند.
شروع کار با SwiftyTesseract
روش پیشنهادی برای نصب SwiftyTesseract استفاده از CocoaPods است. لطفاً برای نصب آسان، دستور زیر را اجرا کنید.
نصب SwiftyTesseract از طریق CocoaPods
pod 'SwiftyTesseract' همچنین میتوانید بهصورت دستی نصب کنید؛ فایلهای آخرین نسخه را مستقیماً از مخزن GitHub دانلود کنید.
انجام OCR بر روی یک تصویر با کتابخانه سوئیفت
کتابخانه منبع باز SwiftyTesseract کار را برای توسعهدهندگان نرمافزار آسان میکند تا انواع مختلفی از تصاویر را بارگذاری کرده و عملیات OCR را بر اساس نیازهای خود در برنامههای سوئیفت انجام دهند. میتوانید از یک تصویر موجود در داراییهای برنامه یا هر منبع دیگری استفاده کنید. این کتابخانه میتواند متن را در فونتهای مختلف از جمله Serif، Arial، Sans‑serif و فونتهای اسکریپتی شناسایی کند. در ادامه یک قطعه کد نمونه آورده شده است که نشان میدهد چگونه توسعهدهندگان میتوانند متن را از یک تصویر در برنامههای سوئیفت شناسایی کنند.
چگونه متن را از یک تصویر در برنامههای سوئیفت شناسایی کنیم؟
import SwiftyTesseract
// Load the image
let image = UIImage(named: "image.jpg")!
// Create a Tesseract instance
let tesseract = Tesseract()
// Set the language to English
tesseract.language = "eng"
// Set the image
tesseract.image = image
// Recognize the text
tesseract.recognize() { result in
if let text = result.text {
print("Recognized text: \(text)")
} else {
print("Error recognizing text")
}
}
پشتیبانی از پیشپردازش تصویر
کتابخانه SwiftyTesseract پشتیبانی کامل از پیشپردازش تصاویر قبل از انجام عملیات OCR در برنامههای سوئیفت را فراهم میکند. به عنوان مثال میتوانید تصاویر را به مقیاس خاکستری تبدیل کنید، اندازه آنها را تغییر دهید یا کنتراست را تنظیم کنید، تصویر را از انحراف حذف کنید، باینریسازی کنید و غیره. در ادامه مثالی آورده شده است که نشان میدهد چگونه توسعهدهندگان میتوانند قبل از انجام OCR، اندازه تصویر را تغییر دهند. در این مثال کد، تابع resizeImage اندازه تصویر را پیش از پردازش تغییر میدهد که میتواند هنگام کار با تصاویر با وضوح بالا مفید باشد.
چگونه تصاویر را قبل از عملیات OCR در برنامههای سوئیفت پیشپردازش کنیم؟
func resizeImage(_ image: UIImage, newSize: CGSize) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
image.draw(in: CGRect(origin: .zero, size: newSize))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
if let resizedImage = resizeImage(image, newSize: CGSize(width: 300, height: 300)) {
tesseract.performOCR(on: resizedImage) { recognizedText in
print("Resized Image OCR result: \(recognizedText ?? "No text found")")
}
}
عملیات OCR چندزبانه با کتابخانه سوئیفت
کتابخانه منبع باز SwiftyTesseract از شناسایی متن در بیش از ۱۰۰ زبان پشتیبانی میکند، از جمله انگلیسی، اسپانیایی، فرانسوی، آلمانی، چینی و بسیاری دیگر. میتوانید هنگام مقداردهی اولیه کتابخانه، زبانهای مورد نظر خود را تنظیم کنید. این ویژگی دامنه کاربردی آن را برای کاربران بینالمللی و نیازهای پردازش چندزبانه گسترش میدهد. علاوه بر این، توسعهدهندگان میتوانند واژهنامههای سفارشی برای بهبود دقت فرآیند OCR ایجاد کنند. در ادامه نمونهای از پیکربندی کتابخانه برای انگلیسی و اسپانیایی آورده شده است. این کد امکان OCR همزمان در هر دو زبان را فراهم میکند که برای پردازش اسنادی با محتوای ترکیبی مفید است.
چگونه زبانها را برای عملیات OCR چندزبانه در برنامههای سوئیفت انتخاب کنیم؟
let tesseract = SwiftyTesseract(language: [.english, .spanish])
پارامترهای قابل تنظیم OCR
با استفاده از کتابخانه منبع باز SwiftyTesseract، توسعهدهندگان نرمافزار میتوانند تنظیمات OCR را برای بهبود دقت در اسناد یا زبانهای خاص سفارشی کنند. این امکان به توسعهدهندگان اجازه میدهد پردازش OCR را بهدقت تنظیم کنند و کتابخانه را برای سناریوهای منحصر بهفرد یا پیچیده OCR سازگار سازند. این شامل توانایی تعیین زبانها و متغیرهای OCR بر اساس نیازهای سند میشود. در ادامه نمونهای آورده شده است که نشان میدهد چگونه میتوان حالت موتور OCR و حالت تقسیمبندی صفحه را سفارشی کرد.
چگونه حالت موتور OCR و حالت تقسیمبندی صفحه را از طریق API سوئیفت سفارشی کنیم؟
let tesseract = SwiftyTesseract(language: .english, engineMode: .lstmOnly)
tesseract.performOCR(on: image, configuration: [.psm(.auto)]) { recognizedString in
if let recognizedString = recognizedString {
print("Recognized text with custom PSM: \(recognizedString)")
}
}