استخراج قيم RGB من AVFRAME (FFMPEG) في C ++
سؤال
أحاول حاليًا القراءة في إطارات الفيديو باستخدام FFMPEG. التنسيق هو pix_fmt_rgb24 ؛ لكل إطار ، يتم دمج جميع قيم RGB معًا في الإطار> البيانات [0] (حيث يكون الإطار من نوع AVFrame).
كيف يمكنني استخراج قيم R و G و B الفردية لكل إطار؟ هذا لمعالجة الفيديو. أعتقد أنه سيعمل بنفس طريقة استخراج قيم RGB من صورة نقطية أيضًا. شكرًا!
المحلول
تخميني:
int p=x*3+y*frame->linesize[0];
r=frame->data[0][p];
g=frame->data[0][p+1];
b=frame->data[0][p+2];
قد يكون لدي R و G و B للخلف. وهناك مساحة كبيرة للتسريع.
لا تنتمي إلى StackOverflow