انواع روشهای لبه یابی و درصد موفقیت:
در OpenCV، چهار روش اصلی برای تشخیص لبه وجود دارد که هر کدام در شرایط خاصی بهترین عملکرد را دارند. در ادامه آنها را با هم مرور میکنیم:
---
۱. سوبل (Sobel)
· روش کار: با محاسبه مشتق (گرادیان) تصویر در دو جهت افقی و عمودی، نرخ تغییرات روشنایی را پیدا میکند.
· میزان موفقیت:
·

پرنور و با نویز کم: خوب و سریع عمل میکند.
·

تصاویر شلوغ و پرنویز: لبههای کاذب زیادی پیدا میکند. لبهها معمولاً ضخیم و نسبتاً ضعیف هستند و نیاز به آستانهگیری دستی دارند.
۲. کنی (Canny) — محبوبترین روش
· روش کار: یک الگوریتم چندمرحلهای (کاهش نویز، یافتن گرادیان، نازکسازی لبهها و آستانهگیری دوگانه) است.
· میزان موفقیت:
·

تقریباً در همه جا عالی: بهترین انتخاب عمومی است، لبههای نازک، پیوسته و دقیق میدهد و در برابر نویز مقاوم است.
·

تنظیم وابسته: عملکردش به تنظیم دو پارامتر threshold1 و threshold2 وابستگی شدیدی دارد. در نور کم اگر درست تنظیم نشود، ممکن است لبههای اصلی را از دست بدهد.
۳. لاپلاسین (Laplacian)
· روش کار: مشتق مرتبه دوم را محاسبه میکند و نقاطی که شدت روشنایی در آنها تغییر جهت میدهد (عبور از صفر) را به عنوان لبه علامتگذاری میکند.
· میزان موفقیت:
·

لبههای تیز: برای تشخیص محل دقیق لبهها خوب است.
·

نویز حساسیت فوقالعاده زیاد: کوچکترین نویزی را به لبه تبدیل میکند. معمولاً باید حتماً با فیلتر گوسی استفاده شود (تبدیل به LoG - Laplacian of Gaussian).
۴. شِر (Scharr)
· روش کار: نسخه بهبودیافته سوبل که هستههای ماتریس دقیقتری دارد.
· میزان موفقیت:
·

تغییرات کوچک: در تشخیص لبههای مورب و ظریف، بسیار دقیقتر از سوبل استاندارد عمل میکند.
·

نویز: حساسیتش به نویز کمی از سوبل بیشتر است.
---
یک راهنمای سریع برای انتخاب:
· همیشه اول کنی را امتحان کن. در ۹۰٪ مواقع بهترین جواب را میدهد.
· اگر فقط سرعت برایت مهم است و نویز تصویر کم است، سوبل انتخاب خوبی است.
· اگر به دنبال تشخیص تغییرات بسیار ظریف و دقیق هستی (مثل لبههای با زاویه ۴۵ درجه)، شر بهتر از سوبل کار میکند.
· تشخیص دقیق مرکز لبه مد نظر است (و نه ضخامت آن)؟ لاپلاسین (با پیشفیلتر گوسی) گزینه مناسبی است.