【发布时间】:2015-11-05 06:40:49
【问题描述】:
我是opencv编程的初学者,我正在尝试读取图像(cv::Mat)并将其数据复制到Uchar的某个向量中,然后从该向量创建图像。
即读取 Mat ,将 Mat 转换为 std::vector ,然后再次从该向量创建一个 Mat 。
像素数据的中间变换需要向量。 我推荐了 Convert Mat to Array/Vector in OpenCV
用于vector-Mat的转换。
int main()
{
Mat image = imread("c:\\cv\\abc.bmp");
std::vector<unsigned char> src_vec;
src_vec.assign(image.datastart, image.dataend);
cv::Mat dest(src_vec, true);
try {
imwrite("dest.bmp", dest);
}
catch (runtime_error& ex) {
fprintf(stderr, "Exception saving the image: %s\n", ex.what());
return 1;
}
return 0;
}
输出图像似乎是垃圾,如何使用矢量数据设置 dest Mat 还是我以错误的方式创建矢量本身。 任何指导都会有所帮助。
【问题讨论】: