سؤال

لدي 55 000 ملف صورة (في كل من JPG وتطبيق TIFF) وهي صور من كتاب.

هيكل كل صفحة هذا:

بعض النصوص

--- (خط أفقي) ---

رقم

بعض النصوص

--- (خط أفقي) ---

رقم آخر

بعض النصوص

يمكن أن يكون هناك من صفر إلى 4 خطوط أفقية على أي صفحة معينة.

أحتاج إلى العثور على الرقم، أسفل الخط الأفقي فقط.

ولكن، فإن الأرقام تتبع بدقة بعضها البعض، بدءا من واحد في الصفحة الأولى، لذلك من أجل العثور على الرقم، لا أحتاج إلى قراءتها: يمكنني فقط اكتشاف وجود الخطوط الأفقية، والتي يجب أن تكون أسهل وأكثر أمانا من محاولة التعرف على التعرف الضوئي على البرنامج للكشف عن الأرقام.

الخوارزمية ستكون، أساسا:

for each image
  count horizontal lines
  print image name, number of horizontal lines
  next image

السؤال هو: ماذا ستكون أفضل مكتبة / لغة لصنع جزء "عدد الخطوط الأفقية"؟

هل كانت مفيدة؟

المحلول

ربما أسهل طريقة للكشف عن خطوطك تستخدم هوغ تحويل في opencv. (الذي لديه مغلفة لعدة لغات).

سيكتشف OpenCV Houg Tranform جميع الخطوط في الصورة وإرجاع زواياهم وبدء / إيقاف الإحداثيات. يجب أن تبقي فقط تلك الزوايا التي تقترب من الأفقي والطول المناسب.

A'Reilly's التعلم OpenCV يشرح بالتفصيل مدخلات وإخراج الوظيفة (ص .56).

نصائح أخرى

إذا كان لديك تباين جيد، فحاول تشغيل المكونات المتصلة وتحليل النتيجة. يمكن أن يكون بديلا للعثور على خطوط من خلال Hough وتغطية القضية عندما تختار عناصرك المنظمة أو خوارزمية خط الأسطر التي لا تريدها أن تلتقطها.

مكونات متصلة هي خوارزمية فائقة فائقة الفحص السريعة وستقدم لك قناعا مع كل العناصر المتصلة بها في علامة تحمل ملصقات مختلفة ومحسوبة ل. يمكنك تجاهل أي شيء قصير (من حيث نسبة الارتفاع). بشكل عام، يمكن أن يكون هذا أكثر عام، بشكل أسرع ولكن ربما أكثر من ذلك أكثر نشاطا من تشغيل Hough Hough. سيكون تحويل Hough من ناحية أخرى أكثر قابلية للتأمل من القطع الأثرية بلون مغاير وحتى الفجوات العرضية في الخطوط. لدى OpenCV وظيفة Findcontours () التي تجد مكونات لك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top