opencv求取RGB分量

7809人阅读 评论(5) 收藏 举报
分类:

需要注意的是下面r,b,g的类型和顺序

须用IPL_DEPTH_8U类型创建图像且[0][1][2]分量分别是b,g,r.

另外多谢郑乾师兄帮我发现了IPL_DEPTH_8U问题

	uchar r,b,g;//notice 'uchar' type must be used instead of double 
	int h=workImg->height;
	int w=workImg->width;
	IplImage *D=cvCreateImage(cvGetSize(workImg),IPL_DEPTH_8U,workImg->nChannels); 

	CvScalar s,s1;

	for(int x=0;x<workImg->height;x++)
	{
		for(int y=0;y<workImg->width;y++)
		{

			b=((uchar*)(workImg->imageData+x*workImg->widthStep))[y*3+0];
			g=((uchar*)(workImg->imageData+x*workImg->widthStep))[y*3+1];
			r=((uchar*)(workImg->imageData+x*workImg->widthStep))[y*3+2];
		}
	}

若用IPL_DEPTH_64U类型赋值会导致图片出现如下情况:


这里大家一定要小心哦~

2
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7969090次
    • 积分:52629
    • 等级:
    • 排名:第56名
    • 原创:484篇
    • 转载:36篇
    • 译文:1篇
    • 评论:4711条
    博主描述
    百度深度学习实验室RD,关注计算机视觉,机器学习,算法研究,人工智能, 移动互联网等学科和产业,希望结识更多同道中人。
    新浪微博:Rachel____Zhang

    文章分类
    最新评论