جداسازی نقطه ها از سایر کانتورها در OCR - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

جداسازی نقطه ها از سایر کانتورها در OCR

+1 امتیاز
سلام.

برای جداسازی نقطه ها از سایر کانتور ها در تصویر از روش مورفولوژی erode استفاده کردم ولی مشکلی که وجود داره در صفحات با رزولوشن های

مختلف نتیجه کار خراب میشه ولی توی رزولوشن 600 این روش برای همچین کاری زمانگیره.

آیا دوستان روش بهتری برای اینکار سراغ دارن؟

 

تشکر
سوال شده آبان 21, 1393  بوسیله ی Effort (امتیاز 10)   1 1

1 پاسخ

+1 امتیاز
چون نقطه ها دارای ابعاد یکسانی هستند و دیگر کاراکترها دارای ابعاد یکسانی نیستند نتیجه می گیریم که فرکانس ابعاد نقاط بالاست پس بهمین خاطر می توان به ابعاد نقطه ها پی برد.در ابتدا boundingBox مربوط به کانتور ها را محاسبه کرده و سپس ابعاد کانتور را در یک آرایه به صورت پشت سرهم می ریزیم. سپس از این داده بدست آمده هیستوگرام می گیریم و سپس binی از هیستوگرام که دارای بیشترین فرکانس باشد را بدست می آوریم.
نقاطی که نویزی هستند ممکن است چندین پیکسل از نظر ارتفاع با ماکزییم ابعاد نقطه متفاوت باشند.
به همین خاطر با 0.8 بزرگترین peek داده های بدست آمده را آستانه گیری می نماییم.حال نقطه ماکزییم ما بر روی قله می باشد و ما این
نقطه را ادامه می دهیم تا زمانیکه مقادیر مخالف صفر هستند.حال ابعاد نقطه محاسبه شده است برای فیلتر کردن دو نقطه از ضریب 1.5 استفاده می کنیم یعنی کلیه کانتور هایی که ابعادشان کوچک تر از  max_v = max_id * 1.5 هستند بعنوان نقطه هستند. با این شرط (dim.width < max_v || dim.height < max_v)
حال تنها مشکلی که برای این شرط وجود دارد تمام کانتور ها الف نیز پذیرفته می شوند برای جلوگیری از آن شرط زیر را هم اضافه می کنیم.
 && abs(ratio) < 3 چون نقاط دارای ratio ی کمتر 3 هستند با این شرط کانتور های الف نیز در گروه نقطه ها قرار نمی گیرد.
 
پاسخ داده شده آبان 21, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
...