Opencv-获取图像或者矩阵的宏

本文介绍了使用OpenCV库进行图像处理的方法,包括如何利用宏CV_IMAGE_ELEM获取图像的像素值,以及通过直接操作图像数据来修改像素值的技术细节。

在OpenCV中一般取元素都用定义好的宏:
取Mat结构的元素的宏为CV_MAT_ELEM,它取2D的矩阵最方便。


取IplImage元素的宏为CV_IMAGE_ELEM,如取一个图像(x,y)点的灰度值:
uchar *ptr=CV_IAMGE_ELEM(image,uchar,i,j*3);
ptr[0],ptr[1],ptr[2]就是对应的B/G/R三个分量了。

IplImage *image =cvLoadImage("image.jpg",CV_LOAD_IMAGE_COLOR);
for(i=0;i<image->height;i++)   
		for(j=0;j<image->width;j++)   
		{
			uchar * ptr=&CV_IMAGE_ELEM(image,uchar,i,j*3); 
			ptr[0]=0;   
			ptr[1]=0;   
			ptr[2]=0; 
		}


获取并修改图像像素值,下面方式也是常用方式:

IplImage *image;      
image=cvCreateImage(Size1,IPL_DEPTH_8U,3);
uchar* RGBimage= (uchar *) image->imageData;
for(int j=0;j<image->height;j++)
	for (int i=0;i<image->width;i++)
	{
		for (int k=0;k<3;k++)   
		{  
			RGBimage[j*image->widthStep+i*3]=0;
			RGBimage[j*image->widthStep+i*3+1]=0;
			RGBimage[j*image->widthStep+i*3+2]=0;
		}

	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值