Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Farbraumkonvertierung RGB-YUV

Frage Entwicklung C und C++

Mitglied: Bierkistenschlepper

Bierkistenschlepper (Level 2) - Jetzt verbinden

22.01.2010 um 12:07 Uhr, 4384 Aufrufe

Hallo,

leider klappt bei mir die Farbraumkonvertierung von RGB nach YUV in der Sprache C nicht. Ich bin jetzt schon ewig am probieren und obwohl es in der englischen Wikipedia sehr genau beschrieben ist, hat das Bild nachher einen Farbstich...
http://en.wikipedia.org/wiki/YUV
Aktuell habe ich das Verfahren aus numerical approximation implementiert. Hier mein Code:

int i, j;
int rgb[3];
int yuv[3] = {0, 0, 0};
for(i = 0; i < B.dimx; i++){
for(j = 0; j < B.dimy; j++){
rgb[0] = B.val[0][i*B.dimx+j];
rgb[1] = B.val[1][i*B.dimx+j];
rgb[2] = B.val[2][i*B.dimx+j];

//YUV->RGB-Transformation wie in der englischen Wikipedia
yuv[0] = 66*rgb[0] + 129*rgb[1] + 25*rgb[2];
yuv[1] = -38*rgb[0] -74*rgb[1] + 112*rgb[2];
yuv[2] = 112*rgb[0] - 94*rgb[1] - 18*rgb[2];
yuv[0] = yuv[0] + 128 >> 8;
yuv[1] = yuv[1] + 128 >> 8;
yuv[2] = yuv[2] + 128 >> 8;
B.val[0][i*B.dimx+j] = yuv[0]+16;
B.val[1][i*B.dimx+j] = yuv[1]+128;
B.val[2][i*B.dimx+j] = yuv[2]+128;
printf("YUV-Werte %d %d %d \n", B.val[0][i*B.dimx+j], B.val[1][i*B.dimx+j], B.val[2][i*B.dimx+j]);


}
}

Vor der Transformation (das ist ein Testbild)
P3
4 4
255
255 255 255 10 1 1 200 2 4 3 3 10
98 5 0 1 1 1 2 2 2 3 3 10
0 235 0 10 1 132 2 2 2 3 128 10
0 5 0 1 1 1 2 2 2 3 3 10

Nach der Transformation
P3
4 4
255
235 128 128 19 127 132 69 99 214 19 131 128
44 112 169 17 128 128 18 128 128 19 131 128
134 60 42 32 184 123 18 128 128 82 95 82
19 127 126 17 128 128 18 128 128 19 131 128

Also eigentlich ists genau das gleiche wie in der Wikipedia, aber das Bild hat einen Grün/Blaustich und die Farben sind total verkehrt. Auf den ersten Blick fällt mir aber auf, dass es keine negativen Werte gibt. Laut meiner Dozentin sollten U und V aber im Bereich -[128, 127] liegen... Ich habe es auch schon mit dieser Matrixmultiplikation versucht, aber dann scheitere ich an dem "verschieben" der Zahlen, d.h. manche Zahlen sind zu groß.
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...