سبد خرید (0)

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

در این مقاله با موارد زیر آشنا خواهید شد:

  1. مقدمه
  2. مشاهده ی تصاویر متوالی در Movie Player
  3. مشاهده ی تصاویر متوالی بصورت مونتاژ شده
  4. تبدیل یک عکس چندفریمی به یک فیلم(Movie)

مقدمه

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

جعبه ابزار متلب، عکس های متوالی را بصورت ماتریس های 4 بعدی ارائه می دهد، به طوری که به هر عکس مجزا، یک فریم گفته می شود. تمامی این فریم ها سایز یکسانی دارند و بواسطه ی بعد چهارم مرتب شده اند. توابع imshow و imtool تنها می توانند در یک زمان، یک فریم را نمایش دهند، اما نمی توانند تصاویر را بصورت انیمیشن نمایش دهند و یا آنها را هدایت کنند. یک راه بهتر برای مشاهده ی تصاویر متوالی، استفاده از Movie Player با استفاده از تابع implay است. 

Movie Player می تواند فریم های یک عکس متوالی را نمایش دهد و ابزارهای مشاهده ی تصاویر متوالی را به شما ارائه دهد. برای مشاهده ی فریم های یک عکس متولی بصورت ایستا و همزمان، می توانید از تابع montage استفاده کنید. 


مشاهده ی تصاویر متوالی در Movie Player در متلب

در این بخش می آموزیم که چطور با استفاده از Movie Player تصاویر متوالی را مورد مشاهده قرار دهیم. همچنین می آموزیم که چگونه Movie Player را تنظیم و پیکربندی کنیم. 

مثال: مشاهده ی یک تصویر متوالی MRI در متلب

 1. ابتدا عکس متوالی را در محیط Workspace متلب بارگذاری کنید. در این مثال ما داده های یک عکس MRI را که در فایل mristack.mat  و در پوشه ی imdemos قرار دارد بارگذاری می کنیم. 

مثال (مشاهده ی تصاویر متوالی در متلب)

load mristack

این کار باعث می شود تا متغیری به نام mristack در محیط workspace قرار گیرد. این متغیر یک ماتریس 21 فریمی سیاه و سفید است که حاوی عکس های MRI از مغز انسان است. هر فریم از این عکس، یک ماتریس 256×256 از نوع uint8 است. 

مثال (مشاهده ی تصاویر متوالی در متلب)

mristack 256x256x21 1276256 uint8

 2. حالا این عکس متوالی را در Movie Player مورد مشاهده قرار دهید. برای انجام این کار، دستور implay را بنویسید و نام متغیر عکس متوالی را بعنوان یک آرگومان به آن بدهید. 

مثال (مشاهده ی تصاویر متوالی در متلب)

implay(mristack)

 شما همچنین می توانید با استفاده از گزینه ی Import from workspace از منوی File، یک عکس متوالی را از محیط Worspace به Movie Player وارد کنید. حالا Movie Player باز می شود و اولین فریم از عکس متوالی را نشان می دهد. در پایین پنجره ی Movie Player، اطلاعات هر فریم نمایش داده می شود. 

3. حالا می توانید با استفاده از ابزارهای Movie Player عکس ها را مورد تحقیق و بررسی قرار دهید. 
برای مشاهده ی عکس متوالی یا ویدئوی مورد نظر، بر روی دکمه ی Play در نوار ابزار Playback کلیک کنید. 

 


مشخص کردن نرخ فریم(سرعت فریم)

برای کاهش دادن یا افزایش دادن نرخ یاسرعت پخش، از منوی Playback گزینه ی Frame Rate را انتخاب کنید و یا می توانید دکمه ی T را در کیبورد فشار دهید. با انجام این کار، جعبه ی گفتگوی Frame Rate باز می شود و به شما امکان می دهد تا سرعتی که Movie Player عکس های متوالی یا ویدئوها را نمایش می دهد را تغییر دهید. نرخ پخش، درواقع تعداد فریم هایی است که Movie Player در هر ثانیه پردازش می کند. 

اگر می خواهید که نرخ پخش را افزایش دهید، اما سیستم سخت افزاری شما اجازه نمی دهد، گزینه ی Allow frame drop to achieve desired playback rate را تیک بزنید. این پارامتر به Movie Player امکان می دهد تا با انداختن فریم ها، به سرعت پخش مورد نظر دست یابد. اما با انجام این کار، پخش فریم ها کمی دچار تغییر و تبدیل خواهد شد. 

 


 مشخص کردن نقشه ی رنگ

