پردازش تصوير

efa_67

عضو جدید
سلام دوستان
كسي در زمينه پردازش تصوير با مطلب كار كرده؟من اين ترم بايد پردازش تصوير تو مطلب را ياد بگيرم كتابي هست كه بتونه تو اين زمينه به من كمك كنه؟؟؟؟؟؟؟؟
خواهشمندم كمكم كنيد
با تشكر
 

ali_seraj2008

عضو جدید
سلام فعلا یه چیزایی واسه آشنایی میذارم بعد یه کتابو که بعضی دوستان میگن خوبه معرفی میکنم.

پردازش تصویر توسط Matlab


پردازش تصویر یکی از توانایی هایی است که در MATLAB گنجانده شده است، در این مقاله می توانید به سادگی با آن آشنا شوید.
اگر حوصلة موضوعات ابتدایی کار ندارید میتوانید از شمارة ۴ شروع به خواندن کنید. اما توصیه عملی این است که از اول شروع کنید چون این نوشته یک راهنمای قدم به قدم است. پس بهتر است پله ها را ۴ تا یکی نکنیم.
گام اول – آشنایی با Matlab و Image Processing Toolbox

همه با Matlab آشنا هستیم و حداقل میدانیم که چیز بدردخوری است. پس از صحبت دربارة این میگذریم. اما Image Processing Toolbox از امکانات جنبی این برنامه است. برای اینکه مطمئن شوید که این Toolbox روی Matlab شما نصب شده است؛ دستور ver را اجرا کنید. این دستور لیست هرچه که از Matlab روی رایانه شما نصب شده است را ارائه میدهد. بین Matlab 5.x و Matlab 6 برای کار پردازش تصویر تفاوت چندانی وجود ندارد اما مثل همیشه نسخة جدیدتر امکانات بیشتری دارد که البته فعلا با آنها کاری نداریم.
دستورهای معرفی شده: ver
گام دوم – چگونه یک فایل تصویر را در Matlab باز کنیم

