Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Farb-Rausch Filter

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 02.04.2007, 18:57    Titel: Farb-Rausch Filter Antworten mit Zitat

Hallöle .. ich suche dringend ein stück Code, mit dem ich ein Farbrauschen aus einem Bild entfernen kann.



Ansich sidn die Pixel von Bild1 udn Bild2 "fast" gleich ... jetzt brauch ich allerdings einen Filter, der mir dieses Problem "wegfiltert".

Als ergebniss soll ein Bild entstehen, das (muss nicht perfekt sein), Pixel anzeiget, die sich öffters an der selben stelle wiederhohlen, und sich nicht so schnell ändern, als bei einem reinen BMP. (JPG will ich auch nicht verwenden, da ich schnell auf die cDIB zugreifen muss, und hohe wiederhohlraten (20FPS) brauche. die Kompression würde zu lange dauern. Desweiteren würde die Integrität des Bildes verlohren gehen.
Gleiches gilt für GIF.

Meine ersten ansätze sind folgende:
Code:
Option Explicit

Public Function Rausch_Filter_1(V_DataIn() As Byte, V_DataOut() As Byte, V_DataC As Long, V_CutValue As Byte)
On Error Resume Next
Dim X As Long
Dim Y As Long
ReDim V_DataOut(UBound(V_DataIn)) As Byte
V_DataOut = V_DataIn
For X = 1 To V_DataC Step 3
    For Y = 0 To 2
        If V_DataIn(X + Y) <= V_CutValue Then V_DataOut(X + Y) = 0
    Next
Next
End Function
Code:
Option Explicit

Private L_DataD() As Byte

Public Function Rausch_Filter_2(V_DataIn() As Byte, V_DataOut() As Byte, V_DataC As Long, V_DivValue As Byte)
On Error Resume Next
Dim X As Long
ReDim V_DataOut(UBound(V_DataIn)) As Byte
ReDim Preserve L_DataD(UBound(V_DataIn)) As Byte
V_DataOut = V_DataIn
For X = 1 To V_DataC Step 3
    If CLng(V_DataIn(X + 0)) >= CLng(L_DataD(X + 0)) - V_DivValue And CLng(V_DataIn(X + 0)) <= CLng(L_DataD(X + 0)) + V_DivValue Then
        If CLng(V_DataIn(X + 1)) >= CLng(L_DataD(X + 1)) - V_DivValue And CLng(V_DataIn(X + 1)) <= CLng(L_DataD(X + 1)) + V_DivValue Then
            If CLng(V_DataIn(X + 2)) >= CLng(L_DataD(X + 2)) - V_DivValue And CLng(V_DataIn(X + 2)) <= CLng(L_DataD(X + 2)) + V_DivValue Then
                V_DataOut(X + 0) = L_DataD(X + 0)
                V_DataOut(X + 1) = L_DataD(X + 1)
                V_DataOut(X + 2) = L_DataD(X + 2)
            End If
        End If
    End If
Next
L_DataD = V_DataIn
End Function
Code:
Option Explicit

Private L_DataD() As Byte

Public Function Rausch_Filter_3(V_DataIn() As Byte, V_DataOut() As Byte, V_DataC As Long)
On Error Resume Next
Dim X As Long
Dim NV As Long
ReDim V_DataOut(UBound(V_DataIn)) As Byte
ReDim Preserve L_DataD(UBound(V_DataIn)) As Byte
For X = 1 To V_DataC
    NV = CLng(V_DataIn(X)) + CLng(L_DataD(X)) / 2
    If NV > 255 Then NV = 255
    If NV < 0 Then NV = 0
    V_DataOut(X) = NV
Next
L_DataD = V_DataIn
End Function


Leider erhalte ich dabei keine besonders guten ergebnisse.Die integrität wird dabei leider auch sehr stark verändert.

Keiner der FIlter scheint mir als geeigent zu sein .. daher suche ich jetzt etwas, das es besser umsetzen kann.

Hat da jemand ne idee?


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 02.04.2007, 20:17    Titel: Antworten mit Zitat

Wenn es darum geht zu erkennen ob sich von Pic1 zu Pic2 was verändert hat, würde ich eher einen Kanten Algo vorschlagen.

D.h. einen Algorithmus der alle markanten Kanten erkennt und errechnet (bzw. markiert). Das Ergebnis würde ich dann für eine Bewegungserkennung (z.B.) benutzen - natürlich in einer Gewissen Gewichtung, da ja auch die Kanten nicht jedesmal 100% deckungsgeleich sind.

Sollte ich mit meiner Annahme völlig falsch liegen - dann vergiss das geschriebene zwinkern
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 02.04.2007, 20:38    Titel: Antworten mit Zitat

Naja.. es läuft darauf hinaus ... allerdings will ich keine reine Bewegungsanalyse machen, sondern eine Objekterkennung.

Das problem was ich jedoch habe ist das Farbrauschen im Bild. Ich muss das irgend wie herausfiltern. Nachts, bzw. in einem künstlichbeleuchtetem Raum ist das nicht so tragisch, es es etwas rauscht, das kann ich bereits filtern, jedoch hab ich am Tag durch sonneneinstrahlung ein sehr hohes intensives rauschen, das sehr viel Bildintegrität zerstört.

Jetzt versuche ich das Rauschen zu minden, so das ich mich der effektiven Objekterkennugn widmen kann.

Wenn das Rauschen weg ist, dann kann ich eine bewegung & Objektanalyse machen.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 02.04.2007, 21:25    Titel: Antworten mit Zitat

[OT]Sollen deine chatbots jetzt sich auch noch per webcam mit den besuchern unterhalten können?! durchgeknallt [/OT]
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 02.04.2007, 21:34    Titel: Antworten mit Zitat

Nein ... das is für meinen Laufroboter. ... gehört aber alles zusammen ... is ein teil von Lisi

MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 02.04.2007, 21:51    Titel: Antworten mit Zitat

hm, *idee*
wie wärs, wenn du einfach die Farbtiefe herabsetzt?
Dadurch geht ein Teil des Bildes verloren, aber somit auch das Rauschen, wenn du nen gescheiten Algo dafür nutzt.
Vlt. kannst du es dann sogar noch einfacher auslesen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 02.04.2007, 21:57    Titel: Antworten mit Zitat

hab ich auch überlegt, udn getestet, allerdings ist das nicht das, was ich brauche .. wenn ich die Farbtiefe herab setze, dann gehen mir einige Bildinformationen verlohren, die ich allerdings benötige.

ich brauch definitiv eine andere art von Filter.

Zur not kann ich auch mehrere Speicherarray nutzen, um mehr Tests zu machen, aber es soll devinitiv dieses Bild entrauscht werden.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 02.04.2007, 22:06    Titel: Antworten mit Zitat

Vlt. macht sich der Median-Filter aus IrfanView gut dafür happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 02.04.2007, 22:40    Titel: Antworten mit Zitat

Ein quellcode dafür wär ideal grinsen


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 02.04.2007, 23:07    Titel: Antworten mit Zitat

Google, dein Freund und Helfer happy (wenns auch CPP is, aber es geht ja um den Algo, oder)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 03.04.2007, 10:53    Titel: Antworten mit Zitat

vom Ansatz her falsch.
Wie willst du Farbrauschen eliminieren, wenn du die Amplitude des Farbrauschens oder das Verhältnis Signal zu Rauschen nicht kennst.
Der Vergleich von Pixel eines Bildes gibt dir da keine schlüssigen Informationen.
Du musst schon mehrere (möglichst unbewegte) Bilder vergleichen, um einen Wert für das Farbsignal und den Farbrauschanteil ermitteln zu können.
ThePuppetMaster hat Folgendes geschrieben:
Ansich sidn die Pixel von Bild1 udn Bild2 "fast" gleich ...
Habe ich da einen Knick in der Pupille .. der Farbrauschanteil ist seeeehr hoch (was bei Webcams leider oft so ist!)
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.04.2007, 13:12    Titel: Antworten mit Zitat

[OffTopic]
ThePuppetMaster hat Folgendes geschrieben:
Nein ... das is für meinen Laufroboter. ... gehört aber alles zusammen ... is ein teil von Lisi

Hab ich so eine Idee (Cluster-KI mit Laufroboter usw.) nicht schon mal bei irgendeiner Fernsehserie (könnte Akte X gewesen sein) gesehen? durchgeknallt
[/OffTopic]
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 03.04.2007, 15:14    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Hab ich so eine Idee (Cluster-KI mit Laufroboter usw.) nicht schon mal bei irgendeiner Fernsehserie (könnte Akte X gewesen sein) gesehen? durchgeknallt
Keine Ahnung ... die folge hab ich dann wohl verpasst weinen

sebastian hat Folgendes geschrieben:
Habe ich da einen Knick in der Pupille .. der Farbrauschanteil ist seeeehr hoch (was bei Webcams leider oft so ist!)


Naja.. es ist ja keine Webcam. Es ist eien Farbcam, die etwas modifiziert wurde. (IR-Filter wurde ausgebaut, um bessere Nachtsichtfehigkeit zu ermöglichen)

Ich habe jetzt schon etwas gefunden, das sich dafür doch schon recht gut eignet. -> PicCompare Nr.1

Wenn die Werte gut eingestellt wurde, dann erkennt er die Bilder als "gleich" ... das reicht mir aus, um die "unterschiedlichen" Pixel im neuen Bild durch die im Alten zu ersetzen, um den "kleinen" unterschied zu Kompensieren. Danach hab ich ein Bild, das im Grunde "gefiltert" wurde.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 04.04.2007, 07:17    Titel: Antworten mit Zitat

Während meines Informatikstudiums hatte ich unter anderem ein Fach Grafische Datenverarbeitung, wo wir uns genau mit solchen Dingen auseinandergesetzt haben, weil man ja dies in der Industrie häufig für automatisierte Qualitätskontrollen braucht, z.B. Kamera über Förderband, die jeden Beutel einer Ware abfotografiert und Computer, der mit Hilfe solcher Algorithmen erkennt, ob alle Teile in der korrekten Anzahl, Form und Grösse drin sind.

Bei näherem Interesse könnte ich die eine oder andere Unterlage einmal über Ostern in der Dachbodensammlung "ausgraben" gehen...
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 04.04.2007, 16:35    Titel: Antworten mit Zitat

geschockt das wär ja genial!!!!!!!!

Da danke ich schonmal rechtherzlich im vorraus!!!


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht 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.

 Impressum :: Datenschutz