میانگین گیری از تصویر

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

شبه کد زیر نحوه پیاده سازی عملگر میانگین را نشان می دهد :

Procedure Average( bmp1 , bmp2 :Image)
Begin
  Result:Image
  For 1 To Height Do
    For 1 To Width Do
      Result.Pixels[ i , j] = ( bmp1.Pixels[ i , j ] + bmp2.Pixels[ i , j ] ) /2
    End For
  End For
End

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

پردازش تصویر در MATLAB

برای میانگین گیری از تصویر در محیط MALTAB به صورت زیر می توان عمل کرد :

>> im = imread('cameraman.tif');
>> imshow(im);
>> im1 = imread('rice.png');
>> imshow(im1);
>> imAvg = imadd(im,im1) ./ 2;
>> imshow(imAvg);