LabVIEWForum.de - VBAI: falsche Werte bei 'Find Straight Edges'

LabVIEWForum.de

Normale Version: VBAI: falsche Werte bei 'Find Straight Edges'
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

kann es sein dass der VBAI sehr ungenau ist? Zum Testen hab ich ein Rechteck mit Photoshop gemalt (8Bit Graustufen, weißer Hintergrund (255/255/255), schwarzes Rechteck (0/0/0), Seiten des Rechtecks parallel zu den Seiten des Bildes). Wenn ich jetzt mit 'Find Straight Edges' versuche die Kante zu finden bekomme ich Werte mit Komma (478,10). Wie kann das sein? Schließlich sind es Pixel! Eigentlich sind das doch Idealbedingungen, oder?!? Kann ich damit rechnen, dass das mit echten Bildern noch ungenauer wird?!?

MfG Chriss
Vision von NI loest die Pixel auf 10^-5 auf.
Welches Datenformat hast genommen? Wenn es sich um ein nicht verlustfreies handelt, dann wird interpoliert und daher kann es sein, dass Kommawerte heraus kommen.
Andererseits kann es auch sein, wenn du einen Uebergang drinnen hast, dann kannst den Treshold manuell einstellen und da kannst du als User ebenfalls "Fehler" machen...
Das Bild ist ein Bitmap, also verlustfrei. Ich hab auch keinen Übergang. Wie gesagt Hintergrund ist weiß (255/255/255) und das Rechteck schwarz (0/0/0). Außerdem sind die Kanten parallel zum Bildrand, also kein bisschen schräg. Ich hab im Vision Builder auch nur zwei Schritte: Simulate Aquision und Find Straight Edge. Wenn ich da den Treshold ändere bleibts trotzdem gleich. Was müsste ich denn einstellen, damit es geht? Geht es bei dir ohne Kommas?
Hi,

Ich glaube das ist ein prinzipielles Problem.
So wie ich das verstehe, benutzt das VI die Radontransformation. Das ist quasi eine Abtastung von der Seite des Bildes (man stelle sich hierbei einen Sensor vor, der neben dem Bild postiert wird, in bestimmten Winkeln auf einer Linie in das Bild schaut und dann um eine bestimmte Strecke verschoben wird). Wenn man nun die Winkel gegenüber den Strecken aufträgt, erhält man dort, wo vorher geraden Kanten waren, scharfe Punkte. Die kann man dann filtern und wieder in den Bildraum zurücktransformieren.
Dabei ist die Schwäche des Systems leicht ersichtlich: Sind Linien im Bild parallel zur Achse auf der der Sensor verschoben wird, so sind sie unsichtbar/nicht lokalisierbar. Im Übergangsbereich dorthin (fast parallel)werden sie unscharf. Hat man 2 aufeinander senkrechte Linien, wird es noch spannender. Um all das zu umgehen, nutzt man eine zusätzliche Transformationsstufe -die in aller Regel auch mit diskreter Auflösung arbeitet und damit verlustbehaftet ist.
Es kommen also letztendlich Verluste von [2xWinkelauflösung(Radontransformation)+2xStreckenauflösung(Radontransformation)
*[Ungenauigkeit der 2. transformation(ggf.+Rücktransformation)]*[Ortsauflösung(Bild)]
auf den fleißigen Programmierer zu.

Das von Dir gewählte Beispiel ist eigentlich mit seinen aufeinander senkrechten, parrallel zu den Rändern stehenden Linien, ein extremes Beispiel.
Versuch mal das Rechteck um einen kleinen Winkel zu drehen...






' schrieb:Das Bild ist ein Bitmap, also verlustfrei. Ich hab auch keinen Übergang. Wie gesagt Hintergrund ist weiß (255/255/255) und das Rechteck schwarz (0/0/0). Außerdem sind die Kanten parallel zum Bildrand, also kein bisschen schräg. Ich hab im Vision Builder auch nur zwei Schritte: Simulate Aquision und Find Straight Edge. Wenn ich da den Treshold ändere bleibts trotzdem gleich. Was müsste ich denn einstellen, damit es geht? Geht es bei dir ohne Kommas?
Referenz-URLs