Ali Ismael نشر 21 أكتوبر 2021 أرسل تقرير نشر 21 أكتوبر 2021 كيف يمكننا اكتشاف النص واستخراجه من الصور؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 21 أكتوبر 2021 أرسل تقرير نشر 21 أكتوبر 2021 يمكنك أن تستخدم OpenCV و OCR، لذا بدايةً تحتاج إلى تثبيت الملف tesseract.exe التالي من غيتهاب https://github.com/UB-Mannheim/tesseract/wiki إضافةً إلى الحزمة pytesseract كما يلي: pip install pytesseract الآن اتبع التعليمات التالية: import cv2 import pytesseract # pip install pytesseract # حدد المسار الذي قمت فيه بتثبيت الملف pytesseract.pytesseract.tesseract_cmd = 'tesseract.exe' # إقرأ الصورة img = cv2.imread("sample.jpg") # قم بتحويل الصورة إلى الصيغة الرمادية gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) والآن قم بتطبيق إحدى تقنيات التعتيب وهناك 3 أنواع للتعتيب يمكنك تطبيقها في CV2 : التعتيب البسيط+التعتيب المتكيف+تعتيب أوتسو وسنستخدم تعتيب أوتسو هنا: ret, thresh1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV) حدد شكل البنية وحجم النواة. حيث أن حجم النواة يزيد أو ينقص مساحة المستطيل المراد اكتشافه. قيمة أصغر مثل (10 ، 10) ستكتشف كل كلمة بدلاً من جملة: rect_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18)) ونطبق عملية تمديد للصورة: dilation = cv2.dilate(thresh1, rect_kernel, iterations = 1) اكتشاف الملامح contours: contours, hierarchy = cv2.findContours(dilation, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) إنشاء نسخة من الصورة وملف نصي: im2 = img.copy() # إنشاء ملف نصي file = open("recognized.txt", "w+") file.write("") file.close() نقوم بالتكرار بحلقة على ال contours ثم يتم اقتصاص الجزء المستطيل وتمريره إلى pytesseract لاستخراج النص منه ثم كتابة النص المستخرج في الملف النصي: for cnt in contours: x, y, w, h = cv2.boundingRect(cnt) # رسم مستطيل على الصورة المنسوخة rect = cv2.rectangle(im2, (x, y), (x + w, y + h), (0, 255, 0), 2) # اقتصاص كتلة النص لإعطاء مدخلات إلى التعرف الضوئي على الحروف cropped = im2[y:y + h, x:x + w] # append فتح الملف ونحدد له وضع التحديث file = open("recognized.txt", "a") # OCR تطبيق text = pytesseract.image_to_string(cropped) # كتابة النص إلى الملف file.write(text) file.write("\n") # إغلاقه # Close the file file.close 1 اقتباس
1 Ahmed Sharshar نشر 21 أكتوبر 2021 أرسل تقرير نشر 21 أكتوبر 2021 يمكنك استخدام المكتبة pytesseract بسهولة مع opencv من أجل استخرجا الكلمات من الصور دون الحجاة الى اللجوء لنماذج معقدة من deep learning وغيرها. في البداية عليك تنزيل المكتبة من ال terminal كالتالي: pip install pytesseract بعد ذلك أنظر الكود التالي والذي يوضح بشكل سهل كيفية أداء المهمة ببساطة: #استدعاء المكتبات import cv2 import pytesseract pytesseract.pytesseract.tesseract_cmd=r'C:Program FilesTesseract-OCRtesseract.exe' #قراءة الصورة img = cv2.imread("image.jpg") #تحجيم الصورة img = cv2.resize(img, (400, 450)) #عرض الصورة cv2.imshow("Image", img) #استخراج الكلمات من الصورة text = pytesseract.image_to_string(img) #طباعة الكلمات print(text) cv2.waitKey(0) cv2.destroyAllWindows() وتكون ناتج استخراج الكلمات من الصورة كالتالي: اقتباس
0 Rok Kor نشر 9 أكتوبر 2023 أرسل تقرير نشر 9 أكتوبر 2023 شكرا جزيلا بتاريخ On 21/10/2021 at 19:57 قال Ali Haidar Ahmad: يمكنك أن تستخدم OpenCV و OCR، لذا بدايةً تحتاج إلى تثبيت الملف tesseract.exe التالي من غيتهاب https://github.com/UB-Mannheim/tesseract/wiki إضافةً إلى الحزمة pytesseract كما يلي: pip install pytesseract الآن اتبع التعليمات التالية: import cv2 import pytesseract # pip install pytesseract # حدد المسار الذي قمت فيه بتثبيت الملف pytesseract.pytesseract.tesseract_cmd = 'tesseract.exe' # إقرأ الصورة img = cv2.imread("sample.jpg") # قم بتحويل الصورة إلى الصيغة الرمادية gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) والآن قم بتطبيق إحدى تقنيات التعتيب وهناك 3 أنواع للتعتيب يمكنك تطبيقها في CV2 : التعتيب البسيط+التعتيب المتكيف+تعتيب أوتسو وسنستخدم تعتيب أوتسو هنا: ret, thresh1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY_INV) حدد شكل البنية وحجم النواة. حيث أن حجم النواة يزيد أو ينقص مساحة المستطيل المراد اكتشافه. قيمة أصغر مثل (10 ، 10) ستكتشف كل كلمة بدلاً من جملة: rect_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (18, 18)) ونطبق عملية تمديد للصورة: dilation = cv2.dilate(thresh1, rect_kernel, iterations = 1) اكتشاف الملامح contours: contours, hierarchy = cv2.findContours(dilation, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) إنشاء نسخة من الصورة وملف نصي: im2 = img.copy() # إنشاء ملف نصي file = open("recognized.txt", "w+") file.write("") file.close() نقوم بالتكرار بحلقة على ال contours ثم يتم اقتصاص الجزء المستطيل وتمريره إلى pytesseract لاستخراج النص منه ثم كتابة النص المستخرج في الملف النصي: for cnt in contours: x, y, w, h = cv2.boundingRect(cnt) # رسم مستطيل على الصورة المنسوخة rect = cv2.rectangle(im2, (x, y), (x + w, y + h), (0, 255, 0), 2) # اقتصاص كتلة النص لإعطاء مدخلات إلى التعرف الضوئي على الحروف cropped = im2[y:y + h, x:x + w] # append فتح الملف ونحدد له وضع التحديث file = open("recognized.txt", "a") # OCR تطبيق text = pytesseract.image_to_string(cropped) # كتابة النص إلى الملف file.write(text) file.write("\n") # إغلاقه # Close the file file.close والملف الل حيطلع فيه النص مع شكل المستطيل هل يمكن لحضرتكم التجربة على الصورة اقتباس
0 Qor Qar نشر 14 أكتوبر 2023 أرسل تقرير نشر 14 أكتوبر 2023 فين الرد ماهى اللغة والمودبل المستعمل فى وورد ميكروسوفت وعدسة جوجل؟ كيف يمكن استخدام pytesseract و opencv فى استخراج النص مع الصور المطبوعة الى ملف doc اقتباس
0 Rok Kor نشر 19 أكتوبر 2023 أرسل تقرير نشر 19 أكتوبر 2023 ؟ ؟؟؟؟؟؟؟؟؟ استاذ على حيدر ممكن تجرب فكرتك على الصور دى اقتباس
السؤال
Ali Ismael
كيف يمكننا اكتشاف النص واستخراجه من الصور؟
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.