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

3 vues (au cours des 30 derniers jours)
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.

Réponse acceptée

Star Strider
Star Strider le 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.)

Plus de réponses (0)

Catégories

En savoir plus sur Convert Image Type dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by