Verfasst am: 26.06.2017, 18:36
Titel: Winkel berechnen zwischen Kante eines Objektes und Bildrand
Hallo,
ich bräuchte nochmal Hilfe. Ich möchte einen Winkel zwischen einer Kante und dem Bildrand bestimmen.
Dazu habe ich bereits einen Zeilenvektor am Bildrand bestimmt. Wie bekomme ich nun den zweiten Zeilenvektor aus der erkannten Kante?
Ich möchte das Bild mit Hilfe des Winkels drehen und anschließend die Ränder abschneiden. Da diese meine weitere Bildauswertung stören. Da das Bild aber jedes Mal anders liegt, muss ich das Bild erst zurecht drehen.
Verfasst am: 27.06.2017, 15:47
Titel: Re: Winkel berechnen zwischen Kante eines Objektes und Bildr
Hallo Kaeferlieschen,
Welche Inputs hast Du genau? Wie ist "die Kante" definiert? Was genau ist "der Bildrand" und welche "Zeilenvektoren" bestimmst Du? Erkläre es also nochmal für die Leser im Forum, die nicht die geringste Ahnung haben, was Du machst.
Hallo Jan,
da hast du natürlich recht. Sorry, für meine ungenauen Angaben.
Grundsätzlich möchte ich in einem Kanal Blasen auswerten. Dafür habe ich einen Algorithmus geschrieben, der auch gut funktioniert.
Ich bekomme nur ein Problem, wenn ich den Algorithmus auf andere Bilder anwende. Denn neben meinem Kanal befindet sich eine Größenskale, welche mein Algorithmus erkennt und dann Fehler meldet. Er kann die gelabelten Blasen dann irgendwie nicht finden und folglich funktioniert der Algorthmus dann nicht.
Ich möchte diese Störungen vorher ausschneiden und den Kanal gleich ausrichten.
Denn die auszwertenden Bilder stammen von einem Video. Diese möchte ich gerade aneinander setzen.
Ich dachte mir, wenn der Kanal erstmal ausgerichtet ist, dann kann ich die Kanten mit imcrop() einfach ausschneiden, weil die Position des Kanals im Bild ja dann immer die selbe ist.
Das Ausrichten wollte ich mittels einer Rotationsmatrix versuchen. Dazu benötige ich aber einen Winkel des Kanals, denn ich irgendwie bestimmen will.
Ich möchte deswegen eine Rotationsmatrix verwenden, weil die Rotation des Bildes je nach Aufnahme unterschiedlich ist.
Auf den Bild seht ihr links nur den Kanal und rechts die Kantendetektion.
Bis jetzt habe ich sehr viel ausprobiert, aber ich stecke fest. Ich freue mich also über jede Idee.
Code:
length=size(videoNamen);
for i=1:length(2)
Name=cell2mat(videoNamen(i)); %beliebige Formate in Matlab-formate umwandeln
Video=sprintf('%s//%s.avi',videoPfad,Name); %Video in String umwandeln
end
%aus Video Bilder generieren
Bild=VideoReader(Video);
frame=readFrame(Bild);
% frameroh=readFrame(Bild); % frame=imread('CropBild.bmp');%Frame wurde mit Schneide-Tool geschnitten % und wieder neu gespeichert
%% Kantendetektierung Kanal
gris=rgb2gray(frame);%Buntes Bild in graues Bild
level=0.8;%Erkennung Kanal
Binarbild=im2bw(gris,level);
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.