У меня есть изображение, которое я помещаю в вектор uchar
, который я отправляю от процессора к процессору с использованием открытого mpi, однако мне нужно поместить вектор uchar
в cv::Mat
.Vector of Uchar to cv :: Mat
Есть ли простой способ сделать это?
cv::Mat image_on_proc = newpopulation(cv::Rect(0, start, population.cols, rows_in_section));
std::vector<byte> img = matToBytes(image_on_proc);
std::vector<uchar> test;
for(int i=0; i<image_on_proc.rows; i++)
{
for(int j=0; j<image_on_proc.cols; j++)
{
test.push_back(image_on_proc.at<uchar>(i,j));
}
}
MPI_Barrier(MPI_COMM_WORLD);
MPI_Send(&test[0],test.size()*sizeof(uchar), MPI_BYTE, 0, 99, MPI_COMM_WORLD);
Вышеприведенные показывает, как я положил изображение в вектор и отправить его, есть соответствующая RECV и она работает, но я не знаю, как превратить его обратно в изображение.
'резюме :: Mat imgFromVector = резюме :: Mat (строки, перевалы, CV_8UC1, vector.data()) клон(); 'можно опустить .clone, если вы не хотите копировать данные. – Micka