OpenCV之像素访问(3)

通过迭代器访问图像数据

说明:此种方法虽然简单,但是执行效率较差,会在后续的博文中进行对比

还是以Color Reduce算法为例(通道数目为3):
voidcolorReduce4(Mat&image, intn=6) {
intdiv = (int)pow(2.0f,n);
ucharmask = 0xFF<<n;
Mat_<Vec3b>::iteratorit = image.begin<Vec3b>();
Mat_<Vec3b>::iteratoritend = image.end<Vec3b>();
for(;it!=itend;++it)
{
(*it)[0]=((*it)[0]&mask)+div/2;
(*it)[1]=((*it)[1]&mask)+div/2;
(*it)[2]=((*it)[2]&mask)+div/2;
}
}

你可能感兴趣的:(OpenCV之像素访问(3))