چگونه در متلب تصاویر متحرک GIF ایجاد کنیم؟
موسسه پایا پروژه به عنوان متصدی انجام پروژه های متلب وظیفه ی خود می داند که در راستای آموزش نرم افزار متلب گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی متلب مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
برای ساختن یک GIF با استفاده از MATLAB، میتوانید از تابع imwrite و توابع دیگری که قابلیت ساختن تصاویر را دارند، استفاده کنید.
مراحل ساخت گیف در پروژه متلب:
- تعیین تصاویر: ابتدا تصاویر مورد نظر را برای ساختن GIF تعیین کنید. این تصاویر میتوانند توسط توابع مختلفی مانند imread بارگیری شوند یا توسط فرآیندهای دیگر ایجاد شوند.
- ذخیره تصاویر: تصاویر را با استفاده از تابع imwrite در قالب فایلهای تصویری ذخیره کنید. برای ساختن یک GIF، باید تصاویر را با فرمت پشتیبانی شده توسط GIF مانند PNG یا GIF ذخیره کنید. در هر مرحله، تصویر باید با یک نام منحصر به فرد ذخیره شود.
- ساختن GIF: با استفاده از تابع appendimages از پکیج Image Processing Toolbox، تمام تصاویر را به هم متصل کنید و یک فایل GIF بسازید. این تابع تصاویر را به عنوان ورودی میگیرد و یک فایل GIF به عنوان خروجی تولید میکند.
- ذخیره فایل GIF: نهایتاً، فایل GIF را با استفاده از تابع imwrite ذخیره کنید. برای ذخیره کردن فایل به عنوان یک GIF، باید نام فایل را با پسوند “.gif” تعیین کنید.
در کل، با استفاده از توابع imwrite و appendimages و ترتیب مناسب این مراحل، میتوانید یک GIF ساده را با MATLAB بسازید.
روش دوم ساخت گیف در متلب
در انجام پروژه متلب یک GIF متحرک تصویری است که با فرمت تبادل گرافیکی (GIF) کدگذاری شده است، که شامل تعداد زیادی تصویر یا فریم به طور همزمان در یک فایل است و به روش خود، پسوند کنترل گرافیکی خود را توصیف می کند. از طریق MATLAB با نوشتن کد کارآمد N عدد از یک تصویر GIF متحرک ایجاد می کنیم.
بنابراین، بیایید یک مثال از نحوه ایجاد یک تصویر GIF متحرک در متلب با یک فرآیند گام به گام را بررسی کنیم:
مثال 1:
.Create a GIF animation image%
clear all
;x = 0:0.01:1
;p = plot(nan,nan)
;p.XData = x
for n = 1:0.5:5
; p.YData = x.^n
;exportgraphics(gcf,’testAnimated.gif’,’Append’,true)
end
;x = 0:0.01:1
figure(1)
; ‘filename = ‘testimage.gif
for n = 1:0.5:5
;y = x.^n
plot(x,y)
drawnow
;frame = getframe(1)
;im = frame2im(frame)
; [imind,cm] = rgb2ind(im,256)
; if n == 1
;imwrite(imind,cm,filename,’gif’, ‘Loopcount’,inf)
else
; imwrite(imind,cm,filename,’gif’,’WriteMode’,’append’)
end
end
کد بالا دو خروجی ایجاد می کند همانطور که در کد می بینید نام یک فایل testAnimated.gif و دیگری testimage.gif است.
خروجی:
مثال 2:
. How to make GIF animation image%
clear all
close all
clc
;x = [.1:0.02:1]
;[X,Y] = meshgrid(x)
2D grid%
;Z = X.^2*Y.^2
papillon %
figure(‘Position’, [200 200 600 600])
Position and fixed size%
surf(X,Y,Z)
magnitude of surface%
shading(‘interp’)
delelte black grid%
خروجی:
توضیح:
در انجام این پروژه متلب (%) علامت درصد نشان دهنده خط نظر در کد است. در کد بالا، عبارت clear all و close all اساساً برای پاک کردن/حذف متغیرهای ایجاد شده در Workspace استفاده می شود.
[X,Y] = () meshgrid برای برگرداندن مختصات شبکه دو بعدی موجود در بردارها استفاده می شود. surf(X, Y, Z) برای ایجاد یک نمودار سطح سه بعدی استفاده می شود. و clc آن در پنجره فرمان برای پاک کردن دستورات استفاده می شود.
وقتی کد را در ویرایشگر متلب می نویسید و اجرا می کنید، آن تصویر را دریافت می کنید (شکل)
در کد پیادهسازی شده، از () figureبرای ثابت کردن اندازه و موقعیت استفاده میشود و از سایهزنی برای حذف شبکه سیاه از شکل گرفته شده استفاده میشود. پس از اجرای این کد یک تصویر پیاده سازی جدید دریافت خواهید کرد که در زیر نشان داده شده است.
Code%
colormap(‘jet’) % wow palette
در کد بالا، ما فقط یک دستور را در آخرین نقشه رنگی کد قبلی اضافه می کنیم ، این ماتریسی از مقادیر است که اشیا، تصویر و گرافیک را تعریف می کند. سپس یک تصویر GIF جدید دریافت خواهیم کرد.
خروجی: