Opencv学习笔记之遍历图片

Opencv中有很多的方法遍历图片,笔者列出所遇见的几种遍历图片元素的方法其实就是如何遍历矩阵。为了查看出几种遍历图形的的不同,代码中会通过chrono来计算每次遍历的时间。

1、方法1:

使用Opencv中的指针对获取的图形进行遍历。

使用到Mat::ptr()此函数返回的是uchar类型,返回的是y行的第一个元素的指针。通过指针的话就可以实现对图片的遍历。我们处理的图形分别有彩色和灰度的,彩色图形一般是RGB这样需要遍历三个矩阵。就需要Mat::channels()返回的是通道数。RGB为3灰度为1。接下来我们就可以开始遍历图片了。

    chrono::steady_clock::time_ponit t1=chrono::steady_clock::now();
    for(seiz_t y=0;y(y);//指向y行第一个元素的指针
        for(size_t x;x time_used =chrono::duration_cast>
    (t2-t1);
    cout<<"遍历图形时间:\n"<

2、方法2:

本方法就很简单直接使用Mat的对象进行遍历。废话不多说直接上代码!使用Mat::at(int row ,int col)对图形进行遍历

    chrono::steady_clock::time_point t3=chrono::steady_clock::now();
    for(int y=0;y (y,x)[i];
            }
            
        }
    }
    chrono::steady_clock::time_point t4=chrono::steady_clock::now();
    chrono::duration timecha=chrono::duration_cast>(t4-t3);
    cout<<"遍历图形时间:\n"<

你可能感兴趣的:(opencv,c++,opencv,linux,图像处理)