opencv2.2版本中访问像素点的效率问题

本文详细介绍了C++中三种高效图片处理方法:at方式、指针方式和迭代器方式,强调了指针方式在图片处理中的优势,并提供代码示例。重点突出在图片或矩阵操作中使用指针进行优化的重要性。

摘自opencv2 codebook

 

1. at方式,如image.at<uchar>(i,j) =255或image.at<Vec3b>(i,j)[0] =255

此方式的效率比较低,建议只在随机读取时使用,在图片或矩阵轮询时不要使用。

2. 指针方式如 uchar* data= image.ptr<uchar>(j),data[i] =elem;

指针操作的效率最高,尤其是经过优化后的,一个优化的方法就是用短的循环代替长的循环,一个循环内多做些操作

3. 迭代器的方式如cv::Mat_<cv::Vec3b>::iterator it=  image.begin<cv::Vec3b>();

他的主要好处就是不会越界,是面向对象编程里经常用到的STL的方法,但他的效率也不是很高

 

所以平时编程还是用指针的方法。

 

转载于:https://www.cnblogs.com/seacode/archive/2011/07/28/2119869.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值