图像像素

OpenCV中访问图像像素的三种方法

OpenCV中访问图像像素的方法有三种:(1)指针访问像素:C操作符[];(2)迭代器操作图像像素;(3)动态地址计算方式访问像素:at。下面举例介绍其用法。

(1)指针访问像素:该方法是三种方法中速度最快的。Mat类提供的ptr函数可以得到图像任意行的首地址。自己所做测试时间:0.00278972秒。
for(int i = 0;i < rowNumber;i++)
{
uchar* data = OutputArray.ptr(i);
for(int j = 0;j < colNumber;j++)
{
data[j] = .....;
}
}

(2)迭代器操作图像像素:获得图像矩阵的begin和end,增加迭代从begin到end。将*操作符添加在迭代指针前,即可访问当前指向的内容。相比用指针直接访问可能出现越界问题,迭代器绝对安全。自己所做测试时间:0.123954秒。
Mat_::iterator itBegin = OutputArray.begin(); // 初始位置的迭代器
Mat_::iterator itEnd = OutputArray.end(); // 终止位置的迭代器

同步内容