OpenCV2代码升级到OpenCV3/4时报错的一些策略

近期发现跟多小伙伴在把OpenCV2的代码移植到 OpenCV3/4时遇到了各种大大小小的问题,下面我就把它们整理一下吧!如果需要对点找到你的问题,可以按Ctrl+F,输入一些关键词(如:大写字母的常量名称)直接定位到与你报错有关的位置哦!
博主第一次写博客,请大家多多指教。如需转载,请注明本博客链接,谢谢!

问题1、由于宏名称的变更造成的“未声明的标识符”系列问题

症状:在OpenCV3的环境下运行OpenCV2中写的程序,报“error C2065: ‘CV_WINDOW_AUTOSIZE’: 未声明的标识符”系列错误

有些时候,是直接加入“#include<cv.h>”便可以让OpenCV3识别到一些CV_前缀的宏

情况1:、直接去掉“CV_”前缀:
典型的有:

函数OpenCV2中的函数名OpenCV3中的函数名
namedWindow函数CV_WINDOW_AUTOSIZEWINDOW_AUTOSIZE
threshold函数CV_THRESH_BINARYTHRESH_BINARY
line函数CV_FILLEDFILLED
remap函数CV_INTER_LINEARINTER_LINEAR
鼠标操作函数SetMouseCallbackCV_EVENT_LBUTTONUP、CV_EVENT_LBUTTONDOWN、CV_EVENT_FLAG_LBUTTON、CV_EVENT_MOUSEMOVEEVENT_LBUTTONUP、EVENT_LBUTTONDOWN、EVENT_FLAG_LBUTTON、EVENT_MOUSEMOVE
HoughCircles函数CV_HOUGH_GRADIENTHOUGH_GRADIENT
inpaint函数CV_INPAINT_TELEA、 CV_INPAINT_NSINPAINT_TELEA、INPAINT_NS
matchTemplate函数CV_TM_SQDIFF、CV_TM_SQDIFF_NORMEDTM_SQDIFF、TM_SQDIFF_NORMED
imwrite函数CV_IMWRITE_PNG_COMPRESSIONIMWRITE_PNG_COMPRESSION
设置摄像头尺寸时CV_CAP_PROP_PNG_COMPRESSION、CV_CAP_PROP_FRAME_HEIGHTCAP_PROP_FRAME_WIDTH、CAP_PROP_FRAME_HEIGHT

情况2: 需要用新的前缀替换

函数OpenCV2中的函数名OpenCV3中的函数名
line函数等一系列绘图函数CV_AALINE_AA
cvtColor函数中颜色空间转换系的宏所有的“CV_”前缀。如:CV_BGR2HSV替换为“COLOR_”前缀。如:COLOR_BGR2HSV
normalize函数CV_MINMAXNORM_MINMAX
morphologyEx函数所有的前缀。如:CV_MOP_OPEN替换为“MORPH_”前缀。如:MORPH_OPEN
threshold函数所有的前缀。如:CV_THRESH_BINARY全部替换为“THRESH_”前缀。如:THRESH_BINARY

情况3: 需要在新的命名空间中使用宏

函数OpenCV2中的函数名OpenCV3中的函数名
TermCriteria函数CV_TERMCRIT_EPS、CV_TERMCRIT_ITERTerm Criteria::Eps、TermCriteria::MAX_ITER
CascadeClassifier::detectMultiScale函数CV_HAAR_SCALE_IMAGECASCADE_SCALE_IMAGE

问题2、使用vector容器时提示“error C2065: “vector”:未声明的标识符”系列错误

症状:在OpenCV3的环境下运行OpenCV2中写的程序,使用了vector容器,而未包含STD命名空间。
OpenCV3中并没有在头文件中使用标准程序库std的命名空间。所以只需在程序开头加上“using namespace std;”即可

其他一些细节问题的解决方案

问题所在OpenCV2中的表示方法OpenCV3中的表示方法
features2d.hpp头文件路径的更改#include<opencv2/nonfree/features2d.hpp>#include<opencv2/features2d.hpp>
core.hpp头文件路径更改#include<opencv2/core/core.hpp>#include<opencv2/core.hpp>
format进行格式化输出format(r,“python”)format(r,Formatter::FMT_PYTHON)
定义尺寸时cvSize(-1,-1)Size(-1,-1)
表示颜色时CV_RGBscalar

更多请参考维基官网:http://code.opencv.org/projects/opencv/wiki/ChangeLog

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值