Rachel Zhang的专栏

因为理想,所以拼搏,关注计算机应用的点点滴滴……

opencv求取RGB分量

需要注意的是下面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类型赋值会导致图片出现如下情况:


这里大家一定要小心哦~

阅读更多
个人分类: C/C++ Computer Vision
上一篇matlab 将矩阵写入文件
下一篇opencv中的矩阵操作
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