【发布时间】:2015-11-30 14:37:15
【问题描述】:
我有一张图像,我将其放入 uchar 的向量中,我使用 open mpi 从处理器发送到处理器,但是我需要将 uchar 的向量放入 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并且它可以工作,但是我不知道如何将它变成一个图像。
【问题讨论】:
-
cv::Mat imgFromVector = cv::Mat(rows, cols, CV_8UC1, vector.data()).clone();如果不想复制数据,可以省略 .clone。