1.Mat Iterator_是一个模板类
2.一个图像迭代器使用如下方式声明:
Mat Iterator_ it;或Mat_::iterator it;【推荐使用】
3.使用常规的begin和end来遍历所有像素。
4.模板函数begin,end
5.Mat_::iterator it可以避免在使用begin和end方法的时候还要指定迭代器的类型。
` 1.Mat Iterator_是一个模板类
2.一个图像迭代器使用如下方式声明:
Mat Iterator_ it;或Mat_::iterator it;【推荐使用】
3.使用常规的begin和end来遍历所有像素。
4.模板函数begin,end
5.Mat_::iterator it可以避免在使用begin和end方法的时候还要指定迭代器的类型。
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <vector>
using namespace cv;
using namespace std;
void colordec(Mat &image, int div = 64)
{
Mat_<Vec3b>::iterator it = image.begin<Vec3b>();
Mat_<Vec3b>::iterator itend = image.end<Vec3b>(); for (; it != itend; ++it)
{
(*it)[0] = (*it)[0] / div * div + div / 2;//遍历像素,压缩像素
(*it)[1] = (*it)[1] / div * div + div / 2;
(*it)[2] = (*it)[2] / div * div + div / 2; }}
int main()
{
Mat src = imread("3.jpg");
colordec(src);
namedWindow("picture");
imshow("picture", src);
waitKey(0);
return 0;}