zoukankan      html  css  js  c++  java
  • OpenCV2代码升级到OpenCV3报错的解决方法

      如果某个从GitHub或其他博客网站下载的代码上传时间在2014.8.21之前,那么它一定是用OpenCV2.x版本写的。当使用配置了OpenCV3的VS编译的时候代码会有许多错误,解决报错的方法,总结后大概有以下几种。

    1.“未声明的标识符”系列问题

      新标识符和老标识符有共同之处,如果标识符用“CV_”开头,那么可以尝试加入一句“include <cv.h>”。许多标识符在OpenCV3的库中仍有定义,调用cv.h头文件后就可以使用这些标识符。

      另一方面的共同之处是标识符单词本身的意思和其功能有联系,所以大多数标识符修改之后只是改变了前缀。这时候可以采取多种措施:去掉CV_前缀、更换前缀、在新的命名空间中使用宏。上网搜索就可以找到有相同功能(参数可能有变化)的函数。

    2.因为命名空间出现的问题

      程序中当然不可能仅仅包含视觉算法有关的代码,如果不在头文件中声明std命名空间,在vector等容器的使用中容易出现问题,而这是老版本程序中不存在的问题。

      加一句using namespace std;就可以解决问题了。

    3.某个函数unsafe的解决方法

      'freopen': This function or variable may be unsafe. Consider using freopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

      有时候会提示某个函数不安全,要求加上_s后缀,然而这么做并不能解决问题。该问题不仅限于老程序升级为新程序,平时写代码也会遇到。这时候在文件开头加一句:

    #pragma warning(disable:4996)

      就可以了。

  • 相关阅读:
    Linux下通过Generic Binaries安装MySQL 5.5
    struts 2 中AJAX的使用及Struts 2 JSON的使用
    关于Abstract interface的问题。
    对于“Win8对开发者的影响”的一些看法
    RealtimeModifier Bug Report | RealtimeModifier Bug 反馈
    何为Tomcat内存
    SSH开发过程中的中文问题汇总
    Spring Test 整合 JUnit 4 使用总结
    创建Shell脚本方便MySQL服务端启动
    学习笔记 winForm move功能 与 drag 功能
  • 原文地址:https://www.cnblogs.com/Shymuel/p/9570220.html
Copyright © 2011-2022 走看看