رفتن به مطلب

آموزش تصویری کانولوشن


ارسال های توصیه شده

در ریاضیات و به خصوص در تحلیل تابع، کانولوشن یک عملگر ریاضی است که بر روی دو تابع f و g عمل کرده، و تابع سومی را تولید می کند که می توان به عنوان نسخه تصحیح شده یکی از دو تابع اصلی نگریسته شود.

کانولوشن ƒ و g به صورت ƒ*g نوشته می شود. این تعریف به صورت انتگرال حاصلضرب دو تابع که یکی از آنها برعکس شده و روی یکدیگر می لغزند تعریف می شود. با این تعریف، کانولوشن یک نوع خاص از تبدیل انتگرالی است. برای بدست آوردن تصویری کانولوشن به طریق زیر عمل می کنیم: 1.بیان هر تابع بر حسب متغیر زائد. 2. معکوس کردن یکی از توابع . 3. افزودن فاصله زمانی(t) که را در راستای محور جابجا می کند. 4. با شروع t از ∞- تا ∞+. هر زمان که دو تابع با هم برخورد کردند، انتگرال حاصلضرب آن ها را پیدا کنید. به عبارت دیگر، میانگین وزنی تابع متحرک را زمانی که تابع وزنی آن تعریف شده باشد را بدست آورید. شکل موج بدست آمده (که در اینجا نمایش داده نشده است) کانولوشن تابع f و g است. اگر (f(t تابع ضربه باشد، نتیجه این عمل همان (g(t خواهد بود، که پاسخ ضربه نامیده می شود.

 

zcyaa927s0yzvix8oy.png

 

در زیر دو مثال تصویری متحرک برای درک ساده تر مطلب را مشاهده می کنید. مثال 1 :

Convolucion_Funcion_Pi.gif

 

و مثال 2 :

Convolucion_de_entrada_con_respuesta_al_impulso.gif

  • Like 11
لینک به دیدگاه
  • 1 سال بعد...

مثلا همه میدونیم که تبدیل فوریه یک شکل موج اون را از حوزه زمان به فرکانس میبره. یعنی یکی از کاربرد های مهم تبدیل فوریه همین است ...

سوال کانولوشن گیری بین دوشکل موج چه کاربرد ملموسی داره؟

  • Like 6
لینک به دیدگاه
مثلا همه میدونیم که تبدیل فوریه یک شکل موج اون را از حوزه زمان به فرکانس میبره. یعنی یکی از کاربرد های مهم تبدیل فوریه همین است ...

سوال کانولوشن گیری بین دوشکل موج چه کاربرد ملموسی داره؟

 

سلام

وقتی پاسخ ضربه ی یه سیستمی رو داشته باشیم، پاسخ سیستم به هر ورودی رو میتونیم با کانولوشن بدست بیاریم. اما اگه بخواین یه مثالی داشته باشیم، من توی حوزه تصویر راحت ترم مثال رو توی همون حوزه می زنم. توی این حوزه هم سیگنالهامون دو بعدی هستن و هم کانولوشن دو بعدی تعریف میشه. مثلا دوربین عکاسی مون (یا حتی چشم) یه پاسخ ضربه ای داره (که بستگی به فاصله داره، یعنی با فاصله از دوربین یا تغییر موقعیت لنز پاسخ ضربمون تغییر می کنه)، این پاسخ هم به صورت تصویر هست. تصویر نهایی که توسط دوربین گرفته میشه، در واقع کانولوشن اون منظره یا چیزی که جلوی دوربین قرار می گیره با این پاسخ خواد بود.

 

یا مثلا دوربین شما به لرزش دست حساس نیست، اما در حقیقت تصویر ناشی از دوربی با لرزش دست تغییر می کنه، این نشون میده که تغییراتی که توی پاسخ ضربه ی سیستم در حرکت های کوچیک به وجود میاد جبران سازی شده، این هم به وسیله معکوس کردن فرایند کانولوشن انجام میشه.

  • Like 8
لینک به دیدگاه
سلام

وقتی پاسخ ضربه ی یه سیستمی رو داشته باشیم، پاسخ سیستم به هر ورودی رو میتونیم با کانولوشن بدست بیاریم. اما اگه بخواین یه مثالی داشته باشیم، من توی حوزه تصویر راحت ترم مثال رو توی همون حوزه می زنم. توی این حوزه هم سیگنالهامون دو بعدی هستن و هم کانولوشن دو بعدی تعریف میشه. مثلا دوربین عکاسی مون (یا حتی چشم) یه پاسخ ضربه ای داره (که بستگی به فاصله داره، یعنی با فاصله از دوربین یا تغییر موقعیت لنز پاسخ ضربمون تغییر می کنه)، این پاسخ هم به صورت تصویر هست. تصویر نهایی که توسط دوربین گرفته میشه، در واقع کانولوشن اون منظره یا چیزی که جلوی دوربین قرار می گیره با این پاسخ خواد بود.

 

یا مثلا دوربین شما به لرزش دست حساس نیست، اما در حقیقت تصویر ناشی از دوربی با لرزش دست تغییر می کنه، این نشون میده که تغییراتی که توی پاسخ ضربه ی سیستم در حرکت های کوچیک به وجود میاد جبران سازی شده، این هم به وسیله معکوس کردن فرایند کانولوشن انجام میشه.

 

تشکر از توضیحتون ولی اگه امکان داره در مورد همین موضوع _ پردازش تصویر_ . مثالی که زدید بیشتر توصیح بدید. اول اینکه پاسخ ضربه ی یک سیستم را چطور بدست بیاریم . دوم اینکه شما گفتید تصویر نهایی که توسط دوربین گرفته میشه ( یعنی خروجی سیتم) کانولوشن منظره با پاسخ چی هست؟

  • Like 6
لینک به دیدگاه
تشکر از توضیحتون ولی اگه امکان داره در مورد همین موضوع _ پردازش تصویر_ . مثالی که زدید بیشتر توصیح بدید. اول اینکه پاسخ ضربه ی یک سیستم را چطور بدست بیاریم . دوم اینکه شما گفتید تصویر نهایی که توسط دوربین گرفته میشه ( یعنی خروجی سیتم) کانولوشن منظره با پاسخ چی هست؟

 

خواهش می کنم

 

 

سیستم در واقع میشه گفت یه لنز یا عدسی هست، اما پاسخ ضربه اینجا چی هستش، چون سیستمون دو بعدی هست، پاسخ ضربه هم روی دو بعد تعریف میشه، تصویر ناشی از یه نقطه ی نورانی که پشت لنز به وجود میاد، پاسخ ضربه ی سیسممون رو تشکیل میده، یعنی فرض میشه یه نقطه ی نورانی جلوی لنز داریم، تصویری که از این نقطه روی صفحه ای پشت لنز تشکیل میشه، میشه شکل پاسخمون. اگه لنزمون دقیقا توی همون نقطه نورانی متمرکز شده باشه، تصویرش هم به صورت یه نقطه روی صفحه بوجود میاد. اما فاصله لنز تا نقطه بیشتر یا کمتر بشه، تصویر این نقطه پشت لنز پخش میشه (بزرگتر از یه نقطه میشه). تا اینجا تونستیم تصویر یه نقطه رو پیدا کنیم، چیزی هم جلوی دوربین قرار می گیره در واقع مجموعه ای از نقاط هست که ما تصویر هر کدوم رو می تونیم با پاسخ ضربه حساب کنیم، جمع آثار این تصاویر میشه تصویر نهایی مون. در واقع این میشه همون کانولوشن دو بعدی چیزی جلوی دوربین قرار می گیره، با پاسخ ضربه (که توی پردازش تصویر بهش psf گفته میشه) سیستم.

 

250px-Convolution_Illustrated_eng.png

 

اما در عمل از همون چیزی که گفتم با فاصیه اندازش تغییر می کنه، از همون راه بدست میاد.

 

[h=1]

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

[/h]

  • Like 10
لینک به دیدگاه

اوکی با این شرایط چطور

psf را بدست بیارم تا بتونیم با چیزی که جلو دوربین هست کانلو ش کنیم. با متلب چطور این کار رو انجام میدن.؟

در مورد معکوس کانولوشن (دکانواوشن) مثالی که زدید جالب بود تشکر

  • Like 5
لینک به دیدگاه
اوکی با این شرایط چطور

psf را بدست بیارم تا بتونیم با چیزی که جلو دوربین هست کانلو ش کنیم. با متلب چطور این کار رو انجام میدن.؟

در مورد معکوس کانولوشن (دکانواوشن) مثالی که زدید جالب بود تشکر

 

الزاما فقط دوربین، هر سیستم تصویر برداری یا حتی چشم انسان هم چنین، مشخصه ای داره، واسه چشم هم همین دستگاه های چشم پزشکی یه مشخصاتی از چشم رو میدن (مشخصات انکساری) که در نهایت به کمک اونا میشه PSF چشم رو حساب کرد و با یه تصویر کانوالو کرد و در نهایت میشه گفت که اون شخص تصویر مورد نظر رو چجوری میبینه.

 

دکانولوشن هم کاربرد زیاد داره، کاربردش هم بیشتر از ستاره شناسی و نجوم شروع شده، برای رسیدن به تصویر بهتر از فضا، یعنی از دکانولوشن برای واضح کردن تصویر تلسکوپ استفاده میشد.

 

اما توی متلب تابع fspecial برای ساختن psf بعضی تخریباتی که روی تصویر ممکنه بوجود بیاد، می تونه بکار بره، برای خود کانولوشن هم میشه از توابع imfilter، conv2 و filter2 استفاده کرد. این مثال خود هلپ متلب برای Motion Blur هست:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

  • Like 8
لینک به دیدگاه
×
×
  • اضافه کردن...