zoukankan      html  css  js  c++  java
  • Mat的迭代器使用

    如果你熟悉 C++的 STL 库,那一定了解迭代器(iterator)的使用。迭代器可以方便地遍历所有元素。Mat 也增加了迭代器的支持,以便于矩阵元素的遍历。下面的例程功能跟上一节的例程类似,但是由于使用了迭代器,而不是使用行数和列数来遍历,所以这儿没有了 i 和 j 变量,图像的像素值设置为一个随机数。

    #include<iostream> #include"opencv2/opencv.hpp"

    using namespace std;

    using namespace cv;

    int main(int argc, char* argv[])

      Mat grayim(600,800,CV_8UC1);  

    Mat colorim(600,800,CV_8UC3);

     //遍历所有像素,并设置像素值

     MatIterator_<uchar> grayit, grayend;

     for (grayit = grayim.begin<uchar>(), grayend = grayim.end<uchar>(); grayit != grayend; ++grayit)

      *grayit = rand() % 255;  

    //遍历所有像素,并设置像素值

     MatIterator_<Vec3b> colorit, colorend;

     for (colorit = colorim.begin<Vec3b>(), colorend = colorim.end<Vec3b>(); colorit != colorend; ++colorit)  

    {  

     (*colorit)[0] = rand() % 255;//Blue  

     (*colorit)[1] = rand() % 255;//Green   

    (*colorit)[2] = rand() % 255;//Red  

    }  

    imshow("grayim", grayim);

     imshow("colorim", colorim);

     waitKey(0);

     return 0;

    }

  • 相关阅读:
    Python max() 函数
    Python log10() 函数
    Python log() 函数
    Python fabs() 函数
    Java开源-astar:A 星算法
    9款超绚丽的HTML5/CSS3应用和动画特效
    Java中处理异常的9个最佳实践
    Java泛型
    Android界面性能调优手册
    正确使用Android性能分析工具——TraceView
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6554393.html
Copyright © 2011-2022 走看看