آموزش برنامه نویسی در متلب 3 (3)

آموزش برنامه نویسی و پردازش تصویر در متلب matlab

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

( کار با تابع های imread , imshow , figure , zeros , imwrite  imtool , imresize , Copyright )

ادامه آموزش نرم افزار متلب بخش3

در این بخش با آموزش و مثال برای کار با تابع های imread , imshow , figure , zeros , imwrite , imtool , imresize , Copyright در زبان برنامه نویسی متلب نیز آشنا خواهیم شد.

 

کار با تابع های imread , imshow , figure , zeros , imwrite , imtool , imresize , Copyright در متلب

 

>>imshow(img)
>>size(img)
ans=
384        512         3

سایز تصویر از نظر افقی عمودی  384   در  512  هست . 3 یعنی در سه طبقه مجزا ورنگی ذخیره سازی شده

(کار با تابع imshow در متلب)

>>size(img( : ,  :  ,  1 ))

(در اندیس گزاری ماتریس ها دو نقطه تنها یعنی همه )همه سطح ها و ستون ها در طبقه اول

 

کار با تابع های imwrite , imtool , imresize , Copyright در زبان برنامه نویسی متلب

 

یک تصویر سیاه و سفید میشود برای این که فقط رنگ قرمز را دارد نشان میدهد ان جاهایی که تیره هستن یعنی نور قرمز نداشته داخلش حالا مقایسه بکنید یک فیگور جدید ایجاد کنید ( تابع imshow در متلب )

>>imshow(img ( :  ,  :  ,  1  ))
>>figure ; imshow (img)    

جاهایی که رنگ قرمز دارد سفیدهستند وجاهایی که قرمز ندارد تیره است

 

آموزش و مثال برای کار با تابع های imread , imshow , figure , zeros , imwrite , imtool , imresize , Copyright در زبان برنامه نویسی متلب

درآموزش پردازش تصویر در متلب اگر طبقه دوم را نمایش بدهیم چه اتفاقی می افتد ؟

>>figure; imshow (img ( :  ,  :  ,  2))

حالا برعکس شد  جاهایی که سبز نیستن تیره ترن

 

 

کار با تابع های imwrite , imtool , imresize , Copyright در زبان برنامه نویسی متلب

 

کانال های مختلف رنگی هستندکه این سه تا  روی هم ترکیبشان باعث میشود که شما تصویر را رنگی ببینید

حالا در ادامه آموزش پردازش تصویر تابع imread در متلب یک تصویری که ذاتا سیاه و سفید هست را بررسی کنیم

>>img = imread(‘ rice . png ‘);
>>imshow (img)


یک لایه هست

 

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

تاحالا دو جور تصویر را دیدیم حالت رنگی و گری اسکیل (سطح خاکستری )

 

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

آموزش تابع imtoolدر متلب

 

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

 


>>img=zeros(400,400);
>>imshow (img)
>>img (100:200 , 100:200)= 1 ; 

 

آموزش تابع imread imshow figure zeros imwrite imtool imresize در متلب

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

چیزی که الان اینجا داریم یک تصویر Black And White ( سیاه و سفید) اصطلاحا به این تصاویر تصاویر Logical (منطقی) هم میگویند.

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

تابع imread در متلب یه نوع دیگه از تصاویر هست که اصطلاحا میگن Index Color نقشه های فرش اونهایی که خیلی از نظر هنری ناب هستن بهترین مصداق برای تصاویرIndex شده و Quantites هستن  . تصاویر مختلفی که میان به جای این که همه رنگها را در خودشان داشته باشند یک سری رنگهای شماره گزاری شده در خودشان ایجاد میکنند یا اندیس گزاری شده اینها را اصطلاحا Index Color Imasge که نوع چهارمی از تصاویر دیجیتال هستند که معمولا در محیط وب برای این که پهنای باند را کمتر اشغال بکنند از این نوع تصاویر استفاده میشود

معروف ترین نوع این تصاویر فورمت gif ,png ,  اینها حالت اندیس گزاری شده را استفاده میکنند  ولی هستند توی فرمتهای دیگر که این نوع اندیس گزاری ها  استفاده میشود .

اگر تصویر شما اندیس گزاری شده باشد imread  را اگر فرا خوانی میکنید با دو تا خروجی اگر استفاده بکنید تصویر اول میگوید که نقشه چی هست  map  نقشه رنگ هست  . تنها انگیزه این است که حجم داده را پایین تر بیاورند به جای این که با یک ماتریس سه طبقه کاربکنید با یک ماتریس یک طبقه کار میکنید (داده سه برابر کاهش پیدا میکند ) فقط در کنار اینها باید بگوییم که رنگها محدودند  و هر رنگی امکان حضور در تصویر را ندارد  به جای این که تصویر را وقتی نمایش میدهیم . (استفاده از تابع imshow  و  imread در متلب)

>>img=imread(‘ rice . png ‘) ;
>>imshow (img )

 این کار را انجام میدهد ImShowبه طور مستقیم هم  اگر علاقه مند به نمایش محتویات یک فایل باشید تابع 

>>imshow( ‘coins .png ‘)




ابع های imread , imshow , figure , zeros , imwrite , imtool , imresize , Copyright متلب

