Aktuelle Zeit: 30.10.2020 15:06

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 19:21 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo Leute,

wie könnte man eine automatische Randerkennung für Bilder programmieren ?

Ziel ist es ein Bild mit einem farbigen Polygon (farbige Fläche und farbiger Rand) "zu scannen".

(Also ein Bild mit einem Vieleckigen - Farbigen - Objekt + andersfarbiger Umgebung (z.B. Transparent) )

Das Polygon sollte dann als Ausschnittmaske vorliegen.

(Die detektieren Eckpunkte wären dann am wichtigsten.)

Wie könnte man an so eine Aufgabe herangehen ?

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Sei kein Wind und Wetterhahn,
Fang' nicht stets was Neues an,
Was du dir 'mal vorgesetzt,
D'rin beharr' bis auf die letzt.
(Nur leider halte ich mich nicht oft daran.)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 19:29 
Offline
Benutzeravatar

Registriert: 21.08.2006 17:39
Hi,

das hängt doch ganz stark von den Rand-Eigenschaften ab.
Einfarbig? Dann einfach gucken, was bei y/x=0 vorliegt.
einfach? Kontrastsprung zwischen Rand und Bild? Farbspektrum bewerten (Peaks= potenziell Rand?)
Linienerkennung? Zusammenhängende Linien sind potenziell Bild-Randübergänge, wenn auch noch eine gewisse Geradheit vorliegt.

...

MFG
MIB

_________________
(hab alles, kann alles, weiß alles!!^^)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 19:40 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo schwarzer Mann,

dass Bild würde 3 farbig sein.

Umgebung = irgendeine andere Farbe (z.B. mit Transparenz)
Rand = z.B Schwarz (voller Kontrast) 1, 2 oder vielleicht 3 Pixel breit
Inhalt = z.B. Orange (oder irgendeine andere Farbe)

(Vectorgrafik / oder Pixel-/Rastergrafik im BMP - Stil (keine großartige Farb/Pixelkomprimierungen)

Der Rand würde auch keine Rundungen/Wölbungen enthalten.

Es ginge mir quasi um das "Scannen" von Polygonen auf Bildern.
Daraus sollte man die Eckpunkte erhalten um eine passgenaue Maske erstellen zu können.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Sei kein Wind und Wetterhahn,
Fang' nicht stets was Neues an,
Was du dir 'mal vorgesetzt,
D'rin beharr' bis auf die letzt.
(Nur leider halte ich mich nicht oft daran.)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 19:43 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Haben die Linien Aliasing oder sind die mit Antialias?

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 19:47 
Offline
Benutzeravatar

Registriert: 21.08.2006 17:39
Hi,

also quasi einfarbig. Dann suche alle Pixel, die einen Farbübergang aufweisen.
Die Liste dann sortieren und nach Partnern suchen, die durch eine Strecke beschrieben werden können. Das so lange wiederholen, bis du keine Vereinfachung mehr machen kannst.
Die Strecken (Start Ende) beschreiben dann dein Polygon.

MFG
MIB

_________________
(hab alles, kann alles, weiß alles!!^^)

Bild


Zuletzt geändert von man-in-black am 27.03.2019 19:52, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 19:47 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo Nic,

um das "Aliasing"-Problem zu umgehen wäre auch eine Randbreite von > 3 Pixel möglich.

Man könnte ja dann in etwa den wirklich nur schwarzen Außenrand (Mittellinie ?) annehmen, oder ?

Ich bin für alles offen.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Sei kein Wind und Wetterhahn,
Fang' nicht stets was Neues an,
Was du dir 'mal vorgesetzt,
D'rin beharr' bis auf die letzt.
(Nur leider halte ich mich nicht oft daran.)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 20:17 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Ich würde jeden Pixel des Bildes durchgehen und schauen wie viele Pixel um ihn herum welche Farbe haben. Wenn um einen Pixel herum die Hälfte transparent und die andere Hälfte Schwarz ist, dann ist da eine Linie. Wenn mehr transparent ist als Schwarz, dann bist du vermutlich an einer Ecke, vorausgesetzt dein Objekt ist konkav. Die Ecken kannst du dann alle nacheinander erkennen und miteinander verbinden.

Oder du versuchst erst einen schwarzen Pixel zu erkennen und verfolgst die Linie dann. Bei einer scharfen Kurve weißt du dann, dass es eine Ecke ist.

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 27.03.2019 20:33 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Danke an auch Beide.

Ich tue mich zwar schwer, aber ich werde mal versuchen etwas in der empfohlene Richtung zu programmieren.

Mal sehen ob ich irgendetwas brauchbares hinkriege.

_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Sei kein Wind und Wetterhahn,
Fang' nicht stets was Neues an,
Was du dir 'mal vorgesetzt,
D'rin beharr' bis auf die letzt.
(Nur leider halte ich mich nicht oft daran.)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 28.03.2019 10:45 
Offline
Benutzeravatar

Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond
vielleicht kannst Du ja das https://www.purebasic.fr/german/viewtopic.php?f=3&t=25430 als Ausgang benutzen

_________________
Win8 32Bit / PB 5.10 / PB 5.20


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Randerkennung programmieren ?
BeitragVerfasst: 28.03.2019 13:21 
Offline

Registriert: 01.04.2011 21:59
Wenn es um die Erkennung der Flächenkanten geht, schau dir das mal an: https://de.wikipedia.org/wiki/Kantendetektion

Du erhälst ein Graustufenbild in dem die Kanten einer Fläche herausgearbeitet sind. Dann musst Du "nur" noch die umschlossenen Flächen finden. :)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye