opencv學習-使用迭代器iterator遍歷
阿新 • • 發佈:2018-10-31
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;}