getting error in lane detection

I am not familiar with matlab. i had used your tutorial video no 6 and getting error in following statement
lanes=findlanes(B,h,stats);
hold off;
and i am getting following error
??? Undefined function or variable
'stats'.
can you help me resolving following error

Answers (2)

and see the lines of code there:
% Extract statistics
stats = regionprops(L,'MajorAxisLength','MinorAxisLength');
You do not appear to have done that before calling findlanes()

3 Comments

I am not satisfied with your answer. I had listed codes which I had used in this. You can see it below.
%%Lane Marking Identification
%%Read image
street = imread('street1.jpg');
%%Display image
figure;
gray(256);
imagesc(street1);
%%Scale image
scaled=street1*1.05;
image(scaled);
%%Threshold
level=211;
binary = scaled>level;
imagesc(binary);
%%Remove the noise
binary = bwareaopen(binary,100);
imagesc(binary)
hold on
%%Find the boundaries of objects
[B,L] = bwboundaries(binary(:,:),'noholes');
h = zeros(1,length(B));
% Plot boundaries
for K=1:length(B)
boundary = B{K};
h(K)=plot(boundary(:,2), boundary(:,1), 'g','LineWidth', 2);
end
% Extract statistics
stats = regionprops(L,'MajorAxisLength','MinorAxisLength');
%%Find lanes and delete non-lane objects
lanes=find_lanes(B,h,stats);
hold off;
Can you correct it, and give me the answer with the reasons?
I will need to see the complete traceback of the error message. Your Question refers to a line which invokes findlanes() but your code here refers to find_lanes(), a different routine. Possibly you are using a find_lanes() that invokes findlanes() so the problem might be in your find_lanes() routine, whatever content it might happen to have.
Please show the output of
which -all find_lanes
which -all findlanes
I'm not satisfied with your comment, mustafa. Please attach 'street1.jpg' so people can actually run your code.

Sign in to comment.

You say that it's saying stats is undefined. So change this code
% Extract statistics
stats = regionprops(L,'MajorAxisLength','MinorAxisLength');
%%Find lanes and delete non-lane objects
lanes=find_lanes(B,h,stats);
to this code:
% Extract statistics
stats = regionprops(L,'MajorAxisLength','MinorAxisLength');
whos stats
which find_lanes
whos find_lanes
%%Find lanes and delete non-lane objects
lanes=find_lanes(B,h,stats);
and tell me what it says in the command window.

7 Comments

i tried your above statements and it gives following output in command window
'find_lanes' not found. ??? Undefined function or method 'find_lanes' for input arguments of type 'cell'.
I always get this error message when trying to run the code. Please how do I correct this Error using bwboundaries Expected input number 1, BW, to be two-dimensional.
Error in bwboundaries>parseInputs (line 159) validateattributes(BW, {'numeric','logical'}, {'real','2d','nonsparse'}, ...
Error in bwboundaries (line 128) [BW, conn, findholes] = parseInputs(varargin{:});
Error in lanemarkings (line 21) [B,L,N]=bwboundaries(binary, 'noholes');
Your BW is most likely a true color RGB image rather than a binary (logical) image. What does this say:
whos BW
nothing appears when I type
whos BW
It looks like BW is the name given by some internal functions. It looks like you called it "binary" so what does whos binary show? It probably shows that it's a color image not a "logical" binary image.
whos binary Name Size Bytes Class Attributes
binary 568x962x3 1639248 logical
binary is a 3-D volumetric image, like you're dealing with CT or MRI images or something. I don't think this should be. You should convert street to a grayscale image before you threshold it at 211.
From street, or street1, whatever you called the variable, which color channel do you want to use? Or do you want to take a weighted average?
if ndims(street)
street = rgb2gray(street);
end

Sign in to comment.

Asked:

on 8 Aug 2015

Commented:

on 24 Apr 2016

Community Treasure Hunt

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

Start Hunting!