RGB到YCrCb的转换

// RGB到YCrCb的转换

/** \brief RGB->Y */
#define   CVX_RGB2YCrCb_Y(r,g,b)   ((306*(r)+601*(g)+117*(b))>>10)   
/** \brief RGB->Cr */
#define   CVX_RGB2YCrCb_Cr(y,r)   ((((r)-(y))*730 + (128<<10))>>10)   
/** \brief RGB->Cb */
#define   CVX_RGB2YCrCb_Cb(y,b)   ((((b)-(y))*578 + (128<<10))>>10)

// 调整val值到[min, max]之间

/** \brief 格式化val */
#define   CVX_ADJUST(val,min,max)   (((val)<(min))?(min):((val)>(max))?(max):(val))

// int y  = CVX_RGB2YCrCb_Y(r,g,b);
// int cr = CVX_RGB2YCrCb_Cr(y,r);
// int cb = CVX_RGB2YCrCb_Cb(y,r);
//
// y  = CVX_ADJUST(y , 0, 255);
// cr = CVX_ADJUST(cr, 0, 255);
// cb = CVX_ADJUST(cb, 0, 255);

posted @ 2011-02-24 21:20  caotangwa  阅读(2018)  评论(0编辑  收藏  举报