• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    4年前 (2014-10-15)  OpenCv |   抢沙发  38 
    文章评分 0 次,平均分 0.0

    第一个为就地转置,第二个将转置后的结果存放于dst

    template<typename T> static void
    transposeI_( Mat& mat )
    {
        int rows = mat.rows, cols = mat.cols;
        uchar* data = mat.data;
        size_t step = mat.step;
    
        for( int i = 0; i < rows; i++ )
        {
            T* row = (T*)(data + step*i);
            uchar* data1 = data + i*sizeof(T);
            for( int j = i+1; j < cols; j++ )
                std::swap( row[j], *(T*)(data1 + step*j) );
        }
    }
    
    template<typename T> static void
    transpose_( const Mat& src, Mat& dst )
    {
        int rows = dst.rows, cols = dst.cols;
        uchar* data = src.data;
        size_t step = src.step;
    
        for( int i = 0; i < rows; i++ )
        {
            T* row = (T*)(dst.data + dst.step*i);
            uchar* data1 = data + i*sizeof(T);
            for( int j = 0; j < cols; j++ )
                row[j] = *(T*)(data1 + step*j);
        }
    }
    
     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/3771.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享