把一幅图像从rgb 空间转到yuv ,然后再转回来,图像误差大的惊人》?
各位有没有遇到过这种情况?

解决方案 »

  1.   

    哦,我用的网上找的公式:
    YUV与RGB相互转换的公式如下(RGB取值范围均为0-255)︰ 
      Y = 0.299R + 0.587G + 0.114B 
      U = -0.147R - 0.289G + 0.436B 
      V = 0.615R - 0.515G - 0.100B 
      R = Y + 1.14V 
      G = Y - 0.39U - 0.58V 
      B = Y + 2.03U 
    请问这个公式有问题吗?我就是用的这个公式呀
      

  2.   

    参考 msdn 的试试呢
    还可以提高速度YUY2经常用于电视制式以及许多摄像头的输出格式.而我们在处理时经常需要将其转化为RGB进行处理,这里简单介绍下YUY2(YUV)与RGB之间相互转化的关系:http://msdn2.microsoft.com/en-us/library/ms893078.aspxYUY2(YUV) To RGB:C = Y - 16D = U - 128E = V - 128R = clip(( 298 * C           + 409 * E + 128) >> 8)G = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)B = clip(( 298 * C + 516 * D           + 128) >> 8)其中 clip()为限制函数,将其取值限制在0-255之间.RGB To YUY2(YUV):Y = ( (  66 * R + 129 * G +  25 * B + 128) >> 8) +  16U = ( ( -38 * R -  74 * G + 112 * B + 128) >> 8) + 128V = ( ( 112 * R -  94 * G -  18 * B + 128) >> 8) + 128本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jtujtujtu/archive/2009/02/10/3874621.aspx
      

  3.   

    有点问题,重新发下YUY2经常用于电视制式以及许多摄像头的输出格式.而我们在处理时经常需要将其转化为RGB进行处理,这里简单介绍下YUY2(YUV)与RGB之间相互转化的关系:http://msdn2.microsoft.com/en-us/library/ms893078.aspxYUY2(YUV) To RGB:C = Y - 16D = U - 128E = V - 128R = clip(( 298 * C           + 409 * E + 128) >> 8)
    G = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)
    B = clip(( 298 * C + 516 * D           + 128) >> 8)
    其中 clip()为限制函数,将其取值限制在0-255之间.RGB To YUY2(YUV):Y = ( (  66 * R + 129 * G +  25 * B + 128) >> 8) +  16
    U = ( ( -38 * R -  74 * G + 112 * B + 128) >> 8) + 128
    V = ( ( 112 * R -  94 * G -  18 * B + 128) >> 8) + 128本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jtujtujtu/archive/2009/02/10/3874621.aspx
      

  4.   

    非常感谢你的回答,我使用matlab写程序的,突然发现里面有直接转换的函数,不用自己写(我自己还写得不对),rgb2ycrcb()这个函数就可以的。