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

조회 수: 5 (최근 30일)
Shehan
Shehan 2014년 5월 21일
댓글: Image Analyst 2014년 5월 21일
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));

답변 (1개)

Mischa Kim
Mischa Kim 2014년 5월 21일
편집: Mischa Kim 2014년 5월 21일
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
Shehan
Shehan 2014년 5월 21일
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 2014년 5월 21일
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.

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

카테고리

Help CenterFile Exchange에서 Convert Image Type에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by