Convert Mat to vector and Vector to mat in opencv

前端 未结 2 1699
醉话见心
醉话见心 2020-12-18 08:16

i want to Convert Mat to vector and Vector to mat in opencv .

my code :

     void mat_to_vector(Mat in,vector &out){

        for          


        
2条回答
  •  太阳男子
    2020-12-18 09:13

    This is how I do it. The first function is inspired by https://stackoverflow.com/a/26685567 . The output of VectorToMat is in CV _8U.

    void MatToVector(const Mat& in, vector& out) 
    // Convert a 1-channel Mat object to a vector. 
    {
    if (in.isContinuous()) { out.assign((float*)in.datastart, (float*)in.dataend); }
                    else {   
                    for (int i = 0; i < in.rows; ++i) 
                    { out.insert(out.end(), in.ptr(i), in.ptr(i) + in.cols); }
                    }     return;
    }
    
    
    void VectorToMat(const vector& in,  Mat& out)    
    {
    vector::const_iterator it = in.begin();
    MatIterator_ jt, end;
    jt = out.begin();
    for (; it != in.end(); ++it) { *jt++ = (uchar)(*it * 255); } 
    }
    

提交回复
热议问题