Opencv 兼容OPENCV1.0

本文介绍使用OpenCV进行图像色彩空间转换的过程,包括从BGR到YCrCb的转换,并对YCrCb通道进行非线性调整以实现特定视觉效果。通过修改亮度和色度分量来改变图像外观。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	const char* image="1.jpg";
	Ptr<IplImage> img=cvLoadImage(image);   // 转换Mat IplImage.
	if (img.empty())
	{
		return -1;
	}
	Mat img1(img);
Mat img_yuv;
cvtColor(img1,img_yuv,CV_BGR2YCrCb);
vector<Mat> planes;
split(img_yuv,planes);
MatIterator_<uchar> it=planes[0].begin<uchar>(), it_end=planes[0].end<uchar>();
for(; it!=it_end; ++it)
{
	double v=*it*1.7+rand()%21-10;
	*it=saturate_cast<uchar>(v*v/255);      //saturate_cast强制类型转换
}
for(int y=0; y<img_yuv.rows; y++)
{
	uchar *pp=planes[1].ptr<uchar>(y);
	for(int x=0; x<img_yuv.cols; x++)
	{
		pp[x]=saturate_cast<uchar>(pp[x]-128)/2;
		uchar &cc=planes[2].at<uchar>(y,x);
		cc=saturate_cast<uchar>(cc-153);
	}
}
merge(planes,img_yuv);
cvtColor(img_yuv, img1,CV_YCrCb2BGR);

imshow("11",img1);
                                          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值