how to detect door in image from vertical lines and gap of door(gap between floor and door)

1 view (last 30 days)
like in this image
i have this code but this is not working for me
[filename, pathname] = ... uigetfile({'*.jpg';'*.bmp';'*.png';'*.*'},'File Selector'); I=imread([pathname,filename]); rotI=rgb2gray(I); %rotI = imrotate(J,33,'crop'); fig1 = imshow(rotI); BW = edge(rotI,'canny'); figure, imshow(BW); [H,theta,rho] = hough(BW); figure, imshow(imadjust(mat2gray(H)),[],'XData',theta,'YData',rho,... 'InitialMagnification','fit'); xlabel('\theta (degrees)'), ylabel('\rho'); axis on, axis normal, hold on; colormap(hot) P = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:)))); x = theta(P(:,2)); y = rho(P(:,1)); plot(x,y,'s','color','black'); lines = houghlines(BW,theta,rho,P,'FillGap',5,'MinLength',7); figure, imshow(rotI), hold on max_len = 0; for k = 1:length(lines) xy = [lines(k).point1; lines(k).point2]; plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
% Plot beginnings and ends of lines
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
% Determine the endpoints of the longest line segment
len = norm(lines(k).point1 - lines(k).point2);
if ( len > max_len)
max_len = len;
xy_long = xy;
end
end
% highlight the longest line segment plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','red');
result of this code is like this i need to know how to improve this and what is further procedure

Answers (0)

Community Treasure Hunt

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

Start Hunting!