پردازش تصویر در متلب
آموزش متلب پردازش تصویر

پردازش تصویر در متلب

باز کردن عکس های درون ویندوز با متلب :

فایل های عکس درون ویندوز را به دو روش می توانیم باز کنیم. روش اول این است که فایل در درون خود نرم افزار متلب باز شود که برای مواردی مفید است که بخواهیم با دستوراتی، تغییرات مورد نظر خود را بر عکس اعمال کنیم. روش دوم این است که عکس توسط برنامه ای باز شود که خود ویندوز برای آن نوع فایل تعیین کرده است که این مورد نیز می تواند در ساخت برنامه های کاربردی توسط متلب، مفید واقع شود.

در ادامه، دستورات مربوط به این دو روش را شرح خواهیم داد.

باز کردن عکس به وسیله خود نرم افزار متلب :

چنانچه بخواهیم که عکس به وسیله خود نرم افزار متلب باز شود، باید از دستور open استفاده کنیم. به مثال زیر توجه کنید :

مثال :

open(‘c:\1.jpg’)

نتیجه :

متلب پنجره ای را باز کرده و عکس مورد نظر را نمایش می دهد.

باز کردن عکس به وسیله نرم افزارهای ویندوز :

چنانچه بخواهیم عکس یا هر فایل دیگر در برنامه ای باز شود که ویندوز برای آن مشخص کرده است (نه در نرم افزار متلب)، باید از دستور winopen استفاده کنیم. به مثال زیر توجه کنید :

مثال :

winopen(‘c:\1.jpg’)

نتیجه :

عکس 1.jpg در برنامه ای که ویندوز برای باز کردن عکس ها مشخص کرده است، باز می شود. دقت کنید که آدرس محل عکس را بین دو علامت ‘ گذاشته ایم.

وارد کردن عکس های ویندوز به درون متلب :

فرض کنید در یکی از درایوهای ویندوز خود، عکسی دارید که می خواهید به وسیله نرم افزار متلب، بر روی آن عکس، تغییراتی را اعمال کنید. مسلما قبل از هر چیز، نیاز دارید که آن عکس را در نرم افزار متلب وارد کنید. برای این منظور می توانید از هر یک از روش های زیر اقدام کنید :

روش اول :

در پنجره اصلی متلب، بر روی گزینه Open file (به شکل ) کلیک کنید. در پنجره ای که باز می شود، گزینه Files of type برابر All MATLAB files قرار داده شده است، باید این گزینه را به All Files تغییر دهید تا بتوانید هر نوع فایلی را انتخاب کنید (مثلا عکسی با فرمت jpeg). سپس فایل خود را یافته و بر روی گزینه Open کلیک کنید. پنجره ای به شکل زیر باز می شود :

(matlab) آموزش متلب

در این مرحله، متلب می خواهد اطلاعات عکس شما را در متغیری ذخیره کند. اگر نام عکس شما یک نام مجاز برای متلب باشد، متلب همان نام را برای متغیر انتخاب می کند و اگر نام، غیر مجاز باشد، متلب آن را تغییر می دهد. مثلا اگر عکسی با نام 1.jpeg را انتخاب کرده باشید، متلب نام x1 را برای متغیر انتخاب می کند.

شما می توانید بر روی نام انتخاب شده، دو بار کلیک کنید و نامی دیگر را انتخاب نمایید. پس از انتخاب نام مورد نظر خود، بر روی گزینه Finish کلیک کنید تا پنجره بسته شود.

برای آن که عکس خود را در متلب مشاهده کنیم، دستور زیر را اجرا می کنیم (برای متغیر با نام x1) :

 

image(x1)
title ‘x1’
axis off
axis image

نتیجه :

نرم افزار متلب، پنجره ای را باز کرده و عکس مورد نظرمان را نمایش می دهد.

روش دوم : استفاده از دستور imread

در این روش نیز اطلاعات عکس در متغیری ذخیره خواهد شد و تنها تفاوت با روش قبل این است که باید آدرس عکس مورد نظر را به طور دقیق در دستور imread بنویسید. به مثال زیر توجه کنید :

مثال :

 

A = imread(‘c:\1.jpg’);

نتیجه :

متلب متغیری با نام A ایجاد می کند که حاوی اطلاعات عکس می باشد. برای مشاهده عکس در متلب، کدهای زیر را اجرا می کنیم :

 

image(A)
title ‘A’
axis off
axis image

نتیجه :

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

 

تغییر اندازه یک تصویر با دستور imresize در متلب :

