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 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
jeffin
am 7 Sep. 2014
Beantwortet: Star Strider
am 7 Sep. 2014
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.
0 Kommentare
Akzeptierte Antwort
Star Strider
am 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.)
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!