ich versuche mich gerade an der Bildverarbeitung für einen Ball and Plate Prüfstand. Um dies zu realisieren ist es notwendig zunächst den Bereich der Platte zu detektieren.
Dazu habe ich meine Aufnahmen, ich habe mal ein Bsp mit angehangen, in ein Digitales Bild überführt und wollte nun mittels der Hough Transformation die Linien und Winkel erkennen lassen.
Dazu hier mein Quellcode
% Maxima im Houghraum finden
P = houghpeaks(H,4);
plot(T(P(:,2)),R(P(:,1)),'s','color','white');
lines = houghlines(BW,T,R,P);%,'FillGap',5,'MinLength',7);
subplot(2,1,2);
imshow(BW), 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
%% Schnittpunkte ermitteln
% Funktionsparameter ermitteln y = mx+b for i = 1:1:4
m(i) = (lines(i).point2(2) - lines(i).point1(2))/(lines(i).point2(1) - lines(i).point1(1));
b(i) = lines(i).point2(2) - m(i)*lines(i).point2(1);
end
% Schmittpunkte ermitteln x=b1-b2/m2-m1 y=m2*b1-m1*b2/m2-m1 for i = 1:1:4 if i < 4
x(i) = (b(i)-b(i+1))/(m(i+1)-m(i));
y(i) = (m(i+1)*b(i)-m(i)*b(i+1))/(m(i+1)-m(i));
else
x(i) = (b(i)-b(i-3))/(m(i-3)-m(i));
y(i) = (m(i-3)*b(i)-m(i)*b(i-3))/(m(i-3)-m(i));
end end
% Eckpunkte Zeichnen for i = 1:1:4
viscircles([x(i),y(i)],10);
end
Nutze ich das BW2 klappt das auch super. Aber bei manchen Bildern, wie Beispielsweise beim BW1 findet er nur 2 Maximal, wodurch ich nur 2 Linien erhalte, was nicht reicht um alle Vier Ecken zu detektieren. Hat jemand eine Idee wo der Fehler liegt?
durch diese Anpassung kannst du noch etwas erreichen. Das war jetzt jetzt nur mal ein schneller Versuch, aber evtl. hilft es dir schon. Ich habe es mit 0.3 versucht.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.