Opencv 3.0 HOGDescriptor,"计算"在vs 2008中使用发布模式时出现函数运行时错误

时间:2015-03-18 12:20:58

标签: c++ opencv

我正在使用Opencv 3.0+ Vs2008,(win * 86 PC)。我想在opencv中使用HOGDescriptor进行一些研究,但代码在VS2008的Release模式中抛出异常。同时代码在Deubug模式下运行良好。这是我的代码:

#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include<string>
#include<iostream>
#include<vector>
using namespace std;
using namespace cv;
int main()
{
    string imagePath="E:/test/3.jpg";
    Mat img=imread(imagePath,IMREAD_GRAYSCALE);
    if (img.empty())
    {
        cout<<"Can't read image,please check!"<<endl;
        return -1;
    }
    HOGDescriptor hog;
    vector< Point > location;
    vector< float > descriptors;
    hog.compute( img, descriptors, Size( 8, 8 ), Size( 0, 0 ), location );
    return 0;   
}

我逐步调试代码,我怀疑Opencv源代码有错误。我发现在第586行的“hog.cpp”中抛出异常,这里是代码:  ......

for (; i <= blockSize.height - 4; i += 4)
{
   __m128 t = _mm_sub_ps(_mm_cvtepi32_ps(idx), _bh);
   t = _mm_mul_ps(t, t);
   idx = _mm_add_epi32(idx, ifour);
   _mm_storeu_ps(_di + i, t);
}

代码“i&lt; = blockSize.height - 4”运行时错误。 我认为我的Code Project属性是正确的,术语:“c / c ++” - 代码生成,运行时库是发布模式下的“多线程DLL(/ MD)”。 有谁知道这个问题?谢谢你的帮助!

0 个答案:

没有答案