كيفية اختبار قرب الخطوط (تحويل hough) في OpenCV
سؤال
(هذه متابعة من هذا السؤال السابق).
تمكنت من استخدام تحويلات OpenCV / Hough بنجاح للكشف عن الخطوط في الصور (النص الممسوح) ؛ في البداية ، ستكتشف العديد من الخطوط (سطر واحد على الأقل لكل سطر من النص) ، ولكن عن طريق ضبط المعلمة "العتبة" عبر التجربة والخطأ ، فإنه يكتشف الآن خطوط "حقيقية" فقط.
(تعتمد المعلمة "العتبة" على حجم الصورة ، وهي مشكلة قليلاً إذا كان على المرء أن يتعامل مع صور لقرارات مختلفة ، ولكن هذه قصة أخرى).
مشكلتي هي أن تحويل hough يكتشف في بعض الأحيان سطرين حيث يوجد واحد فقط ؛ هذان الخطان قريبان جدًا من بعضهما البعض و (على ما يبدو) بالتوازي.
=> كيف يمكنني تحديد أن سطرين متوازيين تقريبًا وقريبين جدًا من بعضهما البعض؟ (حتى أتمكن من الاحتفاظ بواحد فقط).
المحلول
إذا كنت تستخدم Hough القياسية أو المتعددة ، فسوف ينتهي بك الأمر مع إحداثيات Rho و Theta للخطوط في الإحداثيات القطبية. Rho هي المسافة إلى الأصل ، وعادة ما تكون Theta الزاوية بين الخط المكتشف والمحور Y. دون النظر في تفاصيل تحويل Hough في OpenCV ، هذه قاعدة عامة في تلك الإحداثيات: سيكون سطرين متوازيين تقريبًا وقريبين جدًا من بعضهما البعض عندما: - ثيتا متطابقة تقريبًا و RHOs متطابقة تقريبًا أو - thetas تقترب من 180 درجة على بعضها
وآمل أن يجعل الشعور.
نصائح أخرى
هذا مثير للاهتمام حول أن theta هو الزاوية بين الخط والمحور ص.
بشكل عام ، يتم تصور قيم Rho و Theta على أنها زاوية من المحور السيني إلى الخط عموديًا على الخط المعني. ثم Rho هو طول هذا الخط العمودي. وبالتالي ، فإن theta = 90 و rho = 20 يعني خط أفقي 20 بكسل من الأصل. تظهر صورة جميلة على هوغ تحويل السؤال