در این قسمت تیم کدگیت را با آموزش Kernel در پایتون (پرازش تصویر) همراهی کنید. در ادامه آموزش‌های پردازش تصویر در پایتون امروز در خصوص Kernel و کاربردهای آن صحبت خواهیم کرد. همچنین در پایان با استفاده از کتابخانه OpenCV به پیاده‌سازی Kernel خواهیم پرداخت. پیش‌نیازهای این آموزش شامل موارد زیر است:

Kernel چیست؟

Kernel (هسته) در پردازش تصویر (یا بینایی مایشن) ماتریسی هستند که بر روی آن‌ها عملیات convolution انجام می‌گردد. convolution با عملیات ضرب، دو آرایه را با هم ادغام می‌کند در پردازش تصویر convolution با عبور از هر پیکسل، عملیاتی بر روی آن پیکسل و همسایگان آن انجام می‌دهد (کمی گیج کننده شد!).

در تصویر زیر یک ماتریس Kernel آورده‌ایم که سایز آن 3*3 می‌باشد.

Kernel در جاوا

عملیات convolution

ما یک Kernel داریم که می‌خواهیم عملیات convolution انجام دهیم. عدد وسط ماتریس Kernel را بر روی پیکسل‌های تصویر قرار داده و بر روی پیکسل‌ها حرک می‌کنیم. حرکت بر روی پیکسل‌ها به صورت زیر می‌باشد:

Kernel در پایتون (پرازش تصویر)

مراحل زیر را برای انجام دادن عملیات convolution انجام می‌دهیم:

  • بر روی تمامی پیکسل‌های تصویر با استفاده از ماتریس Kernel یک بار چرخش انجام می‌دهیم.
  • درایه‌های ماتریس Kernel و پیکسل‌‎های تصویر را به صورت نظیر به نظیر با هم ضرب می‌کنیم.
  • حاصلضرب‌های مرحله قبل را با هم جمع می‌کنیم.
  • مقدار بدست آمده، حاصل خانه وسط پیکسل تصویر است.
  • مراحل بالا را برای تمامی پیکسل‌ها انجام می‌دهیم.
Kernel در پایتون (پرازش تصویر)

Kernel در پایتون

برای پیاده سازی kernel در پایتون، از کتابخانه numpy برای ایجاد Kernel و از کتابخانه OpenCV متد filter2D برای انجام عملیات فیلتر بر روی تصویر استفاده خواهیم کرد. این متد یک Kernel را به عنوان ورودی می‌گیرد و بر روی آن عملیات convolution انجام می‌دهد. برای پیاده سازی ابتدا یک Kernel ایجاد می‌کنیم:

kernel = np.ones((3, 3), np.float32) / 9

در کد بالا تمامی درایه‌های ماتریس Kernel برابر با 1/9 می‌باشد. حال تصویر Baboon.png را می‌خوانیم:

image = cv2.imread('baboon.png')

در ادامه با استفاده از متد  filter2D فیلتر دلخواه خود را پیاده سازی می‌کنیم:

img = cv2.filter2D(image, -1, kernel)

ورودی‌های متد filter2D به ترتیب تصویر ورودی، عمق تصویر (برابر با عمق تصویر ورودی قرار داده شده است) و ماتریس Kernel می‌باشد. خروجی تصویر ما به صورت زیر است:

Kernel در پایتون (پرازش تصویر)

تصویر ورودی نیز به صورت زیر است:

Kernel در پایتون (پرازش تصویر)

Download “دانلود سورس Kernel در پایتون (پرازش تصویر)” Kernel-in-Python-www.codegate.ir_.zip – 51 بار دانلود شده است –

پسورد: www.codegate.ir