1. 程式人生 > >opencv學習-使用迭代器iterator遍歷

opencv學習-使用迭代器iterator遍歷

             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;}