i want to Convert Mat to vector and Vector to mat in opencv .
my code :
void mat_to_vector(Mat in,vector &out){
for
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); }
}