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);
/** \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);