-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Problem bei RGB zu HSV-Wandlung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17

    Problem bei RGB zu HSV-Wandlung

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Huhu!

    So bin neu hier aber hab schon einen Haufen durch und mitgelesen =)

    Ich habe auch vor mir in nächster Zeit einen Robi zu bauen, ein Spaßprojekt, einen interagierenden Roboter. Bevor ich damit anfang wollte ich mir erstmal softwaremäßig einen Überblick machen, was für Möglichkeiten des "Inputs" es gibt.
    Ich habe mit dem Bildverarbeitungstut. angefangen, läuft eigentlich auch alles soweit recht gut bis jetz, ich hab nur ein Problem mit den Webcams (ich denke es liegt an denen)

    Wenn ich von RGB nach HSV umwandle und mir das "H"-Bild anguck dann seh ich immer Klötzchen (s. Bild). Habs mit ner andern Cam getestet, die hat gegrieselt, da wars ein reines Chaos und man hat gar keine Objekte erkannt. Liegt das an der Komprimierung der Kamera? Oder ist es ein Fehler im Code (das Bspbild vom Tut wandelt er aber genauso um). Gibt es Webcams mit denen ihr gute Erfahrung habt? Denn Objekterkennung wird schwierig wenn man Legosteine im Bild hat


    Grüße,
    Tim
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken edge_detect.jpg  

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    an deiner webcam sollte das nicht liegen, das rgb bild ist doch ok..
    welchen algorithmus benutzt du zur umwandlung? ich denke da ist der wurm drin.
    ich habe hier nur HSL->RBG:
    http://codefactory.dead-men.de/index.php?tutorial=51

    gruesse

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    Doch zoom mal ran, das sind die typischen Kompressionsklötzchen, oder?

    Als Algorythmus hab ich den von hier (is in VB geschrieben):
    http://www.aboutvb.de/khw/artikel/khwrgbhlshsv.htm

    Und schau mal, wenn ichs mit nem richtigen Foto mache dann geht's auch besser:


    EDIT:
    2. Anhang, ich hab das mal vergrößter und dunkler gemacht, das liegt doch schon dadran oder?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken edge_2.jpg   edge_3.jpg   edge_3_185.jpg  

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.02.2006
    Alter
    47
    Beiträge
    781
    Hast du die Kantenerkennung über den Farbton-Kanal drüberlaufen lassen? Ich glaube das geht nicht. Zumindest nicht bei hellen und dunklen Flächen.
    Aber mit den Klötzchen scheint's auch was zu tun zu haben.

    Du siehst ja im H-Kanal schon, dass in den hellen Flächen unten Sprüge drin sind. Das hängt teils mit der Kompression und teils damit zusammen, dass bei Weißtönen sehr kleine Schwankungen starke Farbton-Schwankungen auslösen, z.B. (255 / 255 / 254) = Blau und (254 / 255 / 255) = Rot

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    Nein hab ich auf dem Screenshot nicht, allerdings funktioniert das wunderbar, habs immer nur mit einem Kanal getestet aber das ging gut. Nur dann hat man halt viel zu viele Kanten...

    D.h. wohl neue Webcam oder? Hat ich eh vor, das is so ne billige. Gibts denn welche ohne Kompression?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.062
    Blog-Einträge
    2
    Hallo troede,

    was möchstest Du denn mit deiner Kamera erkennen?
    Ich habe mich auch schon mal vor einiger Zeit mit der Bildverarbeitung versucht http://www.roboternetz.de/phpBB2/viewtopic.php?t=15731 . Mit eine Quickcam Pro konnte ich für mich brauchbare Ergebnisse erzielen.

    Gruss,
    stochri[/url]

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    Hey!
    Wie gesagt ich dachte an einen "humanoiden" Roboter, der z.B. Gesichter erkennen kann und Menschen. Aber auch einfache Gegenstände.
    Ist das für privat überhaupt realisierbar? Denn man hat ja nicht immer einfache Hintergründe in ner Wohnung, eher das Gegenteil davon...

    Würdet ihr für Menschen lieber eine Infrarotkamera nehmen? Ist ja doch deutlich einfacher oder?

    Grüße


    EDIT:
    Ich hab das grad mal mit deinem Testbild getestet...ich glaub da stimmt wohl doch irgendwas nicht, schauts euch mal im Anhang an.


    Code:
    Public Sub RGBColorToHSV(ByVal Color As Long, rH As Integer, _
     rS As Integer, rV As Integer, rBack As Integer, gBack As Integer, bBack As Integer)
    
      OleTranslateColor Color, 0&, Color
      nR = Color Mod 256
      rBack = nR
      Color = Color \ 256
      nG = Color Mod 256
      gBack = nG
      Color = Color \ 256
      nB = Color Mod 256
      bBack = nB
      
      RGBtoHSV nR, nG, nB, rH, rS, rV
    End Sub
    
    Public Sub RGBtoHSV(ByVal R As Integer, ByVal g As Integer, _
     ByVal b As Integer, rH As Integer, rS As Integer, rV As Integer)
    On Error Resume Next
      
      nRR = R / 255
      nGG = g / 255
      nBB = b / 255
      nRGBs(0) = nRR
      nRGBs(1) = nGG
      nRGBs(2) = nBB
      nMax = zMax(nRGBs)
      nMin = zMin(nRGBs)
      nV = nMax
      If nMax <> 0 Then
        nS = (nMax - nMin) / nMax
      End If
      
      If nS = 0 Then
        nH = -1
      Else
        nDelta = nMax - nMin
        Select Case nMax
          Case nRR
            nH = (nGG - nBB) / nDelta
          Case nGG
            nH = 2 + ((nBB - nRR) / nDelta)
          Case Else
            nH = 4 + ((nRR - nGG) / nDelta)
        End Select
        nH = nH * 60
        If nH < 0 Then
          nH = nH + 360
        End If
      End If
      rH = nH
      rS = nS * 100
      rV = nV * 100
    End Sub
    Und das ist der Code für die Umwandlung, copy&paste deswegen sollte das ja eigentlich gehn oder? Was auf dem Bild ist ist der "H-Kanal".
    Oder liegt das wieder nur daran dass das n JPG ist? Hast du das mal probiert, deinen Screenshot umzuwandeln?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken edge_4.jpg  

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    OK ich hatte vergessen die Normierung vorzunehmen, von 360 auf 255...

    Sieht schon viel besser aus. Wie mach ich denn jetzt weiter am besten?

    Und noch eine Frage, manchmal bekomm ich viel bessere Ergebnisse wenn ich den S oder den V-Kanal nehm...nach welchem Kriterium is denn das so?

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    teste die umwandlung doch mal in matlabn oder scvilab, dann kannt du schauen, ob´s an deinem proghramm oder am bild liegt

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    29.08.2006
    Beiträge
    17
    Wie geht das?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •