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;

    }

  • 相关阅读:
    解决phpmailer可以在windows下面发送成功, 在linux下面失败的问题
    centos安装svn
    linux下面配置安装nodejs+npm
    排序与搜索
    链表
    栈和队列
    顺序表
    初识算法、数据结构
    Linux_02
    Linux_01
  • 原文地址:https://www.cnblogs.com/gary-guo/p/6554393.html
Copyright © 2011-2022 走看看