Error using reshape To RESHAPE the number of elements must not change. Error in loadFileYuv (line 18) imgYuv(:, :, 1) = reshape(buf, width, height).'; % reshape

2 views (last 30 days)
function [mov,imgRgb] = loadFileYuv(fileName, width, height, idxFrame)
fileId = fopen(fileName, 'r');
subSampleMat = [1, 1; 1, 1];
nrFrame = length(idxFrame);
for f = 1 : 1 : nrFrame
% search fileId position
sizeFrame = 1.5 * width * height;
fseek(fileId, (idxFrame(f) - 1) * sizeFrame, 'bof');
% read Y component
buf = fread(fileId, width * height, 'uchar');
* |imgYuv(:, :, 1) = reshape(buf, width, height).'; % reshape| * (line 18)
% read U component
buf = fread(fileId, width / 2 * height / 2, 'uchar');
imgYuv(:, :, 2) = kron(reshape(buf, width / 2, height / 2).', subSampleMat); % reshape and upsample
% read V component
buf = fread(fileId, width / 2 * height / 2, 'uchar');
imgYuv(:, :, 3) = kron(reshape(buf, width / 2, height / 2).', subSampleMat); % reshape and upsample
% normalize YUV values
% imgYuv = imgYuv / 255;
% convert YUV to RGB
imgRgb = reshape(convertYuvToRgb(reshape(imgYuv, height * width, 3)), height, width, 3);
end
fclose(fileId);
when i was trying to run the function i was getting error in the line
imgYuv(:, :, 1) = reshape(buf, width, height).';
Kindly help me.

Accepted Answer

Star Strider
Star Strider on 7 Sep 2014
You are not reading what you believe you are reading from your file. I would check the size of ‘buf’ in line 17 (and probably the other such lines as well). (When I simulate Line 18 with known values, I don’t get the error.)

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!