پردازش تصویر در متلب
پردازش تصویر در متلب (Image processing)
پردازش تصاویر امروزه بیشتر به موضوع پردازش تصویر دیجیتال گفته میشود که شاخهای از دانش رایانه است که با پردازش سیگنال دیجیتال که نماینده تصاویر برداشته شده با دوربین دیجیتال یا پویش شده توسط پویشگر هستند سر و کار دارد. پردازش تصاویر دارای دو شاخه عمدهٔ بهبود تصاویر و بینایی ماشین است. بهبود تصاویر دربرگیرندهٔ روشهایی چون استفاده از فیلتر محوکننده و افزایش تضاد برای بهتر کردن کیفیت دیداری تصاویر و اطمینان از نمایش درست آنها در محیط مقصد(مانند چاپگر یا نمایشگر رایانه)است، در حالی که بینایی ماشین به روشهایی میپردازد که به کمک آنها میتوان معنی و محتوای تصاویر را درک کرد تا از آنها در کارهایی چون رباتیک و محور تصاویر استفاده شود. یکی از مهم ترین مراجع پردازش تصویر در متلب کتاب (Digital Image Processing - Rafael C. Gonzalez,Richard E. Woods ) رافائل گنزالس می باشد که در ادامه قابل دانلود است: فصل اول - مقدمه دانلود فصل دوم - مبانی تصویر دیجیتال دانلود فصل سوم - بهبود تصویر در حوزه مکان دانلود فصل چهارم - بهبود تصویر در حوزه فرکانس دانلود فصل پنجم - بازیابی تصویر دانلود فصل ششم - پردازش تصاویر رنگی دانلود فصل هفتم - موجک و پردازش چند دقتی دانلود فصل هشتم - فشرده سازی تصاویر دانلود فصل نهم - مورفولوژی دانلود فصل دهم - بخش بندی تصویر دانلود فصل یازدهم - توصیف و نمایش تصویر دانلود دانلود اسلاید های کتاب گنزالس دانلود حل تمارین کتاب گنزالس (Digital Image processing Gonzalez - Solution Manual 3rd edition) دانلود تصاویر کتاب گنزالس
پردازش تصویر
میتوان با نصب دوربین رنگی روی ربات خود و بوسیله دستورات وبتز تصاویر را دریافت کرد ، سپس این تصاویر را با برنامه نویسی در محیط وبتز به زبان متلب پردازش نمود. مثلا لبه های آن را یافت یا مقدار رنگ آبی و قرمز و سبز تصویر را تشخیص داد. چنین مثالی همراه خود نرم افزار متلب در پوشه sample و سپس package وجود دارد. در زیر تصویر این ربات و پنجره پردازش در متلب را می بینیم:https://plus.google.com/photos/104208706472758005048/albums/5827001677745242657/5827001680786778114?authkey=CPmsuMLC_dmueA
مفهوم تفریق دو تصویر در متلب (MATLAB)
تفریق دو تصویر هم اندازه بدین مفهوم است که شدت روشنایی پیکسل های متناظر دو تصویر را از هم کم کنیم . فرض کنید می خواهیم تغییرات مغز افرادی را بررسی کنیم که دچار بیماری آلزایمر هستند. برای این منظور می توانیم تصویری از یک مغز سالم را در مراحل مختلف با تصویر مغز فردی که دچار بیماری آلزایمر است ، مقایسه کنیم . با اعمال عملگر فوق بر روی دو تصویر مذکور نقاطی از مغز که در آن نقاط مغر دچار تغییر شده است مشخص می شوند . تصویر زیر عکس اسکن PET مغز نرمال و بیمار را به همراه حاصل تفریق آن ها نشان می دهد : تصویر نویز تصویر نویزدار تصویر بدون نویزهنگام تفریق مقادیر پیکس ها ، مقادیر منفی را به مقدار صفر تبدیل می کنیم . همچنینی می توانیم هنگام تفرق از قدرمطلق تفریق نیز استفاده کنیمبه عنوان یک مثال کاربردی از تفریق دو تصویر می توان به شناسایی حرکت در سیستم های دوربین مدار بسته اشاره کرد. زمانی می گوییم حرکت رخ داده است که در بین دو فریم متوالی گرفته شده از دوربین اختلاف وجود داشته باشد. و همانطور که در ابتدا یادآور شدیم، برای محاسبه اختلاف بین دو تصویر از عملگر تفریق استفاده می کنیم. بنابراین با تفریق فریم فعلی و فریم قبلی گرفته شده از دوربین می توانیم اختلاف موجود در دو تصویر را پیدا کنیم. از دیگر کاربردهای تفریق دو تصویر می توان به حذف پشت زمینه ثابت از تصویر اشاره کرد. پردازش تصویر در MATLAB : برای تفریق دو تصویر هم اندازه از تابع imsubtract در MATLAB می توان استفاده کرد. به عنوان مثال مجموعه دستورات زیر دو تصویر را خوانده و حاصل تفریق آن ها را نشان می دهد.>> im = imread('rice.png'); >> imshow(im); >> imBack = imread('background.png'); >> imshow(imBack);>> ...
صوت در متلب
در متلب توابعی وجود دارند که به منظور کار با صوت طراحی شده اند.در این مقاله طرز کار این توابع را با هم مرور می کنیم. beep: ساده ترین دستور تولید صدا در متلب دستورbeepاست که همانطوری که از اسمش پیداست یک صدای بیپ تولید می کند.این صدا برای اجرا به هنگام تولید پیامهای اخطار در برنامه هایتان می تواند مفید باشد.می توان حالت بیپ کامپیوتر را فعال و غیر فعال کرد.به این صورت: beep on beep off اگر حالت بیپ کامپیوتر غیر فعال باشد دیگر دستورbeepتولید صدا نخواهد کرد. wavrecord: این تابع پس از فراخوانی،از یک دستگاه ورودی صدا مثلا میکروفون در زمان مشخصی تحت فرکانس تعیین شده ای صدا را ضبط می کند.توجه داشته باشید که برای ضبط صدا باید سیستم در حال ضبط باشد.برای این منظورvolume controlرا باز کنید.در ویندوزxpبه این آدرس بروید: Start/All Programs/Accessories/Entertainment/Volume control از منویOptionsگزینه یPropertiesرا انتخاب کنید.Mixer Deviceرا در یک حالتInputقرار داده و دکمه ی رادیوییRecordingرا انتخاب کنید. ساختار تابع به این صورت است: data=wavrecord(n,fs); این تابع تعدادnنمونه از یک سیگنال صوتی را تحت فرکانسfsهرتز ضبط می کند و آن را در متغیرdataذخیره می کند.مقدار پیش فرضfsبرابر 11025هرتز است.حال به تناسب زیر توجه کنید: 1secàfs Hz t secàt*fs Hz همانطور که گفته شد تابعwavrecordتعدادnفرکانس را ضبط می کند.بنابراین اگر بخواهیمtثانیه صدا ضبط کنیم بایدt*fsفرکانس را ضبط کنیم.یعنی تابع را تحت این ساختار فراخوانی کنیم: data=wavrecord(t*fs,fs); wavwrite: حال باید صدای ضبط شده را در یک فایل صوتی ذخیره کنیم.برای این منظور از تابعwavwriteاستفاده می شود.این تابع ماتریس حاوی صدای ضبط شده را در یک فایل با پسوند.wavذخیره می کند.فایل تولید شده قابل پخش در کلیه ی برنامه های پخش صداست. wavwrite(data,fs,'filename'); به متغیرfsدر ساختار تابع توجه کنید.مقدار متغیرfsدر ساختار تابعwavwriteباید با مقدار متغیرfsدر ساختار تابعwavrecordبرابر باشد.در واقع باید صدا را با همان فرکانسی که ضبط کرده ایم در فایل ذخیره کنیم.در غیر این صورت صدا زیر یا بم می شود. wavread: این تابع یک فایل صوتی با پسوند.wavرا می خواند و آن را در متغیرdataو فرکانسش را در متغیرfsذخیره می کند. [data fs]=wavread('filename'); wavplay: این تابع ماتریس حاوی صوت را تحت فرکانس مشخصی پخش می کند. wavplay(data,fs); sound: طرز کار این تابع مشابهwavplayاست. sound(data,fs); باز هم یادآور می شوم که برای پخش صدا باید فرکانس پخش با فرکانس ضبط برابر باشد.
پردازش تصوير با مطلب (قسمت1)
دوستان خوبم سلام .... همونطور که قول داده بودم قراره بخش پردازش تصویر پروژه با مطلب رو از این مقاله شروع کنیم. خوب دوستان ما پروژه خودمون رو (ربات مسیریاب توسط پردازش تصویر) به چند بخش تقسیم می کنیم و هر بخش رو بصورت مجزا آموزش میدم. این ربات توسط یک دوربین فیلم برداری ساده مثل وبکم کامپیوتر و یا حتی سادتر٬ بطور مکرر از مسیر تصاویری تهیه تولید می کنه (پایان مرحله اول) در مرحله بعدی این تصاویر پردازش و مسیر حرکت ربات از اطلاعات بدست آمده از آنها استخراج می شود (پایان مرحله دوم) و در مرحله آخر کاری که میکروکنترلر در رباتهای عادی انجام می دهد ما با استفاده از پورت های کامپیوتر انجام داده و فرامین حرکتی را برای سیستم کنترل موتورهای ربات ارسال می کنیم (چپ گرد٬ راست گرد). اما بیاد مراحل رو از وسط شروع کنیم! یعنی مرحله پردازش تصویر. فکر می کنیم یه تصویر توسط دوربین در محیط مطلب در اختیار ما قرار داده شده و ما پردازشات لازم جهت استخراج مسیر حرکت رو روی اون انجام میدیم٬ تا بعدا برسیم به مراحل بعدی... مقدمه دیگه بسه بریم سر اصل مطلب: اگر همونطور که گفتم به یه کتاب مطلب نگاهی انداخته باشید حتما از همون ابتدای امر متوجه شدید که در این نرم افزار اکثر عملیات ها برپایه ماتریس ها انجام میشه (ضرب٬ تقسیم٬ جمع٬...). مطلب یجورایی شبیه یه زبون برنامه نویسی هستش و ما در اون از متغیرها٬ عملگرها و توابع و... بسبک زبانهای برنامه نویسی جهت حل مثائل خودمون استفاده می کنیم. اصلا بیاید یه مثال عملی بزنیم: >> I = 1:10 I = 1 2 3 4 5 6 7 8 9 10اجرا کردن دستور I = 1:10 باعث ایجاد یک متغیر به نام I و به شکل یک ماتریس یک بعدی با محتوای ۱ تا ۱۰ می شود (این اولبن و آخریم مثال سطح پایینم بود! توقع دارم اینارو خودتون با خوندن یک کتاب یاد بگیرید) حالا بریم سراغ یک مثال تخصصی: RGB = imread('peppers.png'); ٪متغیر = imread('مسیر ونام فایل تصویر');imshow(RGB); تابع "imread" یکی از توابع جعبه ابزار پردازش تصویر می باشد که جهت لود کردن یک فایل توصویری در یک متغیر به سبکی که مشاهده می کنید استفاده می شود. می بینید که در کادر متغیرها (بطور پیشفرض کادر بالا سمت چپ میحیط مطلب) متغیر RGB با ابعاد <384x512x3 unit8> ایجاد شده است. یعنی یک ماتریس سه بعدی که بعد اول ۳۸۴ خانه و معرف تعداد پیکسلهای ارتفاع تصویر٬ بعد دوم ۵۱۲ پیکسل طول تصویر و بعد سوم ۳ خانه که چون تصویر از نوع رنگی (RGB) می باشد یک خانه حاوی مقدار RED و خانه های بعدی نگدارنده مقادیر GREEN و BLUE پیکسل مورد نظر می باشد. جهت درک قضیه به تصویر مقابل دقت کنید.unit8 نوع تصویر RGB در مطلب را مشخص می کند. باید بدانید سه نوع ...
عناوین پروژه های پردازش تصویر قابل ارائه در کمترین زمان و هزینه پایین
اینم کارهای دیگه ای که میشه با پردازش تصویر انجام داد: بازشناسی و آشکارسازی اشیا و مشتقات آن مانند تشخیص چهره، حرکات دست، علائم و حالات چهره تصاویر پزشکی مانند تشخیص بیماریها در شبکیه چشم، MRI و CTSCAN و .... کشاورزی مثلا تعیین درجه ممتازی پسته یا خرما از تصاویر دیجیتال. در صنعت برای تشخیص کالاهای معیوب مانند شیشه خش دار و یا موارد دیگه تعیین حرکت یا motion و ردیابی اشیاء، دست و چشم عیین نوع حرکات دست و پا آنالیز بازیها حتی بازی فوتبال و ... تشخیص اسکناس بیومتریک:شناسایی چهره، شناسایی عنبیه ، شناسایی اثر انگشت ، شناسایی اثر کف دست و... تشخیص چهرهFace Recognition and Detection تشخیص جنسیت از روی چهره تشخیص چهره به روش PCA با استفاده از دیتابیس تشخیص چهره با استفاده از هیستوگرام تصاویر (به همراه مقاله) تشخيص چهره انسان با استفاده طبقه بندي كننده چندخطي تشخيص چهره انسان به روش تحلیل تفکیکی خطی دو بعدی 2D-LDA (به همراه مقاله) تشخیص چهره از روی چشم به روش شبکه عصبی تشخیص چهره با استفاده از روش ویولا جونز(viola and jonz ) تشخیص جنسیت از روی چهره افراد تشخیص جنسیت از روی صدای افراد تشخیص پوست افراد مشخص کردن آن در تصویر تشخیص اثر انگشت به روش دیتابیس (به همراه مقاله) تشخیص حرکت از طریق ورودی دوربین یا وبکم تشخیص کارکتر و عدد در تصویر OCR تشخیص و شمارش یک حرف خاص در تصویر تشخیص عدد فارسی در تصویر (به همراه آموزش فارسی) تشخیص حروف فارسی در تصویر به روش تطبیق الگو تشخیص حروف فارسی در تصویر به روش شبکه عصبی تشخیص سایه و متمایز ساختن آن در تصویر برنامه تشخیص اثر انگشت با استفاده از دیتابیس (همراه با مقاله) برنامه تشخیص بارکد barcode برنامه تشخیص بارکد شامل تشخیص محل بارکد از روی تصویر محصول، استخراج عدد و تشخیص کشور سازنده ترمیم تصویر Image inpainting ترمیم ویدئو Video inpainting کاهش نویز در تصویرNoise Canceling تشخیص لبه تصویر توسط الگوریتم کلونی مورچه ها ACO (به همراه مقاله) تشخیص دایره در تصویر پنهاننگاری تصاویر یا Steganography با متلب پنهان نگاری تصویر به روش DCT و LSB پنهان نگاری تصویر در فایل صوتی تشخیص سرعت خودرو به کمک پردازش تصویر تشخیص تعداد خودرو به کمک پردازش تصویر جدا سازی دندان از تصاویر X-ray به کمک پردازش تصویر فشرده سازی تصاویر به روش های DTC2 ، SVD و WAVELET تعیین سلامت میوه مانند سیب به کمک پردازش تصویر (كيفيت سنجی) برنامه شناسایی تومور مغزی در عکس گرفته شده از مغز MRI تشخیص غدد سرطانی (سرطان سینه) به کمک پردازش تصویر تشخیص و شمارش دانه های برنج در تصویر هیستوگرام بدون استفاده از دستور (histeq) متلب استخراج پلاک خودرو از کل تصویر تشخیص پلاک خودرو (پلاک های ...
جزوه پردازش تصوير
جزوات درسي پردازش تصوير در قالب فايل پاور پوينت از لينك زير قابل دانلود استhttp://een.iust.ac.ir/profs/Beheshti/Digital%20Image%20Processing/Course%20powerpoints/
افزایش کنتراست تصویر
اگر به یه کتاب مطلب نگاهی انداخته باشید حتما از همون ابتدای امر متوجه شدید که در این نرم افزار اکثر عملیات ها برپایه ماتریس ها انجام میشه (ضرب٬ تقسیم٬ جمع٬...). مطلب یجورایی شبیه یه زبون برنامه نویسی هستش و ما در اون از متغیرها٬ عملگرها و توابع و... بسبک زبانهای برنامه نویسی جهت حل مثائل خودمون استفاده می کنیم. اصلا بیاید یه مثال عملی بزنیم: >> I = 1:10 I = 1 2 3 4 5 6 7 8 9 10اجرا کردن دستور I = 1:10 باعث ایجاد یک متغیر به نام I و به شکل یک ماتریس یک بعدی با محتوای ۱ تا ۱۰ می شود حالا بریم سراغ یک مثال تخصصی: RGB = imread('peppers.png'); ٪متغیر = imread('مسیر ونام فایل تصویر');imshow(RGB); تابع "imread" یکی از توابع جعبه ابزار پردازش تصویر می باشد که جهت لود کردن یک فایل تصویری در یک متغیر به سبکی که مشاهده می کنید استفاده می شود. می بینید که در کادر متغیرها (بطور پیشفرض کادر بالا سمت چپ میحیط مطلب) متغیر RGB با ابعاد <384x512x3 unit8> ایجاد شده است. یعنی یک ماتریس سه بعدی که بعد اول ۳۸۴ خانه و معرف تعداد پیکسلهای ارتفاع تصویر٬ بعد دوم ۵۱۲ پیکسل طول تصویر و بعد سوم ۳ خانه که چون تصویر از نوع رنگی (RGB) می باشد یک خانه حاوی مقدار RED و خانه های بعدی نگدارنده مقادیر GREEN و BLUE پیکسل مورد نظر می باشد. جهت درک قضیه به تصویر مقابل دقت کنید.unit8 نوع تصویر RGB در مطلب را مشخص می کند. باید بدانید سه نوع مکعب رنگ unit8, unit16 و Double برای تصاویر رنگی در مطلب در نظر گرفته شده است. برای مثال در کلاس unit8 هر بعد مکعب که بیانگر یکی از رنگهای قرمز٬ سبز و آبی می باشد دارای ۲۵۶ (۲۸) مقدار تعیین شده می باشد که در کل ۲۵۶*۲۵۶*۲۵۶= ۲۲۴ رنگ مختلف تولید می شود. برای کلاسهای دیگر هم بهمین روال می باشد با این تفاوت که تعداد رنگ آنها بیشتر می باشد.دستور بعدی (خط دوم)٬ دستور "imshow" جهت نمایش تصاویر موجود در متغیر ها با فرمت ذکر شده می باشد. بعد از فراخوانی این دستورات ابتدا اطلاعات موجود در تصویر 'peppers.png' (موجود در مسیر جاری مطلب) داخل متغیر RGB ریخته شده و با دستور imshow مرورگر تصاویر نرم افزار عکس مربوطه را نمایش می دهد. »افزایش کنتراست تصویرخوب حالا بیاید یکم کارای پردازشی روی تصاویر انجام بدیم. تصویر pout.tif رو در یک متغیر لود کنید و اون رو نمایش برای خودتون بدید (دقیقا مثل کد زیر). می بینید که این عکس کنتراست پایینی داره ! I = imread('pout.tif');imshow(I); برای مشاهده نحوه توزیع شدت رنگ در یک تصویر می توانید با صدا زدن دستور 'imhist' نمودار هیستوگرام آن را رسم کنید (شکل ۱) . figure, imhist(I); می بینید که در شکل ۱ رنج شدت نازک می باشد و تمام پتانسیل ۰ تا ۲۵۵ را پوشش نمی دهد بدین ...
چند جمله ای ها در متلب MATLAB
برازش منحني چند جمله اي ضرايب بهترين چند جمله اي را پيدا مي كند كه از ميان مجموعه نقاط داده شده تابع polyfit عبور مي نمايد. به عنوان مثال مجموعه نقاط زير را در نظر بگيريد: » x=[1 2 3 4 5]; » y=[5.5 43.1 128 290.7 498.4]; دستور زير ضرايب بهترين چند جمله اي درجه سوم را محاسبه مي كند كه از بين نقاط فوق مي گذرد: » p=polyfit(x,y,3) p = -0.1917 31.5821 -60.3262 35.3400 حال مي توانيد براي مقايسه منحني محاسبه شده و داده هاي اوليه را در يك نمودار رسم كنيد: » x2=1:.1:5; » y2=polyval(p,x2); » plot(x,y,'o',x2,y2) ************************************** مشتق چند جمله اي شتق چند جمله اي را مي توانيد با بكار بردن تابع polyder محاسبه كنيد. » c=polyder(a) c = 2 1 مشتق حاصلضرب دو چند جمله اي a*b را مي توانيد به صورت زير بدست آوريد: » d=polyder(a,b) d = 3 0 0 در صورتي كه تعداد آرگومانهاي خروجي تابع polyder برابر ٢ باشد، تابع مشتق تقسيم دو چند جمله اي جمله اي را تعيين مي نمايد: » [q,d]=polyder(a,b) q = 1 -2 -2 d = 1 -2 1 *********************** ضرب و تقسيم چند جمله اي ها براي ضرب و تقسيم چند جمله ايها مي توانيد توابع deconv و conv را بكار ببريد. چند جمله اي هاي زیر را در نظر بگيريد. حاصلضرب اين دو چند جمله اي به طريق زير بدست مي آيد: » a=[1 1 1]; b=[1 -1]; » c=conv(a,b) c = 1 0 0 -1 و تقسيم a/b نيز به صورت زير قابل محاسبه است: » [q,r]=deconv(a,b) q = 1 2 r = 0 0 3 ************************** محاسبه مقدار يك چند جمله اي تابع polyval مقدار چند جمله اي را در هر نقطه محاسبه مي نمايد. براي مثال مقدار p در نقطه 5 به طريق زير محاسبه مي گردد: » polyval(p,5) ans = 120 **************************** ريشه هاي يك چند جمله اي يك چند جمله اي در MATLAB به صورت يك بردار سطري كه مولفه هاي آن ضرايب چندجمله اي به ترتيب نزولي هستند معرفي مي شود. براي مثال چند جمله ای p(x)= در MATLAB به شكل زير معرفي مي گردد: » p=[1 0 -2 5]; ريشه هاي يك چند جمله اي را مي توانيد به صورت زير بدست آورد: » r=roots(p) r = -2.0946 1.0473 + 1.1359i 1.0473 - 1.1359i با دانستن ريشه هاي معادله مي توانيد ضرايب چند جمله اي مربوطه را محاسبه نمائيد: » p2=poly(r) p2 = 1.0000 0.0000 -2.0000 5.0000 ****************************************************************** مهندس عربعامری 09361849951 آماده متخصص انواع شبیه سازی ها در رشته برق قدرت منبع: http://mathworks.ir/matlab-learning