使用迭代器遍历图像
2014-04-14 15:19
405 查看
#include<opencv2\core\core.hpp> #include<opencv2\imgproc\imgproc.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> using namespace std; using namespace cv; //颜色缩减函数 /*void colorReduce(cv::Mat &image,int div=64) { int nl=image.rows; int nc=image.cols*image.channels(); //if(image.isContinuous()) //{ // nc=nc*nl; // nl=1; // cout<<"未填补"<<endl; //} for(int j=0;j<nl;j++) { uchar* data=image.ptr<uchar>(j); for(int i=0;i<nc;i++) { data[i]=data[i]/div*div+div/2; } } } */ void colorReduce(cv::Mat &image,int div=64) { cv::Mat_<cv::Vec3b>::iterator it=image.begin<cv::Vec3b>(); cv::Mat_<cv::Vec3b>::iterator itend=image.end<cv::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() { cv::Mat image=cv::imread("d:\\test\\opencv\\img.jpg"); colorReduce(image); cv::namedWindow("output"); cv::imshow("output",image); waitKey(0); return 0; }
相关文章推荐
- opencv学习(5) 使用迭代器遍历图像的像素
- 如何使用迭代器遍历图像
- OpenCV学习之三:使用迭代器遍历图像
- OPenCV2_如何使用迭代器遍历图像
- List和Map集合的使用及使用迭代器遍历数据
- 测试是不是回文——使用string类型的迭代器和反向迭代器遍历
- Java之使用增强for循环和迭代器遍历
- 5.使用std的迭代器访问并修改图像
- VTK中迭代器的使用,并将指针中的图像保存
- 使用迭代器 遍历文件信息的详解
- 使用迭代器 遍历文件信息的详解
- [OpenCV2]使用迭代器遍历指针
- 在使用迭代器遍历集合时,为何不能使用集合的remove方法?
- 使用迭代器Iterator和增强for循环如何遍历集合
- Java使用增强for循环和迭代器遍历Map集合
- 学习《OpenCV 2 计算机视觉编程手册》第二章---使用指针遍历图像案例
- 使用指针遍历图像
- Iterator迭代器的使用,对for和while对集合遍历并排
- C++使用迭代器遍历数组
- [OpenCV2]使用指针遍历图像