虽然opencv3是基于opencv2进行开发的(一部分opencv2代码在opencv3中还能正常运行),但opencv3自身也做了部分修改,而目前网上很多教程还是基于opencv2的函数API来编写的,这导致在使用opencv3时会遇到各种函数未定义之类的问题。因而,为了方便今后查阅,同时避免更多人踩坑,在此总结一下opencv3相对于opencv2的改动之处。


opencv3中取消了旧版本中的"cv_"前缀命名,并使用了新的命名规范,主要分为以下几类:

(1)直接去掉"CV_"前缀

  • namedWindow函数,将cv_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE
  • line函数及其同一类的绘图函数,cv_filed改为filled
  • threshold函数,cv_thresh_binary改为thresh_binary
  • remap函数,cv_inter_linear改为inter_linear
  • 鼠标操作函数setmousecallback,将cv_event_lbuttonup改为event_lbuttonup,其他类似。
  • imwrite写图片函数,将cv_inpaint_telea改为inpaint_telea,cv_inpaint_ns改为inpaint_ns
  • 设置摄像头尺寸时将cv_cap_prop_frame_width改为cap_prop_frame_width,cv_cap_prop_frame_height 改为 cap_prop_frame_height

..等等一些函数可以直接将"cv_"前缀去除。

(2)需要新的前缀

  • line函数中一些绘函数中的参数,cv_AA改为LINE_AA
  • cvtColor函数中颜色转换系的宏,全替换为"COLOR_"前缀,如CV_BGR2HSV改为COLOR_BGR2HSV
  • normalize函数,将cv_MINMAX改为NORM_MINMAX 等等

(3)其他

  • 定义尺寸时将cvSize(-1,-1)改为Size(-1,-1)
  • 在表示颜色时,将cv_RGB改为Scalar。
  • 设置视频格式的fourcc,cv2.x版本中中形式为cv2.cv.fourcc,在cv3,0以上的版本中应为cv2.VideoWriter_fourcc,需要特别注意。

关于fourcc函数,真是大坑,各种搜索后才知道,原来函数名改了(⊙o⊙)

Reprinted from: http://blog.csdn.net/cike14/article/details/50627857

 
 
 
 

解决opencv3运行opencv2代码时报错的修改备忘录的更多相关文章

  1. 运行TensorFlow代码时报错

    运行TensorFlow代码时报错 错误信息ImportError: libcublas.so.10.0: cannot open shared object file 原因:TensorFlow版本 ...

  2. 运行shell脚本时报错"[[ : not found"解决方法

    问题描述 在运行shell脚本时报错,命令为: sh test.sh 报错如图: 脚本代码如下: #!/bin/bash # file:test.sh # author:13 # date:2017- ...

  3. AndroidStudio中利用git下载github或者git.oschina的代码时报错:repository test has failed解决方法

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing AndroidS ...

  4. 解决ThinkPHP关闭调试模式时报错的问题汇总

    解决ThinkPHP关闭调试模式时报错的问题汇总 案例一: 最近用ThinkPHP开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 "页面调试错误,无法找开页 ...

  5. 修改 docker image 安装目录 (解决加载大image时报错:"no space left on device")

    修改 docker image 安装目录 (解决加载大image时报错:"no space left on device" ) 基于Ubuntu16.04 docker版本: 17 ...

  6. 解决使用DBeaver连接MySQL时报错-The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

    解决使用DBeaver连接MySQL时报错,其实提示很明显. The server time zone value '�й���׼ʱ��' is unrecognized or represents ...

  7. 运行python代码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 91: ordinal not in range(128)的解决办法

    1.通过搜集网上的资料,自己多次尝试,问题算是解决了,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf-8') 2.原因 ...

  8. intellij idea运行Android程序时报错;Unable to locate adb within SDK

    环境:intellij idea15 问题:运行Android时报错Throwable:Unable to locate adb within SDK   解决方法:在SDK安装目录的\platfor ...

  9. 如何解决git创建密匙时报错Too many arguments

    如题:git创建密匙时报错Too many arguments. 前几天我遇见了一个问题,git需要重新创建密匙,运行命令ssh-keygen -t rsa -b 4096 -C " you ...

随机推荐

  1. 快速切题 sgu135. Drawing Lines

    135. Drawing Lines time limit per test: 0.25 sec. memory limit per test: 4096 KB Little Johnny likes ...

  2. 快速切题 sgu133.Border 离线

    133. Border time limit per test: 0.25 sec. memory limit per test: 4096 KB Along the border between s ...

  3. Python+Flask+MysqL的web建设技术过程

    一.前言(个人学期总结) 个人总结一下这学期对于Python+Flask+MysqL的web建设技术过程的学习体会,Flask小辣椒框架相对于其他框架而言,更加稳定,不会有莫名其妙的错误,容错性强,运 ...

  4. 201621123005《Java程序设计》第十二次作业

    <Java程序设计>第十二次作业 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造 ...

  5. 怎样配置visio的数据库驱动程序

    怎样配置visio的数据库驱动程序   百度师傅最快的到家服务,最优质的电脑清灰 在使用visio进行反向工程画数据库模型图时,需要进行数据库驱动程序的配置.下面以visio2003给大家演示怎样配置 ...

  6. Swift 获取plist文件展示在TableView上

    // 1.定义二维数组 var data:[[String]]! override func viewDidLoad() { super.viewDidLoad() // 2.实例化tableView ...

  7. MPI2 编程环境搭建 MPI4PY 编程环境搭建

    最近发现了一门新语言 Julia   ,  这门编程语言据说大有取代 Python语言成为数据科学的大佬,但是细看发现最主要说的是这门编程语言运行速度比较快,并且在分布式和并行计算上比较有优势,这时候 ...

  8. 线上服务器TCP被打满是啥情况

    从一个线上服务器警告谈谈backlog https://wangxiangnan.cc/?p=105 缘起 双十一如期而至,此时的我因为在处理客户的一个问题已经陷入了忙碌.突然,不断接到驻场实施发来的 ...

  9. 在Mac上安装anaconda,在命令行中输入conda,提示不是有效命令的解决办法

    原链接:https://stackoverflow.com/questions/18675907/how-to-run-conda

  10. 系列文章--oracle简单入门教程

    oracle入门很简单:八.oracle数据表 1.创建oracle数据表创建oracle数据表的语法如下: create table命令用于创建一个oracle数据表:括号内列出了数据表应当包含的列 ...