برای مشخص کردن نقشه ی رنگ که به شدت مقادیر اعمال شود، از منوی Tools گزینه ی Colormap را انتخاب کنید، و یا می توانید کلید C را در کیبورد فشار دهید. با انجام این کار، Movie Player یک کادر محاوره ای را نمایش می دهد که به شما امکان می دهد تا نقشه ی رنگ را تغییر دهید.

 

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

اگر می دانید که مقادیر پیکسل ها، از تمام محدوده ی نوع داده ها استفاده نمی کنند، می توانید گزینه ی Specify range of displayed pixel values را تیک بزنید، و سپس محدوده ی داده های خود را مشخص کنید. این کادر محاوره ای، به طور اتوماتیک محدوده ی نوع داده های مقادیر پیکسل ها را نشان می دهد. 


به دست آوردن اطلاعات در مورد فریم های عکس

برای مشاهده ی اطلاعات پایه ای در مورد داده های عکس مورد نظر، بر روی دکمه ی Video Information در نوار ابزار Movie Player کلیک کنید. و یا می توانید از منوی Tools گزینه ی Video Information را انتخاب کنید. با انجام این کار، Movie Player یک کادر محاوره ای را به شما نشان می دهد که حاوی اطلاعات پایه ای در مورد عکس متوالی مورد نظر است. مثلاً اطلاعاتی مثل سایز هر فریم و نرخ فریم و تعداد کل فریم ها را نمایش می دهد. 

 


 مشاهده ی عکس های متوالی با استفاده از تابع montage

برای مشاهده ی فریم های چندگانه بصورت یک آرایه، می توانید از تابع montage استفاده کنید. تابع montage تمام فریم های عکس را بصورت یک شبکه بندی مستطیلی شکل مرتب می کند. عکس مونتاژ شده بصورت یک شیء تکی خواهد بود. فریم های عکس ما، می توانند سیاه و سفید یا ایندکس شده یا رنگی باشند. اگر شما در فریم ها از عکس های ایندکس شده استفاده کنید، تمام آنها باید از یک نقشه ی رنگ مشابه استفاده کنند. 

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

مثال (مشاهده ی تصاویر متوالی در متلب)

onion = imread('onion.png');
onionArray = repmat(onion, [ 1 1 1 4 ]);
montage(onionArray);

 

 تابع montage از پارامترهای اختیاری زیادی پشتیبانی می کند که شما می توانید از آنها برای شخصی سازی عکس های نمایش یافته استفاده کنید. بعنوان مثال با استفاده از پارامتر 'size' می توانید تعداد سطرها و ستون های عکس های نمایش یافته را مشخص کنید. مثلا برای نمایش دادن عکس های پیاز(در بالا) در یک سطر افقی، می توانید به پارامتر 'size' مقدار \([1\quad Nan]\) را بدهید. هنگامی که شما به یک بعد، مقدار NaN را انتساب دهید، تابع montage عکس ها را در طول آن بعد محاسبه می کند و نمایش می دهد. با استفاده از پارامترهای تابع montage، می توانید مشخص کنید که چه تعداد عکس نمایش داده شوند و همچنین می توانید کنتراست عکس های نمایش داده شده را تنظیم کنید. 


 تبدیل یک عکس چند فریمی به یک فیلم

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

 

مثال (مشاهده ی تصاویر متوالی در متلب)

mov = immovie(X,map);

 در مثال بالا، X یک ماتریس چهار بعدی از عکس هایی است که می خواهیم از آنها یک فیلم تهیه کنیم. 

برای پخش کردن این فیلم، از تابع movie استفاده کنید:

مثال (مشاهده ی تصاویر متوالی در متلب)

movie(mov);

 در مثال زیر، ابتدا یک عکس چند فریمی به نام mri.tif را بارگذاری می کنیم و سپس از آن یک فیلم ایجاد می کنیم. 

مثال (مشاهده ی تصاویر متوالی در متلب)

mri = uint8(zeros(128,128,1,27));
for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
mov = immovie(mri,map);
movie(mov);

 


نکته: برای مشاهده ی یک فیلم متلب، شما باید نرم افزار متلب را نصب کرده باشید. برای ایجاد یک فیلم که بتواند در بیرون از محیط متلب نمایش یابد، می توانید از توابع avifile و  addframe برای ایجاد یک فایل AVI استفاده کنید. و یا می توانید از تابع movie2avi استفاده نمایید. با استفاده از عکس های ایندکس شده و عکس های رنگی که دارای کلاس های uint8 و double باشند نیز می توان فایل های AVI را تولید کرد و نیازی به عکس های چند فریمی نیست.