zoukankan      html  css  js  c++  java
  • opencv::parallel_for_使用说明

    直接上代码

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <functional>
    
    using namespace std;
    using namespace cv;
    
    class show{
    public:
        show(
            int _x,
            int _y,
            int _z
            ):
            x(_x),y(_y),z(_z) {}
        void showxyz( const Range &range );   //里面的参数必须是Range类型
    
    private:
        int x;
        int y;
        int z;
    };
    
    
    void show::showxyz(const Range &range) {
        for( auto i=range.start; i<range.end; i++ )  //range.start和range.end数值不定,线程自动调整
        {
            cout << "x=" << x << endl;
            cout << "y=" << y << endl;
            cout << "z=" << z << endl;
        }
    }
    
    int main( int argc, char **argv )
    {
       show test1(4,5,6);  //定义一个类
       //开启线程,线程数不定.让showxyz运行5次
       //这里用bind函数,是因为内部是std::function<void(const Range&)> 类型
       parallel_for_( Range(0,5), std::bind( &show::showxyz, &test1, placeholders::_1 ) );
        return 0;
    }
    
    注意:showxyz总体是运行5次,而不是更多,尽管里面有for循环,原因在上面已说明
    cout只是为了演示,运行时会出现乱行,正常现象
    
  • 相关阅读:
    wc 统计程序
    读C#程序
    VS2013 单元测试
    android开发心得之知识的量变到质变
    大学第一篇博客
    团队作业七
    团队作业六
    团队作业五
    团队作业四
    团队作业三
  • 原文地址:https://www.cnblogs.com/penuel/p/13410924.html
Copyright © 2011-2022 走看看