Visual Studio 2013 с OpenCV Release Mode успешно завершен, но запустить не удалось - PullRequest
0 голосов
/ 23 октября 2018

Моя проблема в том, что когда я запускаю свою программу в режиме Release, она может собираться и запускаться, но когда дело доходит до imwrite, возникает ошибка нарушения доступа.но когда я запускаю свою программу в режиме отладки, ошибки не будет.

Что я сделал:

  1. Добавлен opencv / build / include /x64 / vc12 / bin к системному пути

  2. Добавлены следующие папки в каталоги include каталогов VC ++

opencv / build / include

opencv / build / include / opencv

opencv / build / include / opencv2

в C / C ++ -> Общие -> Дополнительные включенные каталоги Добавлена ​​папка libs третьей третьей части

в Linker -> Ввод -> Дополнительные зависимости Добавлена ​​библиотека (безd) например: opencv_highgui2410.lib и т. д.

И ошибка возникает из следующего кода.

int SavePictures(IplImage* tmp_img)
{
    Mat tmp_mat=cv::caarrToMat(tmp_img,false);
    cv::imwrite("test.jpg",tmp_mat);
    return 1;
}

каждый раз, когда идет к imwrite,ошибка нарушения доступа выйдет.добавив отладочную информацию в режим выпуска, я обнаружил, что когда происходит переход к imwrite, он сначала перейдет к следующему.

_Myt& assign(const _Elem*_ptr,size_type _Count)
{//asaign [_Ptr, _Ptr+_Count)
#if _ITERATOR_DEBUG_LEVEL==2
    if(_Count!=0)
    _DEBUG_PONTER(_Ptr);
    #endif
    if(_Inside(_Ptr))
        return (assign(*this,_Ptr - this->_Myptr(),_Count));
    if(_Grow(_Count))
    {
        _Traits::copy(this->_Myptr(),_Ptr,_Count);
        _Eos(_Count);
    }
return (*this);
}

, перейдет в предложение _Grow if и вернется.и когда шаг следующий, нарушение доступа выйдет.Кто-нибудь может дать мне какой-нибудь совет?Я буду очень признателен!

Большое спасибо

...