opencv中RGB转YCbCr

本文介绍了如何在OpenCV中将RGB图像转换为YCbCr格式。需要注意,转换后的Cb和Cr通道并非彩色图,因为它们是单通道的。要显示彩色图像,需要将这些通道转换回RGB。作者还分享了一个关于彩色图像对比度增强的应用实例。
摘要由CSDN通过智能技术生成
CvMat cvRGB2YCbCr(CvMat* src)
{
	CvMat dst;
	cvInitMatHeader(&dst,3,1,CV_32F,zero);

	double B=cvmGet(src,0,0);
	double G=cvmGet(src,1,0);
	double R=cvmGet(src,2,0);

	double y  = (int)( 0.299   * R + 0.587   * G + 0.114   * B);
	double cb = (int)(-0.16874 * R - 0.33126 * G + 0.50000 * B);
	double cr = (int)( 0.50000 * R - 0.41869 * G - 0.08131 * B);

	cvmSet(&dst,1,0,cb);
	cvmSet(&dst,0,0,y);
	cvmSet(&dst,2,0,cr);

	return dst;
}

或者使用opencv内部提供函数

ycb=cvCreateImage(cvGetSize(src),8,3);
 cvCvtColor(src,ycb,CV_BGR2YCrCb);
 y=cvCreateImage(cvGetSize(src),8,1);
 cr=cvCreateImage(cvGetSize(src),8,1);
 cb=cvCreateImage(cvGetSize(src),8,1);
 cvSplit(ycb,y,cr,cb,0);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值