我使用的传输分段代码仅适用于P5 pgm文件,但我也需要将它与P2 pgm文件一起使用。 我正在使用OpenCV尝试将其从P2转换为P5,我遇到的问题是当我尝试将图像保存为二进制格式(在P5中使用)时出现错误。这里是代码:
Mat imag(imread("path_to_file.pgm", CV_LOAD_IMAGE_GRAYSCALE));
vector<int> param;
param.push_back(CV_IMWRITE_PXM_BINARY);
param.push_back(1);
try
{
imwrite("P5_file.pgm", imag, param);
}
catch (const std::exception &erro)
{
cout << &erro;
}
在Visual Studio中调试时,当使用函数imwrite时,我在xutility内部头文件中出错,我不知道它来自哪里,但它告诉我它是一个访问冲突。 _Pnext。
如果我尝试更改用于读取图像的标志,那么我得到:
错误:错误的参数(便携式位图(.pgm)需要灰色图像)
这里有什么问题?