我正在尝试使用以下代码使用opencv(2.4.10)的imencode
函数将bmp图像编码为jpg。
void test()
{
cv::Mat img = cv::imread("C:\\Users\\Maruf\\Pictures\\bingo.bmp", CV_LOAD_IMAGE_COLOR);
cv::vector<uchar> buf;
cv::imencode(".jpg", img, buf);
return;
}
为什么会发生这种情况?我该如何解决这个问题?
答案 0 :(得分:2)
我很确定这个问题可能是使用跨msvc版本的原因。比如,您正在使用visual studio 10构建代码并使用opencv dll&amp; amp; msvc 11或msvc的lib路径12.大多数情况都是在环境路径中添加opencv目录时发生的。我发现blob检测的类似问题,我使用visual studio 10并使用opencv vc11文件夹进行lib&amp; dll路径。将其更改为vc10后,它完美运行。
如果您在环境路径中添加了opencv,请更改它并重新启动Visual Studio。此外,您还需要对项目的lib路径进行相应的更改。
答案 1 :(得分:0)
尝试将cv::vector<uchar> buf;
更改为std::vector<uchar> buf;
。命名空间cv
没有vector
对象。