lundi 15 octobre 2012

conversion HD uyvy -> RGB

                i=0;
                for (y=0;y<image.rows;y++)
                {
                    uchar* ptr_cv= (uchar *)( image.ptr() + image.channels()*y * image.cols);   
                    for (x=0;x<image.cols/2;x++)
                    {
                        U = pData[i]-128.0;
                        YY1 = 1.164*(pData[i+1]-16);
                        V = pData[i+2]-128.0;
                        YY2 = 1.164*(pData[i+3]-16);
                        i+=4;

                        B=YY1          + 1.793*U;
                        G=YY1 - 0.534*V- 0.213*U;
                        R=YY1 + 2.115*V;
                        if (R<0) R=0;if (G<0) G=0;if (B<0) B=0;
                        if (R>255) R=255;if (G>255) G=255;if (B>255) B=255;
                        j=2*image.channels()*x;
                        ptr_cv[j]  = (unsigned char)B;
                        ptr_cv[j+1]= (unsigned char)G;
                        ptr_cv[j+2]= (unsigned char)R;
                        B=YY2          + 1.793*U;
                        G=YY2 - 0.534*V- 0.213*U;
                        R=YY2 + 2.115*V;
                        if (R<0) R=0;if (G<0) G=0;if (B<0) B=0;
                        if (R>255) R=255;if (G>255) G=255;if (B>255) B=255;
                        ptr_cv[j+3]  = (unsigned char)B;
                        ptr_cv[j+4]= (unsigned char)G;
                        ptr_cv[j+5]= (unsigned char)R;

                    }
                }

Aucun commentaire:

Enregistrer un commentaire