الگوریتم لبه یابی canny
شناسایی لبه در روش Canny شامل شش مرحله ست.
مرحلهی اول فيلتر كردن تصوير اوليه و حذف نويز از تصويره. برای این منظور فيلتر گوسين با يه ماسك ساده قابل استفاده ست که به طور انحصاري در الگوريتم Canny استفاده میشه.
مرحله دوم یافتن لبههای قوی با استفاده از gradient magnitudeدر هر نقطه ست که برای این منظور معمولاً از ماسک سوبل استفاده میشه.
|G|=|Gx|+|Gy|
مرحله سوم بدست آوردن جهت لبه هاي تصوير، با استفاده از مقدار gradient در راستای x و y که در مرحله قبل محاسبه شده. فرمول زیر برای محاسبه جهت لبهها استفاده میشه.
theta = invtan (Gy / Gx)
مرحله چهارم اختصاص دادن جهتهای قابل قبول در تصوير به جهتهای بدست آمده ست. براي هر پيكسل در تصوير فقط 4 جهت 0 و 45 و 90 و 135 درجه امکانپذیر میکنیم. بنابراين جهتهای بدست آمده رو به يكي از اين 4 جهت Map میکنیم.
مرحله پنجم suppression nonmaximum است. اين مرحله جهت لبهها را بررسي میکنه و از بین آنها، لبههایی را كه نمیشه به عنوان لبه در نظر گرفت رو حذف میکنه. اين مرحله يك خط باريك رو در تصوير نهايي میده.
مرحله ششم آستانه گیری در تشخیص لبه ست. در Canny از روشی به نام hysteresis استفاده میشه. برای این منظور دو آستانه بالا و پایین تعریف میکنیم هر پیکسل که دارای gradient بیشتر از حد بالا باشه به عنوان لبه پذیرفته میشه و در صورتی که دارای مقدار کمتر از حد پایین باشه رد میشه و در صورتی که دارای مقداری بین این دو حد باشه در صورتی پذیرفته میشه که یکی از همسایه های آن پذیرفته شده باشه.
الگوریتم canny در مقایسه با الگوریتم های دیگه از دقت بالای برخورداره ولی پیچیدگی محاسباتی داره و یکمی کنده.

اکثر ما موفقیت را قله ای دور از دسترس می بینیم و این گاهی باعث می شود هیچ تمایلی به سعی و تلاش از خود نشان ندهیم. چرا سختی بکشیم وقتی به هر حال این راه طی می شود و به پایان می رسد؟ این تصور از پیروزی اشتباه و مهلک است. اینشتین روز و شب تلاش کرد و بر کاستی ها و مسائل علم فیزیک غلبه کرد اما نه یک شبه! هدفی غایی در ذهن داشت و می دانست با هر گامی که به جلو بر می دارد یک قدم به آن چه در ذهنش دارد نزدیکتر می شود. کار کوچکی که در یک زمان محدود انجام می دهی شاید به نظر بزرگ و مهم نرسد اما بدان که در مقیاس بزرگتر حرکتی است کوچک در مسیری طولانی به سوی هدفی بزرگ !