PDA

View Full Version : نويز در پردازش تصوير



mehdad.koulab
پنج شنبه 26 اردیبهشت 1387, 18:30 عصر
سلام به همه دوستان و مهندسین من می خوام یه برنامه ای بنویسم تا با انتخاب کاربر نویز موجود در تصویرو کاهش یا افزایش بده برای مثال تصویر شماره 1 رو به 2 و 2 رو به 1 تبدیل کنه البته لازم نیست 1 را عینا شبیه 2 کند اگر مقداری از نویزها را کم کند کافیه. در ضمن به نظر شما تو کدوم زبان برنامه نویسی بشه

whitehat
جمعه 27 اردیبهشت 1387, 23:58 عصر
اگه محدودیتی در انتخاب زبان نداری از ToolBox مطلب ،مخصوص پردازش تصویر استفاده کنید
اگه در الگوریتم مشکلی دارید عنوان کنید تا راهنمایی کنم

mehdad.koulab
دوشنبه 30 اردیبهشت 1387, 11:08 صبح
سلام جناب مدیر و با تشکر اگه راستشو بخواین من تا حالا با مطلب کار نکردم و هیچ چیز هم بلد نیستم. اگه ممکنه تو vb6 باشه که بهتر می شه اگه هم نشد C# هم به صورت مبتدی بلدم ولی اگه تو vb6 باشه خیلی خوب میشه.

whitehat
دوشنبه 30 اردیبهشت 1387, 12:13 عصر
شما بهتره الگوريتم را ياد بگيريد ، پس از آن مي توانيد در هر زباني آنرا بنويسيد
بطور كلي دو نوع نويز وجود دارد، نويز فلفل نمكي و نويز گوسي كه براي هر يك الگوريتم هاي متنوعي براي از بين بردن آن وجود دارد و استفاده اشتباه از الگوريتم ،باعث خراب شدن تصوير مي شود.
همچنين از بين بردن نويز به همبسته بودن يا نبودن آن نيز بستگي دارد. در نويز فلفل نمكي نقطه هايي در تصوير است كه رنگ آن با اطراف آن زياد فرق مي كند . نويز گوسي داراي يك قسمت خرابي در كل تصوير است.
براي هر دو نويز شما مي توانيد از فيلتر پايين گذر و يا ملايم كننده استفاده كنيد. مثلا براي نويز فلفل نمكي يك روش موثر استفاده از يك ماسك بوده (جدول 3*3) كه بر روي تصوير حركت مي كند. و در هر مرحله ميانگين همسايه ها در نقطه مياني جاي مي گيرد.
شما مي توانيد با مراجعه به كتاب پردازش تصوير گنزالس در مورد فيلتر ها بيشتر ياد بگيريد
موفق باشيد

mehdad.koulab
دوشنبه 30 اردیبهشت 1387, 20:00 عصر
خوب مشکل اصلی من هم اینکه نمیتونم الگوریتم رو بنویسم اگه می تونین تو الگوریتم نویسی کمکم کنین.

Alireza_Salehi
سه شنبه 31 اردیبهشت 1387, 07:12 صبح
خوب مشکل اصلی من هم اینکه نمیتونم الگوریتم رو بنویسم اگه می تونین تو الگوریتم نویسی کمکم کنین.

همون طور که فرمودند فصل 5 (Image Restoration) کتاب گنزالس را مطالعه کنید حتما خواهید توانست الگوریتم رو بنویسید.
در نهایت باید یک سری جمع و تفریق و ضرب انجام بدید. فقط مسئله سر اینه کی و کجا که اون هم به نوع نویز و هدف شما بستگی داره.

B-Vedadian
سه شنبه 31 اردیبهشت 1387, 07:48 صبح
یک نکته هم من بگم.

