چگونه می توان با استفاده از بالش ، یک فیلتر Sobel را برای تشخیص لبه اعمال کرد؟
Aug 08, 2025
پیام بگذارید
Edge Detection یک تکنیک اساسی در پردازش تصویر است که برای شناسایی مرزهای اشیاء درون یک تصویر استفاده می شود. یک روش محبوب برای تشخیص لبه ، فیلتر Sobel است که شیب شدت تصویر را محاسبه می کند. در این وبلاگ ، ما چگونگی استفاده از فیلتر Sobel را برای تشخیص لبه با استفاده از بالش ، یک کتابخانه قدرتمند پایتون برای پردازش تصویر کشف خواهیم کرد. ما به عنوان یک تأمین کننده بالش ، ما هیجان زده هستیم که این راهنمای عمیق را با شما به اشتراک بگذاریم.
درک فیلتر Sobel
فیلتر Sobel یک اپراتور تمایز گسسته است که تقریب شیب یک عملکرد شدت تصویر را محاسبه می کند. این دو هسته 3x3 تشکیل شده است ، یکی برای تشخیص لبه های افقی و دیگری برای لبه های عمودی.
هسته سوبل افقی (G_X):
[
g_x =
\ شروع {bmatrix}
-1 & 0 & 1 \
-2 و 0 و 2 \
-1 و 0 و 1
\ پایان {bmatrix}
]
هسته سوبل عمودی (G_Y):
[
g_y =
\ شروع {bmatrix}
-1 & -2 & -1 \
0 & 0 & 0 \
1 و 2 و 1
\ پایان {bmatrix}
]
هنگامی که این هسته ها با یک تصویر حل می شوند ، مشتقات افقی و عمودی تصویر را به ترتیب - مرتبه اول محاسبه می کنند. مقدار شیب سپس می تواند با استفاده از فرمول (\ sqrt {g_x^2 + g_y^2}) محاسبه شود ، و جهت گرادیان توسط (\ arctan (\ frac {g_y} {g_x}) داده می شود).
پیش نیازهای
قبل از شروع ، مطمئن شوید که بالش نصب شده اید. می توانید با استفاده از آن نصب کنیدپودر:
بالش نصب پیپ
استفاده از فیلتر Sobel با بالش
بیایید با وارد کردن کتابخانه های لازم و بارگیری یک تصویر شروع کنیم:
از تصویر واردات PIL ، ImageFilter Numpy را به عنوان np # بارگیری کنید تصویر تصویر = Image.open ('your_image.jpg'). تبدیل ('l') # تبدیل به مقیاس خاکستری
در اینجا ، ما تصویر را به مقیاس خاکستری تبدیل می کنیم زیرا فیلتر Sobel روی تصاویر یک کانال کار می کند.
در مرحله بعد ، هسته های سوبل را تعریف می کنیم و آنها را با تصویر حل می کنیم:
# تعریف هسته Sobel sobel_x = np.array ([[[-1 ، 0 ، 1] ، [-2 ، 0 ، 2] ، [-1 ، 0 ، 1]]) sobel_y = np.array ([[-1 ، -2 ، -1] ، [0 ، 0] ، [1 ، 2 ، 1]]) # # strant the numperray numperrray numperray the numperray # تصویر را با هسته sobel g_x = np.zeros_like (image_array) g_y = np.zeros_like (image_array) ردیف ، cols = image_array.shape برای i در محدوده (1 ، ردیف ها - 1): برای j در دامنه (1 ، cols - 1): g_x [i ، j] = npil / npil (npil) (i ، g_x [i ، j] 2 ، j - 1: j + 2]) g_y [i ، j] = np.sum (sobel_y * image_array [i - 1: i + 2 ، j - 1: j + 2])
پس از محاسبه (G_X) و (G_Y) می توانیم بزرگی شیب را محاسبه کنیم:


# Compute the magnitude of the gradient gradient_magnitude = np.sqrt(G_x**2 + G_y**2) # Normalize the gradient magnitude to the range [0, 255] gradient_magnitude = (gradient_magnitude / np.max(gradient_magnitude) * 255).astype(np.uint8) # Convert the numpy array back to a Pillow image EDGE_IMAGE = Image.fromarray (Gradient_Magnitude) # SAVE EDGE - Image Image Edge_Image.Save ('Edge_Detected_Image.jpg')
با استفاده از بالش ساخته شده - در فیلترها
بالش همچنین برخی از فیلترهایی را که می تواند برای تشخیص لبه استفاده شود ، فراهم می کند. به عنوان مثال ،find_edgesفیلتر:
# استفاده از بالش ساخته شده - در Edge Detection Filter Edge_Image_Builtin = Image.Filter (ImageFilter.Find_edges) EDGE_IMAGE_BUILTIN.SAVE ('EDGE_DETECTION_IMAGE_BUILTIN.JPG')
این روش ساده تر است اما ممکن است به اندازه اجرای فیلتر Sobel از ابتدا انعطاف پذیر نباشد.
مقایسه نتایج
هنگام مقایسه نتایج عرف - فیلتر Sobel اجرا شده و ساخته شده - درfind_edgesفیلتر ، متوجه خواهید شد که اجرای سفارشی کنترل بیشتری بر روند تشخیص لبه به شما می دهد. شما می توانید هسته ها را تنظیم کنید ، نحوه محاسبه بزرگی شیب و سایر پارامترها با توجه به نیازهای خاص خود.
کاربردهای عملی تشخیص لبه
تشخیص لبه دارای کاربردهای عملی متعددی است. در دید رایانه ، از آن برای تشخیص شی ، تقسیم تصویر و تشخیص حرکت استفاده می شود. به عنوان مثال ، در یک سیستم اتومبیل خود رانندگی ، تشخیص لبه می تواند به شناسایی مرزهای سایر وسایل نقلیه ، عابران پیاده و علائم جاده کمک کند.
در زمینه تصویربرداری پزشکی ، می توان از تشخیص لبه برای شناسایی مرزهای اندام و تومورها در اسکن X - Rays ، MRI ها و CT استفاده کرد. این اطلاعات برای تشخیص و برنامه ریزی درمانی بسیار مهم است.
محصولات بالش ما
ما به عنوان یک تأمین کننده بالش ، طیف گسترده ای از بالش های با کیفیت بالا را برای پاسخگویی به نیازهای شما ارائه می دهیم. آیا شما به دنبال یکبالش فوم حافظهاین پشتیبانی و راحتی عالی را فراهم می کند ، یابالش خانگیبرای استفاده روزمره ، ما شما را پوشانده ایم. بالش های ما از بهترین مواد ساخته شده و برای اطمینان از خواب خوب شبانه طراحی شده اند.
برای تهیه با ما تماس بگیرید
اگر علاقه مند به خرید بالش های ما هستید یا در مورد محصولات ما سؤالی دارید ، ما شما را ترغیب می کنیم تا برای بحث های تهیه به ما دسترسی پیدا کنید. ما متعهد هستیم که بهترین محصولات و خدمات را به شما ارائه دهیم. تیم متخصصان ما آماده است تا در یافتن بالش های مناسب برای نیازهای شما به شما کمک کند.
منابع
- Gonzalez ، RC ، & Woods ، Re (2008). پردازش تصویر دیجیتال. پیرسون
- مستندات رسمی بالش: https://pillow.readthedocs.io/en/stable/
