如何用matlab读取gif每一帧图像的像素值?
希望答案自己试过已经可以的。P.S:试过用imread来读取,不过结果是按列给出的,分不清一帧一帧的图像。还有,用matlab或C/c++可以将gif图像一帧帧的分开来吗...
希望答案自己试过已经可以的。P.S:试过用imread来读取,不过结果是按列给出的,分不清一帧一帧的图像。还有,用matlab或C/c++可以将gif图像一帧帧的分开来吗?请给出代码,谢谢!!!!
展开
2个回答
展开全部
想得到其中的图像的像素值可以这样干:
clc;close all;clear all
info = imfinfo('3.gif');%第一次读取,用于获取属性值
W = info.Width;
H = info.Height;
W = W(1);
H = H(1);
len = length(info);
figure('NumberTitle', 'off', 'ToolBar', 'none', 'Menu', 'none');
pos = get(gcf, 'position');
set(gcf, 'position', [pos(1) pos(2) W H]);
set(gca, 'position', [0 0 1 1]);
hold on;
for i = 1 : len
str=sprintf('photo%d.jpg',i);
[Ii, map] = imread('3.gif', 'frames', i);
imwrite(Ii,str,'jpg');
F(:, i) = im2frame(flipud(Ii), map);
end
movie(F, 20);
close;
clc;close all;clear all
info = imfinfo('3.gif');%第一次读取,用于获取属性值
W = info.Width;
H = info.Height;
W = W(1);
H = H(1);
len = length(info);
figure('NumberTitle', 'off', 'ToolBar', 'none', 'Menu', 'none');
pos = get(gcf, 'position');
set(gcf, 'position', [pos(1) pos(2) W H]);
set(gca, 'position', [0 0 1 1]);
hold on;
for i = 1 : len
str=sprintf('photo%d.jpg',i);
[Ii, map] = imread('3.gif', 'frames', i);
imwrite(Ii,str,'jpg');
F(:, i) = im2frame(flipud(Ii), map);
end
movie(F, 20);
close;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
easy maybe.
a1=imread('D:\我的文档\MATLAB\e070.gif', 'gif','frame',1) ;
a2=imread('D:\我的文档\MATLAB\e070.gif', 'gif','frame',2) ;
a3=imread('D:\我的文档\MATLAB\e070.gif', 'gif','frame',3) ;
可以每次读一帧的,完全可以实现。
a1=imread('D:\我的文档\MATLAB\e070.gif', 'gif','frame',1) ;
a2=imread('D:\我的文档\MATLAB\e070.gif', 'gif','frame',2) ;
a3=imread('D:\我的文档\MATLAB\e070.gif', 'gif','frame',3) ;
可以每次读一帧的,完全可以实现。
更多追问追答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询