Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich habe ein kleines VI mit der Rotate Funktion zusammengestellt. Wenn ich jetzt ein Bild auswähle und dieses drehe, erscheint ein Hintergrund. Diesen will ich an den Rand des Bildes anpassen. D.h. im im Bild unten soll sich der schwarze Hintergrund automatisch in das vom Bild gezeigt grau verwandeln,
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Weiche Kanten
Ich kenne mich damit zwar nicht aus, aber ich kann mir nicht vorstellen, dass das (ohne größere Umwege) geht. Woher soll LabVIEW denn wissen, dass Du gerade das "Grau" willst. Wenn Du ein anderes (bunteres) Bild hast, dann wird das noch viel schwerer.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Weiche Kanten
Da ich ("leider") kein Vision habe, kenne nicht mal die Umwege....
Gruß Markus
(19.11.2012 18:22 )Biker777 schrieb: Ja genau da liegt das Problem, die größeren Umwege ;-)
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Ich hab auch kein Vision (mehr), aber kannst du dem imaq rotate nicht "einfach" als Destination image ein entsprechend größeres Image mit entsprechender Hintergrundfarbe einspeisen?
Die Größe des Destination images musst du dann mit irgendwelchen trigonometrischen Funktionen (tangens nehmen ich an), oder du gibst einfach eine Obergröße für beide Seiten an (max (x,y)).
Wie du die Hintergrundfarbe automatisiert rausbekommst, musst du selbst austüfteln, da kenne ich die Vision-Funktionen zu wenig.
If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Die primitive und (vermutlich funktionale) Lösung:
Soweit ich das sehe, brauchst du ja nicht das ganze Bild sondern nur die Bildmitte. Ergo zeigst du auch nur Seitenlänge durch Wurzel(2) als Bildausschnitt (quasi reingezoomt). Egal wie du dann das Bild drehst, es ist immer "echtes" Bild an jedem gezeigten Ort (und braucht nicht mit Schwarz o.ä. aufgefüllt werden).
Basiert natürlich einfach darauf, dass die Diagonale Wurzel(2) mal Seitenlänge lang ist...
Gruß Kiesch
P.S: Wenn du immer das ganze gemachte Bild sehen willst geht es natürlich nicht so einfach, aber du sparst dir so halt rauszufinden welche Farbe der Aussenbereich hat indem du einfach reinzoomst.
Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
Etwas aufwändiger: Vorausgesetzt, dass du auf deinem aufgenommenen Bild nie ein "echtes" schwarz hast:
Bild to array; Histogramm erstellen; häufigste Farbe als Hintergrund annehmen; jedes Element, welches einen Schwarzwert aufweist mit dem Hintergrundwert überschreiben; Array zu to Bild.
Das könnte gehen, aber das Problem ist, das meine Rotate Funktion nur einen Color Replace Value Eingang.Das ist ein Cluster 4 Datentyp......Ich habe es bislang hinbekommen, einen Farbwert auszulesen, sodass ich einen Cluster 3 Datentyp habe. Wie kann ich nun ein U32 oder Cluster 3 Datentyp in Cluster 4 umwandeln???
Die Get Pixel Value Methode liefert nur an dem Ausgang, der zu dem Bildtyp passt, einen Wert. Also RGB (U32) Bilder liefert nur einen U32 Wert.
Zur Umwandlung des U32-Werts in die Farbkomponenten gibt es das IMAQ IntegerToColorValue VI.
Zur Füllung der Ecken würde ich die Flood Fill Funktion verwenden. Den Farbwert würde ich entweder fest vorgeben, da die Ecken ja keine Information enthalten können. Oder abhängig vom beabsichtigten Zweck mir schon die Mühe machen und das Bild bis in die Ecke zu extrapolieren. Man könnte sich z. B. die Pixelwerte auf der Kante holen, einen Mittelwert berechnen und damit die gesamte Ecke füllen.