با استفاده از دستور imresize در متلب، می توانیم اندازه یک تصویر را تغییر بدهیم. با دستور imresize ، می توانیم تعیین کنیم که اندازه تصویر تا چه اندازه بزرگتر یا کوچکتر شود. دستور imresize را می توانیم به چندین روش مختلف به کار ببریم. این روش ها را در ادامه توضیح می دهیم.

تغییر اندازه بر اساس ضریبی از اندازه تصویر اولیه :

با فرض اینکه اطلاعات تصویر، در متغیر image ذخیره شده باشد، آنگاه چنانچه دستور imresize را به صورت imresize(image,A) به کار ببریم، که در آن A یک ضریب عددی است، آنگاه دستور imresize ، تصویر image را به اندازه ضریب A ، بزرگتر یا کوچکتر می کند. اگر ضریب A بین 0 تا 1 باشد، آنگاه تصویر حاصل، از تصویر image ، کوچکتر خواهد بود و چنانچه ضریب A ، بزرگتر از 1 باشد، آنگاه تصویر حاصل، از تصویر image ، بزرگتر می شود. به مثال زیر توجه کنید :

مثال :

کدهای زیر را می نویسیم :

 

clear all
close all
clc

image=imread(‘friend.jpg’);
imshow(image)

image_new=imresize(image,0.5)
figure
imshow(image_new)

ابتدا تصویری با نام friend.jpg را با دستور imread ، در نرم افزار متلب وارد می کنیم و آن را با دستور imshow ، نمایش می دهیم. سپس با دستور imresize ، اندازه تصویر را به نصف کاهش می دهیم (ضریب برابر با 0.5 انتخاب شده است). در پایان، تصویر حاصل شده (با نام image_new) را با دستور imshow نمایش داده ایم. دستور figure ، برای باز شدن یک پنجره مخصوص شکل جدید است تا در انتها، هر دو تصویر را داشته باشیم.

نتیجه :

تصویر اولیه به صورت زیر می باشد :

(matlab) آموزش متلب

و تصویر کوچک شده، به صورت زیر :

(matlab) آموزش متلب

تغییر اندازه بر اساس تعداد ردیف ها و ستون های ماتریس اطلاعات تصویر ثانویه :

می توانیم اندازه تصویر ثانویه را بر اساس تعداد ردیف ها و تعداد ستون های ماتریس مربوط به آن، تعیین کنیم. برای این منظور، باید از دستور imresize ، به صورت imresize(image, [numrows numcols]) استفاده کنیم که در آن، پارامتر numrows برابر تعداد ردیف ها و پارامتر numcols برابر تعداد ستون های مورد نظر ما برای ماتریس مربوط به تصویر ثانویه می باشد. همان مثال قبل را این بار با این روش می نویسیم :

مثال :

کدهای زیر را می نویسیم :

 

clear all
close all
clc

image=imread(‘friend.jpg’);
imshow(image)

image_new=imresize(image,[200,80])
figure
imshow(image_new)

تعداد ستون ها را عمدا، کمتر از تعداد ردیف ها، انتخاب کرده ایم تا تصویر در جهت افقی، فشرده تر شود.

نتیجه :

تصویر اولیه به صورت زیر می باشد :

(matlab) آموزش متلب

و تصویر کوچک شده، به صورت زیر :

(matlab) آموزش متلب

به دست آوردن جمع دو تصویر با دستور imadd در متلب :

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

مثال :

clear all
close all
clc

img_1=imread(‘image_1.jpg’);
imshow(img_1);

img_2=imread(‘image_2.jpg’);
figure
imshow(img_2);

img_3=imadd(img_1,img_2);
figure
imshow(img_3);

نتیجه :

تصویر اول :

(matlab) آموزش متلب

تصویر دوم :

(matlab) آموزش متلب

تصویر حاصل از جمع دو تصویر :

(matlab) آموزش متلب

به دست آوردن تفریق دو تصویر با دستور imsubtract در متلب :

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

مثال :

clear all
close all
clc

img_1=imread(‘image_1.jpg’);
imshow(img_1);

img_2=imread(‘image_2.jpg’);
figure
imshow(img_2);

img_3=imsubtract(img_1,img_2);
figure
imshow(img_3);

نتیجه :

تصویر اول :

(matlab) آموزش متلب

تصویر دوم :

(matlab) آموزش متلب

تصویر حاصل از تفریق دو تصویر :

(matlab) آموزش متلب

جلسات قبلی:

ایجاد امکان جابجا کردن شکل رسم شده در یک پنجره متلب

-تغییر ویژگی های شکل بعد از رسم  در متلب

متن در شکل های متلب

محور های مختصات در متلب

تنظیمات شکل در متلب

رسم شکل های هندسی ساده

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

رسم احتمال نرمال در متلب

نمودار های خاص در متلب

رسم 2 یا چند شکل

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *