here is my code i cannot understand the error in it can any one will help me to locate the error
1 view (last 30 days)
Show older comments
bushra mughal
on 28 Aug 2015
Commented: Walter Roberson
on 28 Aug 2015
close all;
clear;
%Read Background Image
Backg=imread('blk.jpg');
%Read Current Frame
CurrentFrame=imread('2.jpg');
%Display Background and Foreground
subplot(2,2,1);imshow(Backg);title('BackGround');
subplot(2,2,2);imshow(CurrentFrame);title('Current Frame');
%Convert RGB 2 HSV Color conversion
[Background_hsv]=round(rgb2hsv(Backg));
[CurrentFrame_hsv]=round(rgb2hsv(CurrentFrame));
Out = bitxor(Background_hsv,CurrentFrame_hsv);
%Convert RGB 2 GRAY
Out=rgb2gray(Out);
%Read Rows and Columns of the Image
[rows,columns]=size(Out);
BinaryImage = zeros(:, 'int8');
%Convert to Binary Image
for i=1:rows
for j=1:columns
if Out(i,j) >0
BinaryImage(i,j)=1;
else
BinaryImage(i,j)=0;
end
end
end
%Apply Median filter to remove Noise
FilteredImage=medfilt2(BinaryImage,[5 5]);
%Boundary Label the Filtered Image
[L ,num]=bwlabel(FilteredImage);
STATS=regionprops(L,'all');
cc=[];
removed=0;
%Remove the noisy regions
for i=1:num
dd=STATS(i).Area;
if (dd < 500)
L(L==i)=0;
removed = removed + 1;
num=num-1;
else
end
end
[L2 ,num2]=bwlabel(L);
% Trace region boundaries in a binary image.
[B,L,N,A] = bwboundaries(L2);
%Display results
subplot(2,2,3), imshow(L2);title('BackGround Detected');
subplot(2,2,4), imshow(L2);title('Blob Detected');
hold on;
for k=1:length(B),
if(~sum(A(k,:)))
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2);
for l=find(A(:,k)),
boundary = B{l};
plot(boundary(:,2), boundary(:,1), 'g','LineWidth',2);
end
end
end
2 Comments
dpb
on 28 Aug 2015
Well, you could at least give a hint...since we don't have your input file, can't run it so not much can do simply by looking at the code without foreknowledge of what are supposed to be looking for...
Accepted Answer
Walter Roberson
on 28 Aug 2015
BinaryImage = zeros(:, 'int8');
is not valid syntax. You want
BinaryImage = zeros(rows, columns, 'int8');
By the way: what is the output of
logical(Out)
?
2 Comments
Walter Roberson
on 28 Aug 2015
You have no reference to anything like that in the code you posted. But if I were you I would change your code to refer to 'background' instead of 'bakground'
More Answers (0)
See Also
Categories
Find more on Camera Calibration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!