MatLab یکی از ساده ترین زبانها برای یادگیریه، بنا بر این اگه با ادبیات پردازش تصویر آشنایی داری، یک نسخه ازش تهیه کن و نصب کن و اجرا. بعدش دموهای کاملی داره که یکیشون همین برنامه ایه که شما میخوای. روشهای معمولی (قدیمی) بازسازی تصویر و کاهش نویز رو پیاده سازی کرده و آماده در اختیار برنامه نویس قرار داده (البته با تولباکس پردازش تصویر، دوباره نویسیش هم کار سختی نیست!)

mehdad.koulab
سه شنبه 31 اردیبهشت 1387, 12:54 عصر
یک نکته هم من بگم.

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

mehdad.koulab
سه شنبه 31 اردیبهشت 1387, 12:56 عصر
همون طور که فرمودند فصل 5 (Image Restoration) کتاب گنزالس را مطالعه کنید حتما خواهید توانست الگوریتم رو بنویسید.
در نهایت باید یک سری جمع و تفریق و ضرب انجام بدید. فقط مسئله سر اینه کی و کجا که اون هم به نوع نویز و هدف شما بستگی داره.
میرم کتارو گیر میارم و می خونم ممنون از همه

B-Vedadian
سه شنبه 31 اردیبهشت 1387, 15:11 عصر
منظورم اینه که ابزارهای تولباکس پردازش تصویر اینقدر سطح بالاست که اون دموها رو با چند خط کد نویسی میتونی ایجاد کنی.

mehdad.koulab
سه شنبه 31 اردیبهشت 1387, 20:39 عصر
ابزارهای تولباکس پردازش تصویر چیه من نمیدونم اگه نمونه دارین ممنون می شم بذارین تو سایت.

whitehat
چهارشنبه 01 خرداد 1387, 00:22 صبح
یک بار کافیه Matlab را نصب کنید!
این مجموعه شامل مجموعه ای توابع و ابزار ها مفید برای کار با تصاویر است

mehdad.koulab
پنج شنبه 02 خرداد 1387, 13:31 عصر
مطلب رو نصب کردم حالا چه طوری میتونم با استفاده از تولباکس پردازش تصویر دوباره نویسش کنم.

whitehat
پنج شنبه 02 خرداد 1387, 16:52 عصر
مطلب رو نصب کردم حالا چه طوری میتونم با استفاده از تولباکس پردازش تصویر دوباره نویسش کنم.
آیا در هنگام نصب تیک مربوط به این تولبار را برای نصب زدید؟
اگه اینطوره یک Help بسیار خوب برای این کار دارید که می توانید با استفاده از آن عکس را open کرده و فیلتر را بر روی آن استفاده کنید

mehdad.koulab
پنج شنبه 02 خرداد 1387, 17:27 عصر
به هیچ چیزش دست نزدم

en-babak
پنج شنبه 02 خرداد 1387, 19:22 عصر
شما برای اینکه اطلاعات بیشتری درباره پردازش تصویری و ابزارهای این جعبه ابزار بدست بیاورید بعد از نصب مطلب مراحمل زیر را انجام دهید
دستور DEMOS را تایپ کنیدو پنجره HELP ان باز می شودو در قسمت چپ پنجره گزینه TOOLBOXES\IMAGE PROCESSING را انتخاب کنید و همان طور که مشاهده می کنید در قسمت راست پنجره HELP تمام کاربردهای این جعبه ابزار به همرا Mفایلها و همچنین مثالهای از انها نمایش داده می شود و در انجام پروژه های کوچک بسیار مفید است

mehdad.koulab
پنج شنبه 02 خرداد 1387, 21:50 عصر
ممنون از همه ولی من می خوام یه برنامه مثل پردازش تصویر مطلب به ویژه قسمت نویزش رو بنویسم نه این که این کارا رو انجام بدم.

whitehat
دوشنبه 06 خرداد 1387, 14:24 عصر
براي حذف نويز گوسي از چندين روش مي توان استفاده كرد، (كدهاي زير در متلب نوشته شده و براي توضيحات بيشتر براي هر كدام مي توانيد به كتاب پردازش تصوير گنزالس مراجعه كنيد)
1- استفاده از يك فيلتر نرم كننده


