OpenCV中Mat结构图像元素的获取

参考文章:http://blog.csdn.net/ljbkiss/article/details/7381208 


文中对比了7种方法

都是针对灰度图的,若对RGB图操作,注意元素排列实际为:B G R的顺序


读入灰度图:imread("img.jpg",0);//0表示读为灰度图,或者用IMREAD_GRAYSCALE


Mat类中有个step数组,step[0]表示图像一行的字节数, step[1]表示每个像素的字节数


文艺做法:(推荐方法)(只能用于彩色图)

float getMatPix(Mat img,int row,int col,int BGR)//B G R:0 1 2
{  
	float *pts = img.ptr<float>(row);  
	return pts[3*col+BGR];
}

暴力做法:(速度更快)(彩色、灰度通用)

float* getMatPix(Mat img,int row,int col)//灰度图
{  
	int step0=img.step[0];
	int step1=img.step[1];
	return (float*)(img.data+row*step0 + col*step1) ;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值