آموزش تبدیل فیلم به صحنه آهسته در متلب

در این مقاله به آموزش تبدیل فیلم به صحنه آهسته در متلب پرداخته شده است. پیش از شرح رویکرد به کار گرفته شده برای تبدیل فیلم به صحنه آهسته و ارائه کدها، توضیحاتی پیرامون نرم‌افزار متلب و برخی از مفاهیم پیش‌نیاز دیگر ارائه شده است.

نرم افزار متلب چیست ؟

نرم افزار متلب (MATLAB) که به آن «Matrix Laboratory» هم گفته می‌شود، یک محیط محاسباتی و یک پلتفرم برای برنامه نویسی به حساب می‌آید. متلب توسط شرکت MathWorks طراحی و ساخته شده است و فریم‌ورکی به حساب می‌آید که به برنامه‌نویسان امکان می‌دهد تا با ماتریس‌ها کار کنند، الگوریتم‌های مختلف را پیاده‌سازی کنند، برای تابع‌ها و داده‌ها نمودار رسم کنند، رابط کاربری ایجاد و با برنامه‌های نوشته شده به زبان‌های دیگر مثل C++‎ ،C، پایتون، جاوا و سایر موارد نیز در متلب ارتباط برقرار کنند.

ماهیت و ساختار ویدیو چیست ؟

ویدیو یا همان فیلم مجموعه‌ای از تصاویر است که به آن‌ها فریم (قاب | Frame) گفته می‌شود. یک ویدیو متشکل از چهار بُعد است که اولین بُعد برای سطرها، بُعد دوم برای ستون‌ها، سومین بُعد برای بازنمایی کانال RGB و بُعد دیگری که اضافه می‌شود نیز برای شماره زمان یا شماره فریم (Frame Number) مورد استفاده قرار می‌گیرد.

نرخ ارسال قاب یا Frame Rate چیست؟

به تعداد فریم‌های ارسالی در هر ثانیه، نرخ ارسال قاب یا Frame Rate می‌گویند و معیار سنجش آن با مخفف fps نمایش داده می‌شود. در واقع، Frame Rate تکرر (فراوانی | نرخی) است که تصاویر پی در پی (همان فریم‌ها) در یک صفحه نمایش ظاهر می‌شوند. برای تبدیل یک فیلم به صحنه آهسته در متلب، باید نرخ تبادل فریم در هر ثانیه یا همان Frame Rate را کاهش داد. حال در ادامه به رویکرد و روش پیاده‌سازی تبدیل فیلم به صحنه آهسته در متلب پرداخته شده است.

روش تبدیل فیلم به صحنه آهسته در متلب

در ادامه این بخش، هر یک از گام‌های رویکرد و شیوه‌ای فهرست شده‌اند که در این مقاله برای تبدیل فیلم به صحنه آهسته در متلب به کار گرفته خواهد شد:

  • بارگذاری ویدیو در یک متغیر به نام obj با استفاده از تابع VideoReader()‎
  • استفاده از یک متغیر جدید به نام obj2 برای ایجاد یک نسخه مشابه (کپی) از این ویدیو که با استفاده از تابع VideoWriter()‎ در حالت سریع ظاهر می‌شود.
  • کاهش نرخ ارسال فریم (Frame Rate) ویدیو
  • باز کردن متغیر obj2
  • خواندن تمام فریم‌ها از متغیر obj یکی پس از دیگری و ذخیره آن‌ها در متغیری به نام k
  • درج تمام فریم‌ها در obj2 با استفاده از تابع writeVideo()‎
  • بستن متغیر obj2

برای دریافت لینک مربوط به ویدیویی که به عنوان ورودی در این آموزش استفاده شده است، به لینک [+] مراجعه کنید.

پیاده سازی تبدیل فیلم به صحنه آهسته در متلب

در این بخش پایانی از مقاله آموزش تبدیل فیلم به صحنه آهسته در متلب، کدهای مربوط به پیاده‌سازی رویکردی آمده است که در بخش قبل ارائه شد:

% MATLAB program to convert video into slow motion
clc;clear;close all;
  
 % load the video.
obj = VideoReader('C:/Users/Gfg/Desktop/Sample1280.avi');  
  
% Write in new variable
obj2= VideoWriter('xyz.avi');    
  
% decrease framerate 
obj2.FrameRate = 10;              
open(obj2);
  
% for reading frames one by one
while hasFrame(obj)              
    k = readFrame(obj); 
  
    % write the frames in obj2.         
    obj2.writeVideo(k);          
end
  
close(obj2);

خروجی برنامه تبدیل فیلم به صحنه آهسته در متلب

خروجی کدهای مربوط به تبدیل فیلم به صحنه آهسته در متلب که در بخش قبلی آمده‌ است، در ادامه ملاحظه می‌شود:

جمع‌بندی

نرم افزار متلب یک محیط برنامه نویسی و محاسباتی محبوب و پر استفاده خصوصاً در حوزه آموزش است که به دلیل سادگی کار با ماتریس‌ها و انجام محاسبات روی آن‌ها، برای کار با تصاویر و ویدیو بستر مطلوبی به حساب می‌آید. در مقاله آموزش تبدیل فیلم به صحنه آهسته در متلب ، پس از ارائه برخی مقدمات و پیش‌نیازها از جمله معرفی مختصر نرم افزار متلب، ماهیت یک ویدیو و مفهوم نرخ انتقال فریم (Frame Rate) به ارائه رویکرد پیاده‌سازی و کدهای مربوط به تبدیل فیلم به صحنه آهسته در متلب پرداخته شد.

اگر این مطلب مفید واقع شده است، استفاده از دوره‌های آموزشی و مطالب زیر نیز پیشنهاد می‌شوند:

 

منبع [+]


مجموعه: برنامه نویسی متلب برچسب ها: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

پاسخی بگذارید

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