function [MO]=my_gussian_noise(MI,k)
N = size(MI,1);
M = size(MI,2);
TEMP=zeros(N,M);
for i=2:N-1
for j=2:M-1
row1=double(MI(i-1,j-1))+double(MI(i,j-1))+double(MI(i+1,j-1));
row2=double(MI(i-1,j))+double(MI(i+1,j))+double((k*MI(i,j)));
row3=double(MI(i,j+1))+double(MI(i+1,j+1))+double( MI(i-1,j+1));
TEMP(i,j)=uint32((row1+row2+row3)/(8+k));
end;
end;
MO=TEMP;

2- استفاده از فيلتر پايين گذر


%Fix Gussian Noise With Low Pass Filter
function [MO]=my_lowpass_filter(MI,k)
N=size(MI,1);
M=size(MI,2);
img=double(MI)/N;
u=(-((N-1)/2):((N-1)/2))'*ones(1,N);
U = u.^2;
V = (u').^2;
Duv = sqrt(U + V);
ideal=double(Duv<=k);
ftimg=fftshift(fft2(img));
MO=real(ifft2(fftshift(ftimg.*ideal)));

3- استفاده از روش Butter Worth درجه 2


%Fix Gussian Noise With Butter Worth (Degree 2)
function [MO]=my_butter_worth2(MI,k)
N=size(MI,1);
M=size(MI,2);
img=double(MI)/N;
u=(-((N-1)/2):((N-1)/2))'*ones(1,N);
U = u.^2;
V = (u').^2;
Duv = sqrt(U + V);
btw2=1 ./ (1.0 + (Duv ./ k).^(2));
ftimg=fftshift(fft2(img));
MO=real(ifft2(fftshift(ftimg.*btw2)));

4- استفاده از روش Butter Worth درجه 3


%Fix Gussian Noise With Butter Worth (Degree 3)
function [MO]=my_butter_worth4(MI)
N=size(MI,1);
M=size(MI,2);
img=double(MI)/N;
u=(-((N-1)/2):((N-1)/2))'*ones(1,N);
U = u.^2;
V = (u').^2;
Duv = sqrt(U + V);
btw4=1 ./ (1.0 + (Duv ./ k).^(4));
ftimg=fftshift(fft2(img));
MO=real(ifft2(fftshift(ftimg.*btw4)));

براي حذف نويز فلفل نمكي شما كافيه يك ماسك را بر روي تصوير حركت دهيد


%Fix Salt And Pepper Noise
function [MO]=my_spark_noise(MI)
N = size(MI,1);
M = size(MI,2);
arr=[9];
for i=2:N-1
for j=2:M-1
arr(1)=MI(i-1,j-1);
arr(2)=MI(i,j-1);
arr(3)=MI(i+1,j-1);
arr(4)=MI(i-1,j);
arr(5)=MI(i,j);
arr(6)=MI(i+1,j);
arr(7)=MI(i-1,j+1);
arr(8)=MI(i,j+1);
arr(9)=MI(i+1,j+1);
arr=sort(arr);
TEMP(i,j)=arr(5);
end;
end;
MO=TEMP;

mehdad.koulab
دوشنبه 06 خرداد 1387, 20:04 عصر
دیگه دارم پر رویی می کنم ولی شرمنده چون مجبورم لطفا یه مرجع به من معرفی کنین تا مطلب رو یاد بگیرم با تشکر.

en-babak
دوشنبه 06 خرداد 1387, 20:15 عصر
اگر چند تصویر از آن شی داشتی می توانی با میانگین گیری از تصاویر نویز در تصویر را کم کنی که این جز فیلترهای فرکانسی پایین گذر است و اگر هم کد آن را خواستی برایت می نویسم از مدیر بخش هم ممنون که این کدها را فرستاد
---------------------------------------------------------------------
زندگی گرمی دستهای بهم پیوسته است/ تا دران دوست نباشدهمه درها بسته است

Alireza_Salehi
دوشنبه 06 خرداد 1387, 20:59 عصر
دیگه دارم پر رویی می کنم ولی شرمنده چون مجبورم لطفا یه مرجع به من معرفی کنین تا مطلب رو یاد بگیرم با تشکر.

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

کتاب فارسی برای یادگیری مطلب فراوونه، ولی به طور کلی Help خود مطلب نقص نداره و بهتر از کتابه.

en-babak
دوشنبه 06 خرداد 1387, 21:29 عصر
البته می توانی از فیلت های ویولت WAVELAT استفاده کنی این فیلتر برای کاهش سیگنالهای می باشد

mehdad.koulab
دوشنبه 06 خرداد 1387, 21:44 عصر
دوست عزیز en-babak درسته که جناب مدیر کدهای مربوط به سوالم رو گذاشته ولی اگه شما هم میتونین برای یادگیری بیشتر لصفا بذارین تو سایت. با تشکر

مصطفی ساتکی
دوشنبه 06 خرداد 1387, 22:47 عصر
بهترین کتاب موجود کتاب آقای گنزالس که با نام پردازش تصویر با مطلب کتابی جامع با کد مطلب کلیه مطالبی رو که تو کتاب اصول پردازش تصویر گنزالس می خونید در این کتاب پیاده سازی شده در ضمن برای کار شما نیازی به مطلب نیست مطلب با سرعت پایینی که داره فقط برای تست کار به کار میره نه برای کاربردی کردن .شما برای این کار باید یک کانولوشن رو تو vb پیاده کنید وقتی این کار رو انجام دادید هم می تونید نویز بدید و هم نویز بگیرید یعنی پنجره n در n روی تصویر مبدا حرکت بدید تا تصویر مقصد حاصل بشه برای کارهای که در محیط طبیعی انجام بشه فقط این مطالب گفته شده کافی نیست .

mehdad.koulab
سه شنبه 07 خرداد 1387, 12:37 عصر
بهترین کتاب موجود کتاب آقای گنزالس که با نام پردازش تصویر با مطلب کتابی جامع با کد مطلب کلیه مطالبی رو که تو کتاب اصول پردازش تصویر گنزالس می خونید در این کتاب پیاده سازی شده در ضمن برای کار شما نیازی به مطلب نیست مطلب با سرعت پایینی که داره فقط برای تست کار به کار میره نه برای کاربردی کردن .شما برای این کار باید یک کانولوشن رو تو vb پیاده کنید وقتی این کار رو انجام دادید هم می تونید نویز بدید و هم نویز بگیرید یعنی پنجره n در n روی تصویر مبدا حرکت بدید تا تصویر مقصد حاصل بشه برای کارهای که در محیط طبیعی انجام بشه فقط این مطالب گفته شده کافی نیست .
سلام دوست عزیز منم می خوام هم این کارو بکنم ولی بلد نیستم اگه می تونین راهنماییم کنین.

en-babak
چهارشنبه 08 خرداد 1387, 14:17 عصر
من خودم هم در موضوع فیلتر های waveat دارم کار می کنم و این موضوع پروژه پایان دوره ام است که ایگن فیلمتر ها در تشخیص مرز ( border) خیلی کمک می کند حتما تا چند روز دیگر قسمتی از مستندات پروژه ام را در تاپیک فیلتر wavelat خواهم گذاشت

shokoohi
چهارشنبه 28 بهمن 1388, 11:02 صبح
چطور می تونم از تولباکس های مطلب استفاده کنم؟
میشه بیشتر راهنمایی کنید که به کجا مراجعه کنم؟

golbafan
پنج شنبه 29 بهمن 1388, 12:10 عصر
براي كاهش نويز ميتونيد از فيلتر بلور استفاده كنيد

معصومه ارفعی
دوشنبه 03 اسفند 1388, 10:36 صبح
فایل zip ده نتوانستم باز کنم آیا به نرم افزار خاصی احتیاج هست