??? Undefined function or variable 'blur' Why is that

5 visualizaciones (últimos 30 días)
Shehan
Shehan el 21 de Mayo de 2014
Comentada: Image Analyst el 21 de Mayo de 2014
when compiling this code I'm getting an error
Warning: Unable to determine the number of frames in this file. ??? Undefined function or variable 'blur'.
Error in ==> ReadVideo at 22 IDX = kmeans(blur,2);
vid = 'N1.mpg';
shainObj = mmreader(vid);
nFrames = shainObj.NumberOfFrames;
vidHeight = shainObj.Height;
vidWidth = shainObj.Width;
% Preallocate movie structure.
mov(1:nFrames) = ...
struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...
'colormap', []);
% Read one frame at a time.
for k = 1 : nFrames
mov(k).cdata = read(shainObj, k);
image = mov(k).cdata;
imagegray = rgb2gray(image);
imagegray = imresize(imagegray, 0.2);
blur(k) = fmeasure(imagegray, 'GRAE', '');
end
IDX = kmeans(blur,2);
sum1 = 0;
sum2 = 0;
for k = 1 : nFrames
if IDX(k) == 1
sum1 = sum1 + 1;
else
sum2 = sum2 + 1;
end
end
if sum1 > sum2
normal = sum1;
blured = sum2;
else
normal = sum2;
blured = sum1;
end
disp('blur metrics for the input video');
disp(sprintf('Total frames: %d',nFrames));
disp(sprintf('Normal frames: %d',normal));
disp(sprintf('Blured frames: %d',blured));

Respuestas (1)

Mischa Kim
Mischa Kim el 21 de Mayo de 2014
Editada: Mischa Kim el 21 de Mayo de 2014
Shehan, the error message seems to indicate that MATLAB is not able to determine the number of frames in
nFrames = shainObj.NumberOfFrames;
which would mean that the for loop is not executed (I assume) and therefore no values are assigned to blur(k). As a result MATLAB is not able to execute
IDX = kmeans(blur,2);
To start debugging, remove the semi-colon in nFrames = shainObj.NumberOfFrames; to see the content of nFrames. You could do the same in the loops to see if they are execute.
Alternatively, use the debugger functionality in MATLAB to step through the code line by line.
  2 comentarios
Shehan
Shehan el 21 de Mayo de 2014
I tried what you said But no luck. I change the input video then it works What can be the problem is
but then i got an error message saying
*??? Undefined function or method 'fmeasure' for input arguments of type 'uint8'.
Error in ==> ReadVideo at 20 blur(k) = fmeasure(imagegray, 'GRAE', '');*
Image Analyst
Image Analyst el 21 de Mayo de 2014
fmeasure() is probably some custom written function. Ask whomever you got this code for. They probably forgot to give you one of the m-files.

Iniciar sesión para comentar.

Categorías

Más información sobre Convert Image Type en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by