I'm having problems copying a 4-D array

조회 수: 1 (최근 30일)
Connor Hogarth
Connor Hogarth 2021년 4월 12일
댓글: Connor Hogarth 2021년 4월 12일
The code is as follows:
for t = 1;1;frames;
gifout(:,:,:,t) = uint8(gifin(:,:,1,t));
end
I am trying to copy a gif (stored as a 4-d array) with only a single colour dimension, where t is the amount of frames in the gif. The problem is that it is returning a single image rather than a series of images. What would be the correct way of implementing this?
As a side note, using
gifout(:,:,:,t) = uint8(gifin(:,:,:,t));
returns the error "Assignment has more non-singleton rhs dimensions than non-singleton subscripts", but I expected it to directly copy all frames. Can this be explained to me?
Thanks
  댓글 수: 2
Walter Roberson
Walter Roberson 2021년 4월 12일
for t = 1;1;frames;
^ ^
Did you use the : operator in your actual code?
Is there a reason you did not use
gifout = im2uint8(gifin);
with no loop?
Connor Hogarth
Connor Hogarth 2021년 4월 12일
Because, I'm dumb. Thanks for the help, maybe I should get some sleep

댓글을 달려면 로그인하십시오.

채택된 답변

Matt J
Matt J 2021년 4월 12일
for t = 1:frames

추가 답변 (1개)

Walter Roberson
Walter Roberson 2021년 4월 12일
To read all of the frames for gif in your release, use 'Frames', 'all' in your imread() call.
Whether imread() reads all frames of gif by default, or only one frame, is something that changed between your release and current releases.

카테고리

Help CenterFile Exchange에서 Images에 대해 자세히 알아보기

태그

제품


릴리스

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by