Matlab میتواند فایلهای گرافیکی با فرمتهای JPEG, TIFF, GIF, BMP, PNG, HDF, PCX, XWD, ICO, CUR را به عنوان فایل گرافیکی بخواند. مثلاً برای وارد کردن تصویری به نام cameraman.tif به فضای Matlab کافی است از دستور imread استفاده کنیم:
MyImage=imread(‘cameraman.tif’,'tif’);
توجه داشته باشید که فایلی که دستور خواندنش را میدهید باید برای برنامه قابل دسترس باشد. یعنی یا باید در مسیر (Path) Matlab باشد یا اینکه در پروندهای (folder) قرار داشته باشد که در حال حاضر برنامه به آن دسترسی دارد. برای اینکه بدانید که Matlab برای پیدا کردن فایلی که دستورش را دادید کجا را خواهد گشت اینکارها را بکنید: از دستور path برای اینکه بدانید کدام پروندهها جزء مسیر پیشفرض Matlab است و از دستور dir برای اینکه بدانید که Current Directory چیست؛ استفاده کنید.
خب تا اینجا یک فایل تصویر را در محیط Matlab وارد کردهایم. همانطور که میدانیم یک تصویر دیجیتال بر روی کامپیوتر در قالب یک ماتریس ذخیره میشود. پس MyImage مثل همه متغیرهای Matlab یک ماتریس است. برای اینکه بدانیم فایل خوانده شده از چه فرمتی است(سیاه سفید، یا Gray Scale یا رنگی ) مینویسیم:
imfinfo(‘cameraman.tif’)
این دستور را اجرا کنید و ببینید چه مینویسد… اما اگر بخواهید بدانید که ماتریس ذخیره شدة MyImage از چه نوعی است کافی است بنویسد: whos و لیست متغییرهای مقیم شده در حافظه و نوع و اندازه آنها را ببینید.
دستورهای معرفی شده: imread, imfinfo, whos, path, dir
گام سوم – چطور تصویر را ببینیم؟

خب حالا میخواهیم تصویر را که در یک ماتریس ذخیره شده است را ببنیم. بنویسید:
imshow(MyImage)
جالب است نه؟ فکر میکنید اگر بخواهیم دوتا تصویر را با هم ببنیم باید چکار کنیم؟ این را امتحان کنید:
YourImage=imread(‘tire.tif’,'tif’);
figure
subplot(1,2,1), imshow(MyImage), title(‘MyImage’)
subplot(1,2,2), imshow(YourImage), title(‘YourImage’)
با اجرای این دستورات به آن چیزی که اتفاق افتاد توجه کنید؛ حتما متوجه میشود که هرکدام از این دستورات چکار میکنند.
دستورهای معرفی شده: imshow, subplot, title, figure
گام چهارم – تصویر را خواندیم حالا چکار کنیم؟

کمی نویز دستوپا میکنیم و به تصویر اضافه میکنیم که بعداً راهی پیدا کنیم حذفش کنیم:
imagen=imnoise(MyImage,’salt & pepper’);imshow(imagen)
دستور imnoise نویزهای مختلفی را در اختیار ما میگذارد که به تصویر اضافه کنیم. افزودن نویز برای شبیه سازی اشکالاتی است که ممکن است به هر سیستم پردازش تصویر وارد شود. اینجا فرض کردهایم که نویز «نمک و فلفل» به تصویر اضافه شده است! اسمش عجیب غریب است؟ این نویز را روی تصویر تلویزیونتان اگر آنتن درست تنظیم نباشد حتما دیدهاید. میدانیم که وقتی نویز داریم با یک ***** حذفش میکنیم. *****ی که انتخاب میکنیم باید مناسب نویزی باشید که روی تصویر سوار شده است. بهترین ***** برای نویز «نمک و فلفل» ***** میانه است که در Matlab با دستور Medfilt2 قابل استفاده است:
figureimagefilt=medfilt2(imagen);
imshow(imagefilt)
برای دستگرمی هم که شده سعی کنید تصویر نویز و تصویر ***** شده را در یک صفحة واحد نمایش دهید.
دوباره به تصویر MyImage نگاه کنید. فرض کنید میخواهیم مارک دوربین درون عکس را از روی شکل آن تشخیص دهیم. بازهم فرض کنید به روشی که بعدا بیشتر راجع بهش صحبت میکنیم فهمیدیم که دوربین درون این مختصات از تصویر قرار دارد. بین سطر ۵۹ تا ۸۴ و ستون ۱۳۱ تا ۱۷۰٫ پس از همین مختصات تصویر را با دستور imcrop میبریم.
imagecrop=Imcrop(MyImage,[ 131 59 39 25]);
در این دستور مختصات برش را اینطور مینویسم ] ارتفاع ,پهنا ,حداقل y ,حداقل x [. این قسمت بریده شده را نمایش بدهید و ببینید. در مرحله بعد سیستم تشخیصدهندة نوع دوربین احتیاج دارد که اندازه تصویر مقدار خاصی مثلاً ۱۲۰x100 باشد. پس باید اندازه تصویر برش داده شده را تغییر دهیم:
imagesz=imresize(imagecrop,[120 100]);
تصویر جدید را نگاه کنید. میبینید که به اندازه جدید در آمده است.
دستورهای معرفی شده: imnoise, medfilt2, imcrop, imresize
گام پنجم – کمی خلاقیت مهندسی!

یک فایل جدید باز میکنیم که عکسی از دانههای برنج است. میخواهیم دانههای برنج را درون عکس بشماریم. این عکس از قسمت برنج مرغوبِ خط تولید یک کارخانه است. شمارش دانههای برنج به کارخانه برنج سازی کمک میکند بداند چند درصد برنجهایش درجه یک هستند. این دستورات را اجرا کنید:
p=imread(‘rice.tif’);re=edge(p,’sobel’);
imshow(re);
re2=edge(p,’canny’);
figure, imshow(re2);
البته اول تصویر اصلی برنجها را ببینید و سپس مقایسه کنید. دو روش Sobel و Canny برای پیدا کردن لبهها مورد آزمایش قرار گرفته است. مشخص است که روش Canny اینجا بهتر جواب داده است. دو کار به عهده شماست.
a. الگوریتمی پیدا کنید که تعداد برنجهای درون عکس را بشمارد.(راهنمایی: اگر بتوانید تعداد مسیرهای بستهی درون تصویر لبهها را بشمارید تقریباً همه برنجها را شمردهاید)
b. کشف کنید که روش Canny برای مشخص کردن لبه چه روشی است و چطور عمل میکند و چرا از روش سادة Sobel بهتر است.
برای بهتر شده نتیجه کار با روش Sobel بهتر است از عملگرهای ریختشناسی (morphological) استفاده کنیم. سعی میکنیم قسمتهای نزدیک به هم لبة هر برنج را به هم متصل کنیم. با این کار لبة برنجها را کامل میکنیم و خوردگیها را از بین میبریم. اما قبل از ادامه کار دستور close all را امتحان کنید. این دستور همه figure هایی که باز هستند را میبندد تا زیاد شلوغ نشود! حالا این دستورها را اجرا کنید:
figure, imshow(re);
re4=bwmorph(re,’close’);
re5=bwmorph(re4,’bridge’);
figure;
imshow(re5);
title(‘after morphological operations’);
آخرین تصویر لبهها را با تصویر اولیه لبهها که همان re است مقایسه کنید. میبینید که در متصل کردن قطعات پیشرفت خوبی داشتیم. اولین دستور bwmorph عمل Closing را روی تصویر انجام میدهد و دومین دستور عمل Bridge. برای اینکه بدانید هرکدام از این دستورات چکار میکنند از help bwmorph استفاده کنید.
برای اینکه بهتر کار با این دستورها را یاد بگیریم سری به Demoهای Matlab میزنیم. در صفحه Matlab بنویسید: demo و با اجرا کردن این دستور لیست demoهای مختلف ظاهر میشود. Image Processing Toolbox را انتخاب کنید. و در لیست کناری Edge Detection را انتخاب کنید. بقیه ماجرا با خودتان!
دستورهای معرفی شده:edge, bwmorph, demo
گام ششم – هیستوگرام تصویر:

تا به حال تصویرهای Gray Scale را بررسی کردیم. از این به بعد هم همین کار را میکنیم! با این تفاوت که اگر تصویر ورودی رنگی بود اول Gray Scaleاش میکنیم و بعد کارها را ادامه می دهیم.تصویر flowers.tif را با دستور imread در ماتریس flowers ذخیره کنید. از دستور rgb2gray برای تبدیل فرمت رنگی تصویر به Gray Scale استفاده کنید. حالا هیستوگرام تصویر را رسم کنید. بعد یکی از قلههای نمودار هیستوگرام را انتخاب کنیدکه بین دوتا دره باشد. کاری کنید که فقط این قله درون هیستوگرام باقی بماند. بعد با دستور im2bw تصویر را از Gray Scale به سیاه سفید تبدیل کنید و نتایج را مقایسه کنید!چطور شد؟ توضیح میدهم، اینطوری:
flowers=imread(‘flowers.tif’,'tif’);flowersgray=rgb2gray(flowers);
imhist(flowersgray)
من هیستوگرام را نگاه کردم و شما هم نگاه کنید. (هیستوگرام تصویر را بادستور imhist کشیدم) قلة بین ۵۰ و ۱۰۰ را انتخاب میکنم. حالا یک ماتریس جدید میسازم طوری که فقط جاهایی که مقدار ماتریس flowersgray در محدودة ۵۰ تا ۱۰۰ است، در ماتریس جدید ۰ باشد و باقی جاها ۱ باشد.(یعنی یک ماتریس باینری یا سیاه سفید):
f=ones(size(flowersgray));
f(find(flowersgray>50&flowersgray<100))=0;
imshow(f);
دستورهای بالا به این معنی است: ماتریس f را هماندازه ماتریس flowersgray بساز. همة درایههایش را یک بگذار. بعد دستور find درون ماتریس flowersgray جستجو میکند و شماره درایههایی از ماتریس flowersgray را به من میدهد که در شرط روبهرو برایش مشخص شده. (همان محدودة ۵۰ تا ۱۰۰). این درایههای بخصوص را در ماتریس f از ۱ به ۰ تبدیل میشود. نتیجه را باهم ببینیم!
اگر دقت کنیم میبینیم که مجموعة گلدون از پس زمینه جدا شد. آنهم تنها با انتخاب یک قله درون هیستوگرام… حالا من از کجا فهمیدم که این قله مهم است؟… لابد علم غیب داشتم؟… بعدا راجع به انتخاب قلهها بیشتر خواهیم فهمید.
حالا دستور im2bw را – که تصویر را سیاه سفید میکند – امتحان کنید.
bwflowers=im2bw(flowersgray,gray);
imshow(bwflowers)
دستور im2bw حدی تعیین میکند و درایههایی که از آن حد کمتر باشند را صفر و آنهایی که بیشتر هستند را یک میکند. آیا متوجه تفاوت دو روش شدهاید؟ اگر به جای گلدون در تصویر مورد نظر، عکس پرسنلی افراد بود چه اشکالی در روش im2bw وجود داشت؟
دستورات معرفی شده: rgb2gray, imhist, ones, find
گام هفتم – اگر ما روبات بودیم…

خب فرض کنید برنامهای برای یک روبات مینویسید که با استفاده از یک دوربین به یک بازوی دقیق فرمان میدهد که سکههای «اسکروچ» را بردارد و روی هم قرار دهد. برای اینکار لازم است محل دقیق سکهها را تشخیص دهیم تا فرمان مناسب برای بازو صادر شود. برنامة زیر این کار را انجام میدهد. دقت کنید ببینید که چطور اینکار را انجام میدهد:
coins = imread(‘eight.tif’);
BW=~im2bw(coins,.75);
imshow(BW);
L = bwlabel(BW);
stats = imfeature(L,’Centroid’);
stats(7);
خروجی همان متغییر stats است. این متغییر ۷ عنصر دارد. درحالی که ۴ سکه بیشتر درون تصویر وجود ندارد! اشکال از کجاست؟…. راه حلی هم برای این به ذهنتان میرسد؟
دستورهای معرفی شده: bwlabel, imfeature



Read more: http://tayyeb.info/articles/image_processing_by_matlab/#ixzz0fKXJcjZT
Under Creative Commons License: Attribution Non-Commercial


یک کتاب به قول دوستان بسیار عالی درباره پردازش تصویر با مطلب هست به این نام
پردازش تصویر عملی مطلب
انتشارات ناقوس
مولف [مترجم] احسان سجادی


امیدوارم کمی کمک کرده باشم چیز بهتری گیر آوردم حتما میذارم یاحق

 

efa_67

عضو جدید
سلام دوست عزيز
من تا گام 5 پيش رفتم خيلي خوب بود فقط 1جا اشكال داشت چون مطلب error مي داد!!!
بعد وقتي از helpمطلب كمك گرفتم فكر كنم بايد اين دستور را بنويسيم تا اجرا بشه
p=imread('rice.png');
منتظره مطالب جديدتون هستيم
 

simicolon_ict

عضو جدید
با سلام من فارغ التحصیل الکترونیک هستم و می خواهم پردازش سیگنال یاد بگیرم از انجائیکه صفر کیلومتر مطلق هستم و هیچ تجربه عملی در رشته ام ندارم لطفا مرا راهنمایی کنید که
1- از کجا شروع کنم؟
2- کدام کتاب و منبع فارسی ؟
کدام کلاس اموزشی (موسسه و ...)؟

با تشکر فراوان
 

setare.kavir19

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

efa_67

عضو جدید
دوست عزيز بريد كتابش را بخريد همه ي دستورات را با توضيح بيشتر نوشت.ه قيمت كتاب هم مناسبه
 

morteza545

عضو جدید
سلام دوستان
كسي در زمينه پردازش تصوير با مطلب كار كرده؟من اين ترم بايد پردازش تصوير تو مطلب را ياد بگيرم كتابي هست كه بتونه تو اين زمينه به من كمك كنه؟؟؟؟؟؟؟؟
خواهشمندم كمكم كنيد
با تشكر



این یه پروژه با مطلب ولی متاسفانه
http://www.lon.ir/up/uploads/1272846814.pdf

شاید بتونی چیزی از توش بفهمی

راستی نمیدونم قبلا این رو دیدین یانه

شما از مطلب چی میخواین؟؟؟؟ بگین چی میخواین تا دوستان کمک کنند......
اگه فقط برای یادگیری میخواین همون کتاب یا help کفایت میکنه .

موفق و شاد باشید:gol:
 

ali_seraj2008

عضو جدید
ayyyyyyy cheghad az to badam miad khob b to che mg mn az to porsidam?!!!!!!!!:mad:
سلام دوست عزیز! وقتی یه سوالی رو یه جای عمومی مطرح میکنی همه حق اظهار نظر دارن بخصوص اینکه از شخص خاصی کمک نخواسته باشید. مطمئن باشید همون کتاب پردازش عملی تصویر با مطلب برای آشنایی شما بهترین گزینه هست چون به زبان ساده توضیح داده. کامیاب باشید.
 

efa_67

عضو جدید
سلام دوست عزيز setare.kavir19
مگه من چي گفتم كه شما اين حرف را زديد؟؟؟؟؟؟؟
من خودم اين كتاب را خريدم خيلي هم به دردم خورده گفتم شما هم بخريد خيلي خوبه و مفيد
بهتر نيست شما كه يه مهندس هستيد 1كم درست حرف بزنيد؟؟؟؟؟؟
 

simicolon_ict

عضو جدید
کمک

کمک

بابا یکی هم ما رو تحویل بگیره

با سلام من فارغ التحصیل الکترونیک هستم و می خواهم پردازش سیگنال یاد بگیرم از انجائیکه صفر کیلومتر مطلق هستم و هیچ تجربه عملی در رشته ام ندارم لطفا مرا راهنمایی کنید که
1- از کجا شروع کنم؟
2- کدام کتاب و منبع فارسی ؟
کدام کلاس اموزشی (موسسه و ...)؟

با تشکر فراوان
 

hasti-gh

عضو جدید
با سلام ،من یک پروژه ی 100 برگه ای درباره ی پردازش تصویر میخوام. با تشکر از شما...:gol:
 

pariya ney

عضو جدید
سلام من يه سوال پردازش تصوير دارم. سادس ولي فوري جواب ميخام اگه ميتونيد بهم كمكك كنيد . كمك بزرگي بهم كرديد. مرسي.
 
آخرین ویرایش توسط مدیر:

mzolfaghari

عضو جدید
دوستان اگر کسی پروژه ای در زمینه پردازش تصویر داره شاید حقیر بتونم کمک کنم
موفق باشید
 

ماه زنجان

عضو جدید
سلام دوست عزیز خود متلب نرم افزار قدرتمندیه راهنمایی هم توزمینه ی پردازش سیگنال داره ومنتها شمامشخص نکردی چه سیگنالیه ؟
 

نگين...NeGiN سبز

عضو جدید
کاربر ممتاز
بهترین منبع واسه پرداز تصویر کاب پرداز تصویر گنزالس هست
ترجمه اش هم موجوده هم قمی و دکتر لطفی زاده
که دکتر لطفی زاده خیلی بهتره
.
.
یک کتاب پردازش در تصویر متلب هم هست
که دستورات متلب رو کاملا معرفی کرده
اما خوب اگه بخوای پردازش تصویر خوب یاد بگیری برای شروع بهتره حلقه های for بتونی تعریف کنی که با کارکرد دستورا بهتر آشنا شی
.
.
و البته help متلب از همه بیشتر میتونه کمکت کنه

.
.
البته نیاز به گفتن این مورد نیست ولی شاید مشکل از همین جاس که باید سرچ فارسی رو بیخیال شین
سعی کنید انگلیسی سرچ کنید مطالب بیشتری یاد میگیرید
.
.
pdf هایی از استاد خودمون و هم دانشگاه شهید بهشتی دارم ه برای درک مطلب مفیده اگه لازم داشتی بگو قرارش بدم ..
موفق باشی
 

khayamboy

عضو جدید
سلام من ي مقاله در مورد تشخيص هويت دارم خواستم به يكي از ژورنالهاي معتبر بفرستم كسي مي تونه منو راهنمايي كنه ممنون ميشم
 

khahmadian

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

bitaok11

عضو جدید
سلام پست خیلی کاملو خوبی بود اگه امکانش هست بازم از این مطالب بذارید
 

Similar threads

بالا