在opencv imencode期间调试断言失败

时间:2016-06-28 08:58:13

标签: c++ opencv

我正在尝试使用以下代码使用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;
}

return语句中,抛出以下异常。

为什么会发生这种情况?我该如何解决这个问题?

2 个答案:

答案 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对象。