تابع دیگه ای که داریم تابع imwrite هست اگر که شما یک تصویری را بخواهید ذخیره کنید این به شما کمک خواهد کرد .

ما امدیم یک فایل 400 در 400 ایجاد کردیم ، بخش 100 تا 200 این را یک کردیم (این یک تصویر دیگه) (استفاده و کار با تابع imwrite در متلب)

>>img=zeros(400 , 400 );
>>img (100 : 200 , 100 :200 )=1;
>>imwrite (img , ‘mypic .gpg ‘ );

رایت بکن همین img را  تو MyPic.jpg

 اگر Explore  بخواهیم ببینیم یک فایل تصویری ایجاد شده

لذا یک دیتا یی را حتی اگر تصویر هم نباشد میشود به شکل یک تصویر ذخیره سازی کرد . البته سعی باید بکنید از فرمت Last Less استفاده بکنید الان jpg فرمت Last Less نیست چیزی که ذخیره میکند واقعا ان تصویری نیست که ما به ان دادیم چون از تکنیک های فشرده سازی  استفاده میکند ودقیقا اطلاعاتی را که ذخیره میکنید به شما نمیدهد چیزی مثل png  یا bit map ذخیره کنید لاستلس  منتها حجم دلتا ها شاید کمی بالاتر برود . الزاما تو کار پردازش تصویر imwrite کاربرد ندارد .یک وقت هست یک ماتریس بزرگی دارید دوست دارید که این راVisualise ش کنیند به شکل یک ماتریس Visualise  کنید وذخیره کنید ( یکی از روش های اتصال اطلاعات بین نرم افزارها همین فایل های تصویری است )

یکی از ابزا رهای دیگرپردازش تصویر ابزار imtool هستند.

 

>>img=imread(‘rice . png ‘);
>>imtool(img)


اینجا جزئیات وعناصر ریز سازنده که با تغییر شدت نورو اینها ایجاد شده وجود دارد حتی فاصله بین  چند نقطه را هم حساب میکند میتوانید تصاویر را کراپ بکنید یک ناحیه مشخص را میتوانید از نظر عددی رو شنایی اش رابسنجید .

(مثلا برای اندازه گیری شعاع وبر اساس ان یک پارا مترهایی را تو الگوریتم ست بکنید یا level برای این که بسنجید الگوریتم ان کاری را که میخواستید به درستی انجام داده)

یک مواقعی هست میخواید تصویر را از نظر اندازه کوچیک و بزرگ کنیند ، تابعی که برای این کار پیاده سازی شده در محیط متلب imresize هست که تصویر را میگیرد ودر خروجی یک تصویر scale شده را به ما میدهد

 

Imresize
Syntax 
B = imresize (A , scale)

scale  باید درصد بهش بدیم (بین صفر ویک )

 

B = imresize (A ,[numcows  numcols ])

 

تعداد سطر و ستون رو بهش میدیم

 

[Y new map ] = imresize ( X , map , scale )
[…] = imresize ( …, method )

نحوه متدی که استفاده میشود nearest میگوید برای هر کسی نزدیکترین چیزی که در دور برش هست را در نظر بگیردbilinear حالت فرمول درون یابی دو خطی را در نظر میگیردbicubic   یک فرمول درجه سه را در نظر میگیرد برای درون یابی زمان بیشتری را میبرد ولی منجر به ایجاد تصویر های نرم تری میشود.

[… ] = imresize ( …, parameter , Value , … )

کرنل های مختلفی هم برای این درون یابی ها میشود استفاده کرد .

به عنوان مثال (کار تابع imresize  در متلب)

 

>>img half = imresize ( img ,0/5);
>> size (img – half )
And=
128            128 
>>imshow (img – half );

آموزش پردازش تصویر imread متلب3میشود یک تصویری که اندازه ا ش نصف تصویر قبلِ

 

>>img half = imresize( img , 0/5 , ‘ nearest ‘) ;
>>im show ( imresize ( img , 0/5 , ‘ nearest ‘ );

 

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

>>figure ; imshow ( imresize ( img , 0/5 , ‘ blinear ‘))

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

یک تابع دیگه ای در طول box پردازش تصویر هست  مشابه کارکرد explore ویندوز هست .

به عنوان مثال :

میخوایم اطلاعات تصویری mypic.jpg  را بخوانیم   ،

>>img = imread(‘mypic . gpg ‘)
>>imshow (img)

میخوایم قبل از این که این را بخوانیم ببینیم فایل چه اطلاعاتی دارد از تابع imfinfo (کار با تابع imfinfo در متلب) استفاده میکنیم .

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

نتیجه این چیزی که اینجا میبینیم در غالب متغیرans ذخیره شده است  که یه اسکرابچر میتوانیم خودمان هم ذخیره کنیم  بگیم

Info = imfinfo ( ‘ pepper4s . png ‘);

آموزش تابع imread imshow figure zeros imwrite imtool imresize در متلب

اگر بخوایم کپی رایت تصویر رو یه جایی بنویسیم 

>>info.Copyright ans = Copyright the mathWorks, Unc.
>> info.width ans = 512 
>> info.Height ans = 384 
>> c

ادامه آموزش نرم افزار متلب در بخش4