Ich lerne, wie hough
und houghlines
in MATLAB arbeiten, aber ich kann nicht scheinen, um den Beispielcode in der Dokumentation der Funktion richtig zu verhalten, selbst für eine simple line Ich zeichnete in Paint.MATLAB: Kann Houghlines nicht einmal eine einfache Linie erkennen?
Hier ist der Code, den ich verwende:
clear all; clc; close all
I = imread('lines2.png');
BW = im2bw(I);
[H,T,R] = hough(BW,'Theta',-90:0.1:89.99,'RhoResolution',1);
P = houghpeaks(H,2);
lines = houghlines(H,T,R,P,'FillGap',10,'MinLength',1);
figure, imshow(I), hold on
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');
end
ich this Ergebnis (die Enden der Linien außerhalb des Bildes liegen selbst). Jeder andere kann es reproduzieren?
Ich habe versucht, die Parameter für hough
zu ändern, aber keiner meiner Tests hat das erwartete Ergebnis gegeben. Wenn Sie den Parameter 'Theta'
auf 1 setzen, wird die Zeile rechts nicht angezeigt. Ich habe auch versucht, das Bild mit BW=~BW;
zu invertieren, aber dann bekomme ich nur eine Linie sehr weit weg vom Rahmen ...
Oh mein Gott Ich kann nicht glauben, dass ich das nicht bemerkt hatte! Vielen Dank für das Aufzeigen; Ich nehme an, es ist einer dieser Fehler, die du gerade gelesen hast, bis du ein paar Tage später mit einem neuen Verstand merkst. Auf jeden Fall hast du mir eine Zeit des Haarziehens erspart: D – yuyu2809