一直使用opencv3.4.0,最近新出了opencv4.0.1,引发了一些问题。【有些问题不是版本所致,顺带发现的,总结一下】
1.和版本相关
问题:使用一样的代码,将opencv从3.4.0更改为4.0.1时,有些opencv中的宏定义无法识别;
解决方法:在opencv4.0.1的头文件中找相应变量所在的头文件,添加进代码即可。
2.与版本无关
问题:同样的代码,可以在VS工程中正确运行,但双击对应的.exe文件报以下错误:
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(4.0.1) Error: Assertion failed (fs.isOpened()) in cv::Algorithm::load, file D:\thirdlib\opencv-4.0.1\build\include\opencv2/core.hpp, line 3132
错误原因:代码的一个类里面有读取磁盘文件的一个操作,双击.exe文件运行时,该目录下没有该文件,故报上面的错。
解决方法:如果读取文件无用,则在代码中删除读取文件的语句即可;
如果读取的文件有用,则在.exe所在的目录下放入所需读取的文件。
。。。很少使用exe运行程序,一直没发现这个问题。