Моя проблема в том, что когда я запускаю свою программу в режиме Release, она может собираться и запускаться, но когда дело доходит до imwrite, возникает ошибка нарушения доступа.но когда я запускаю свою программу в режиме отладки, ошибки не будет.
Что я сделал:
Добавлен opencv / build / include /x64 / vc12 / bin к системному пути
Добавлены следующие папки в каталоги 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 и вернется.и когда шаг следующий, нарушение доступа выйдет.Кто-нибудь может дать мне какой-нибудь совет?Я буду очень признателен!
Большое спасибо