رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
میانگین گیری از تصویر با پردازش تصویر
#1
فرض کنید چند تصویر یکسان داریم که بر روی هرکدام از آنها نویزهای مختلفی وجود دارد و می خواهیم کیفیت این تصاویر را ارتقا دهیم. در چنین مواردی می توان از میانگن گیری از همه تصاویر استفاده کنیم . بدین صورت که مقادیر پیکسل های متناظر در همه تصاویر را باهم جمع کرده و سپس به تعداد کل تصاویر تقسیم کنیم. بدیهی است که هرقدر تعداد تصاویر برای میانگین گیری بیشتر باشد ، تصویر حاصل از میانگین گیری آنها نیز بیشتر به واقعیت نزدیک خواهد بود. به عنوان مثال مجموعه تصاویر زیر، تصویر بدون نویز ، تصاویر نویز دار و حاصل میانگین تیری از تصاویر نویز را نشان می دهد:

[عکس: avgSource.jpg]
تصویر بدون نویز

[عکس: avg%20(1).jpg]
تصویر نویزدار

[عکس: avg%20(2).jpg]
تصویر نویزدار

[عکس: avg%20(3).jpg]
تصویر نویزدار

[عکس: avg%20(4).jpg]
تصویر نویزدار

[عکس: avg(result).jpg]
میانگین تصاویر نویزدار

شبه کد زیر نحوه پیاده سازی عملگر میانگین را نشان می دهد :
کد پی‌اچ‌پی:
Procedure Averagebmp1 bmp2 :Image)
Begin
  Result
:Image
  
For 1 To Height Do
    For 
1 To Width Do
      
Result.Pixelsj] = ( bmp1.Pixels] + bmp2.Pixels] ) /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); 

منبع
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط
#2
سلام اگر بخواهیم از چند تصویر (مثلا یک ارایه 257 تایی از تصویر) میانگین بگیریم باید چه کار کنیم با توجه به uint8 بودن تصویر ؟
با تشکر
پاسخ
سپاس شده توسط
#3
سلام
با کد بالا مشکل داشتید؟فکر میکنم کاره شمارو راه میاندازه!
اگه تعداد تصویراتون بیشتر از 2باشه (مثلا3) کد رو باید اینطوری بنویسید:
Result.Pixels[ i , j] = ( bmp1.Pixels[ i , j ] + bmp2.Pixels[ i , j ] + bmp3.Pixels[ i , j ]) /3
پاسخ
سپاس شده توسط مهدی ابراهیمی
#4
سلام دوستان
کسی میدونه برای مات کردن یک تصوبر؛ ماتریس آن تصویر رو باید با چه ماتریسی کانوالو کنیم؟
در واقع باید ماتریسی باشه که میانگین گیری انجام بده.درسته؟
پاسخ
سپاس شده توسط
#5
سلام
به کمک فیلترهای پایین گذر مثل میانگین گیری میتونید تصویر را مات کنید.
[عکس: convolution-blur.png]

[عکس: generic-taj-convmatrix-blur.jpg]


توضیحات بیشتر در:
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط sahars5
#6
سلام من کد زیر را نوشتم برای میانگین گیری از تصاویر
کد:
for f=289:Frames
   for k = 1 :3  
               sum(:,:,k) = sum(:,:,k) + a(:,:,k,f);  
   end  
   imframe(:,:,1)=imframe(:,:,1) + sum(:,:,1)./260;  
   imframe(:,:,2)=imframe(:,:,2) + sum(:,:,2)./260;  
   imframe(:,:,3)=imframe(:,:,3) + sum(:,:,3)./260;  
   sum(:,:,:) = 0;  
end
 ولی اگر من بجای 260 مثلا تعداد فریم هایم را قرار بدهم تصویر خروجی سیاه میشود علت چیست؟
تعداد فریم ها 1489 تا است
تصویر حاصل :
[عکس: untitled.jpg]

و این هم تصویر اخرین فریم است
[عکس: untitled1.html][عکس: untitled1.jpg]

اگر ممکن است راهنمایی کنید
در واقع هدف من از این کار حذف ماشین ها و بدست آوردن تصویر خیابان بدون ماشین است ولی کیفیت تصویر خروجی همانطور که ملاحظه میکنید بسیار پایین است
اگر نظری دارید بفرمایید
با تشکر
پاسخ
سپاس شده توسط
#7
سلاممیخواستم اگر امکانش هست اول از همه توضیح دهید که وقتی ما یک تصویر نویزی داریم، ابتدا چطور باید نوع نویز را تشخیص دهیم که سپس بر حسب آن عملیات حذف نویز را انجام دهیم؟
پاسخ
سپاس شده توسط
#8
سلام
معمولا نوع نویز با توجه به نوع دوربین و محل تصویر برداری ثابت هست.یعنی با دیدن نمونه هایی از تصاویر دریافتی از یک دوربین میتونید متوجه بشید که سایر تصاویر مشابه دارای چه نویزهایی خواهند بود.
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط
#9
دوستان کدی هم برای سی شارپ با همین موضوع اگه بزارن خوب میشه
پاسخ
سپاس شده توسط


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Information کتابها ، منابع و مقالات جهت یادگیری پردازش تصویر مهرداد عباسی 33 77,988 12-06-2018, 10:14 AM
آخرین ارسال: jarahlaser
  تشخیص امضای دستی با استفاده از پردازش تصویر sa akbari 0 939 01-06-2018, 08:42 PM
آخرین ارسال: sa akbari
  پردازش تصویر چیست؟ مهرداد عباسی 11 43,731 12-10-2017, 01:37 AM
آخرین ارسال: sa2017
  مقایسه دو تصویر از نظر ساختاری (SSim) مهدی ابراهیمی 2 6,097 08-12-2017, 07:25 PM
آخرین ارسال: سوسن مروارید
  قطعه بندی در پردازش تصویر helena_lovely99 14 34,415 10-01-2015, 11:48 AM
آخرین ارسال: raha1o5o3
  هیستوگرام تصویر چیست و همه چیز در رابطه با هیستوگرام(Histogram) مهدی ابراهیمی 6 36,702 02-24-2015, 08:28 AM
آخرین ارسال: مهدی ابراهیمی
Photo راهنمایی در مورد فرمول بهبود تصویر lakers 0 2,986 01-05-2015, 08:32 PM
آخرین ارسال: lakers
Sad ترجمه لغات پردازش تصویر atiati 4 13,451 09-30-2014, 09:35 PM
آخرین ارسال: mostafa.mcn90
  تبدیل مجموعه تصویر بصورت فیلم 8moein8 7 10,877 09-21-2014, 03:22 PM
آخرین ارسال: 8moein8
  پردازش تصویر با استفاده از الگوریتم k-means deniz 2 7,229 07-16-2014, 05:32 AM
آخرین ارسال: m_parsa11

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان