Я разрабатываю приложение с использованием java, которое преобразует пиксель YUV (x, y) в пиксель RGB, вот что я сделал: (данные - массив байтов YUV)
int Y = data[ y * width + x];
int U = data[ (int) (width * height + Math.floor(y/2) * Math.floor(width/2) + Math.floor(x/2) + 1)];
int V = data[ (int) (width * height + Math.floor(y/2) * (width/2) + Math.floor(x/2) + 0)];
int B = (int) (1.164*(Y - 16)+ 2.018*(U - 128));
int G = (int) (1.164*(Y - 16) - 0.813*(V - 128) - 0.391*(U - 128));
int R = (int) (1.164*(Y - 16) + 1.596*(V - 128));
Но в конце концов я обнаружил, что полученные значения RGB отрицательны. Может кто-то помочь мне с этим? Спасибо!