C/C++'da RGB-> YUV dönüşümü nasıl yapılır? Bazı Bitmap varC/C++'da RGB-> YUV dönüşümü nasıl yapılır?
.. RGB ben
Libs YUV dönüştürmek gerekir? Tuts? Makaleler?
C/C++'da RGB-> YUV dönüşümü nasıl yapılır? Bazı Bitmap varC/C++'da RGB-> YUV dönüşümü nasıl yapılır?
.. RGB ben
Libs YUV dönüştürmek gerekir? Tuts? Makaleler?
Soru, C/C++ ile dönüşümün nasıl gerçekleştirileceği soruldu. ImageMagick tabiki C++, ancak burada gösterilen hiçbir işlev gösterilmiyor (artı ImageMagick kendi lisansı altında), bu yüzden oylamada ve Leszek'in cevabını destekledim. –
Kontrol Bu madde: muhtemelen Ayrıca şu tamsayı denemek isteyebilirsiniz bu
Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
Cb = U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128
Merhaba Voyager yardıma ihtiyacım var yv12-> rgb565 olan kodumu boşaltdım. Aynı şekilde ben yuv444 için rgb888 için yapmak zorundayım. Lütfen bana yol göster. Lütfen en son soruyu yuv12-> rgb565 – Abhineet
'u çeviren fonksiyona bakabilirsin. Bir asma dosyasında karşılaşabileceğiniz renk uzayını düzenleyen çeşitli standartlar olduğuna dikkat edin (ör: BT601, BT709, xvYcc) bu formauls'lar size viwable bir görüntü verecektir. Bunların çoğu ile, ama sen coplors "doğru" almak için onları değiştirmek gerekebilir (aynı zamanda xvYcc veya 8-bit olmayan veri varsa giriş veya çıkış değerleri ot scal zorunda da olabilirsiniz – tletnes
dayalı kendi işlevini yazabilmesi için http://www.fourcc.org/fccyvrgb.php Dönüşüm oldukça kolaydır sadece hesaplamalar (Şamandıralardan daha hızlı olmalıdır)
#define CLIP(X) ((X) > 255 ? 255 : (X) < 0 ? 0 : X)
// RGB -> YUV
#define RGB2Y(R, G, B) CLIP((( 66 * (R) + 129 * (G) + 25 * (B) + 128) >> 8) + 16)
#define RGB2U(R, G, B) CLIP(((-38 * (R) - 74 * (G) + 112 * (B) + 128) >> 8) + 128)
#define RGB2V(R, G, B) CLIP(((112 * (R) - 94 * (G) - 18 * (B) + 128) >> 8) + 128)
// YUV -> RGB
#define C(Y) ((Y) - 16 )
#define D(U) ((U) - 128)
#define E(V) ((V) - 128)
#define YUV2R(Y, U, V) CLIP((298 * C(Y) + 409 * E(V) + 128) >> 8)
#define YUV2G(Y, U, V) CLIP((298 * C(Y) - 100 * D(U) - 208 * E(V) + 128) >> 8)
#define YUV2B(Y, U, V) CLIP((298 * C(Y) + 516 * D(U) + 128) >> 8)
// RGB -> YCbCr
#define CRGB2Y(R, G, B) CLIP((19595 * R + 38470 * G + 7471 * B) >> 16)
#define CRGB2Cb(R, G, B) CLIP((36962 * (B - CLIP((19595 * R + 38470 * G + 7471 * B) >> 16)) >> 16) + 128)
#define CRGB2Cr(R, G, B) CLIP((46727 * (R - CLIP((19595 * R + 38470 * G + 7471 * B) >> 16)) >> 16) + 128)
// YCbCr -> RGB
#define CYCbCr2R(Y, Cb, Cr) CLIP(Y + (91881 * Cr >> 16) - 179)
#define CYCbCr2G(Y, Cb, Cr) CLIP(Y - ((22544 * Cb + 46793 * Cr) >> 16) + 135)
#define CYCbCr2B(Y, Cb, Cr) CLIP(Y + (116129 * Cb >> 16) - 226)
'ler/actioncript/C \/C++ /' ile yeni bir soru yapmaz http://stackoverflow.com/questions/1737712/how-to-perform-rgb-yuv-conversion-with-actionscript – voyager
RGB değerini YUV olarak değiştirmek mi istiyorsunuz? Veya bir RGB bitmap'ini YUV dosyasına değiştirmek mi istiyorsunuz? Bir görüntü dosyası dönüştürmesi yapmak istiyorsun, değil mi? – voyager
Bu çalışmayı gfx karta itmenin bir yolu olduğundan eminim. Bu tarz bir operasyon gfx kartı için mükemmeldir. – fishfood