Konvertierung von YUV in BGR oder RGB in OpenCV

Ich habe eine TV-capture-Karte, die eine Einspeisung in ein YUV-format. Ich habe gesehen, andere Beiträge hier ähnlich zu dieser Frage und versucht jede mögliche Methode angegeben, aber keiner von Ihnen vorausgesetzt, ein klares Bild. Im moment die besten Ergebnisse wurden mit der OpenCV cvCvtColor(scr, dst, CV_YUV2BGR) Aufruf der Funktion.

Ich bin derzeit unwissend, YUV-format, und um ehrlich zu sein verwirrt mich ein bisschen, wie es aussieht speichert er 4 Kanäle, aber nur 3? Ich habe ein Bild von der capture-Karte zu hoffen, dass jemand nachvollziehen kann, was möglicherweise passiert, die ich verwenden könnte, um die Lücken zu füllen.

Konvertierung von YUV in BGR oder RGB in OpenCV

Ist das Futter kommt durch eine DeckLink Intensity Pro Karte und zugegriffen, die in einer C++ - Anwendung mit OpenCV in einer Windows 7 Umgebung.

Update

Ich habe mir bei einem wikipedia-Artikel in Bezug auf diese Informationen und versucht, die Formel zu verwenden in meiner Anwendung. Unten ist der code-block mit der Ausgabe von ihm erhalten. Jede Beratung wird sehr geschätzt.

BYTE* pData;

    videoFrame->GetBytes((void**)&pData);

    m_nFrames++;

    printf("Num Frames executed: %d\n", m_nFrames);

    for(int i = 0; i < 1280 * 720 * 3; i=i+3)
    {
        m_RGB->imageData[i] = pData[i] + pData[i+2]*((1 - 0.299)/0.615);
        m_RGB->imageData[i+1] = pData[i] - pData[i+1]*((0.114*(1-0.114))/(0.436*0.587)) - pData[i+2]*((0.299*(1 - 0.299))/(0.615*0.587));
        m_RGB->imageData[i+2] = pData[i] + pData[i+1]*((1 - 0.114)/0.436);
    }

Konvertierung von YUV in BGR oder RGB in OpenCV

  • "Ich bin derzeit nicht bewusst das YUV-format" --> Wikipedia. Lesen Sie dazu: en.wikipedia.org/wiki/YUV#Conversion_to.2Ffrom_RGB
  • Vielen Dank für die Verlinkung, der Artikel, aber ich bin dann davon ausgegangen, dass ich die Arbeit mit einem y, u, v und y1, und mit diesen Variablen, die zur Erstellung einer RGB-äquivalent? Auch würde ich erstellen 4 verschiedenen arrays zu nehmen, in jedem einzelnen Satz von Werten zu verschmelzen Sie alle zusammen?
  • Sie brauchen nur 3 arrays, da gibt es 3 Farbkomponenten im RGB-Farbraum. Aber ja, im Grunde muss man zum berechnen der Farbe, die Komponenten einzeln und speichern Sie Sie irgendwo.
InformationsquelleAutor Seb | 2011-10-31
Schreibe einen Kommentar