다음 코드 스 니펫을 사용하여 더미 YUV420 이미지를 생성합니다. Y, U 및 V 구성 요소를 사용하여 RGB 형식의 동일한 이미지 복사본을 만들려고합니다.YUV420에서 RGB로 변환해도 같은 이미지가 나오지 않습니까?
YUV에서 RGB로 변환시 위키 항목을 언급했지만 YUV와 같은 이미지를 제공하지 않습니다. 제안 사항이 있으십니까?
편집 :img
은 RGB32 형식 (ARGB)의 QImage입니다.
이것은 YUV420 이미지 :
이 무엇 RGB 변환주고있다 : 모든
int clamp(int val){
if(val>255) return 255;
if(val<0) return 0;
return val;
}
-----
int h=height;
int w=width;
for(y=0;y<h ;y++){
for(x=0;x<w;x++){
int hy=y/2;
int hx=x/2;
//Populate YUV420 image
char compY=x+y+i*3; //Y component
char compU=128+hy+(i)*2; //U component
char compV=64+hx+(i)*5; //V component
//encoder.setInputPicturePixelData(0,y* l0+x,compY);
//encoder.setInputPicturePixelData(1,hy*l1+hx,compU); //encoder.setInputPicturePixelData(2,hy*l2+hx,compV);
//encoder.setInputPicturePixelData(2,hy*l2+hx,compV);
//Now create the RGB image
char R=clamp(compY+1.402*(compV-128));
char G=clamp(compY-0.3444*(compU-128)-0.714*(compV-128));
char B=clamp(compY+1.772*(compU-128));
int RGBval=0xFF<<24 | R<<16 | G<<8 | B;
img->setPixel(x,y,RGBval);
}
}
그리고 당신이 얻는 것은 YUV와는 다른 ...? –
@RomanR. 사진이 –