OpenCV 笔记(04)— OpenCV2 升级到 OpenCV3/CV4 的改动(去掉 CV_前缀、使用新的前缀替换、使用新的命名空间宏)
1. 由于宏名称的变更照成的“未声明的标识符”系列问题
有时候,遇到此类问题加入一句 #include <cv.h>
便可以让 OpenCV3
或者 OpenCV4
也能认识一些 CV_
前缀的宏,将问题解决掉,因为有不少 OpenCV1
的宏依然在 OpenCV3
或者 OpenCV4
的 cv.h
头文件中有定义。
问题:在 OpenCV3/ OpenCV4
的环境下运行 OpenCV2
中写的程序,报 error C2065: <CV_WINDOW AUT0SIZE,:未声明的标识符
系列错误。
分析: OpenCV3/OpenCV4
取消了 OpenCV1
中残留的 CV_
式的宏前缀命名规范,对这些 CV_
前缀的宏使用了新的命名规范。这里有几种情况要分类讨论。
1.1 直接去掉“CV_” 前缀
在这种情况下,比较典型的有如下一些函数。
namedWindow
函数中,例如将CV_WINDOW_AUTOSIZE
改为WINDOW_AUTOSIZE
threshold
函数中,例如将CV_THRESH_BINARY
改为THRESH_BINARY
line
函数等一系列绘图函数中,CV_FILLED
改为FILLED
remap
函数中,CV_INTER_LINEAR
改为INTER_LINEAR
在鼠标操作函数
SetMouseCallback
中,将CV_EVENT_LBUTTONUP
改为EVENT_LBUTTONUP
、
CV_EVENT_LBUTTONDOWN
改为EVENT_LBUTTONDOWN
,
CV_EVENT_FLAG_LBUTTON
改为EVENT_FLAG_ LBUTTON
、
CV_EVENT_MOUSEMOVE
改为EVENT_MOUSEMOVE
HoughCircles
函数中, 将CV_HOUGH_GRADIENT
改成HOUGH_GRADIENT
。inpaint
函数中,将CV_INPAINT_TELEA
改为INPAINT_TELEA
, 将CV_INPAINT_NS
改为INPAINT_NS
matchTemplate
函数中,将CV_TM_SQDIFF
改为TM_SQDIFF
、CV_TM_SQDIFF_NORMED
改为TM_SQDIFF_NORMED
在
imwrite
函数相关使用中,将CV_IMWRITE_PNG_COMPRESSION
改成IMWRITE_PNG_COMPRESSION
设置摄像头尺寸的时候,将
CV_CAP_PROP_FRAME_WIDTH
改为CAP_PROP_FRAME_WIDTH
、CV_CAP_PR0P_FRAME_HEIGHT
改为CAP_PR0P_FRAME_HEIGHT
1.2 使用新的前缀替换
在这种情况下,比较典型的有如下一些函数。
line
函数等一系列绘图函数中,CV_AA
改为LINE_AA
cvtColor
函数中颜色空间转换系的宏,全替换为COLOR_
前缀,如CV BGR2HSV
改为COLOR_BGR2HSV
normalize
函数中,将CV_MINMAX
改为NORM MINMAX
morphologyEx
函数中的宏,全部替换为MORPH_
前缀,如CV_MOP_OPEN
改为MORPH_OPEN
threshold
函数中的宏,全部替换为THRESH_
前缀,如将CV_THRESH_BINARY
改THRESH_BINARY
1.3 使用新命名空间的宏
在这种情况下, 比较典型的有如下一些函数。
TermCriteria
函数中,CV_TERMCRIT_EPS
改为TermCriteria::EPS
、CV TERMCRIT ITER
改为TermCriteria::MAX_ITER
CascadeClassifier::detectMultiScale
函数中,CV_HAAR_SCALE_IMAGE
改为CASCADE_SCALE_IMAGE
。
2. 其它细节
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_RGB
改为Scalar
OpenCV 笔记(04)— OpenCV2 升级到 OpenCV3/CV4 的改动(去掉 CV_前缀、使用新的前缀替换、使用新的命名空间宏)相关推荐
- Opencv、OpenCV2.x、Opencv3.x个版本的进化,与VS各个版本的匹配问题
首相声明,本文章借鉴了其他文章,会给与文章链接. 1.opencv 与opencv2.x版本 Opencv1.0版本于2006年面世,主要基于C语言.2009年发布opencv2,主要基于C++.此时 ...
- 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...
1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...
- ubuntu18.04下 c++安装opencv-3.4.6,c++安装opencv-3.4.9,clion配置opencv-3.4.6与 python安装 opencv-3.4.6
c++安装opencv-3.4.6 卸载 1. $ sudo make uninstall 2. $ cd .. 3. $ sudo rm -r build 4. $ sudo rm -r /us ...
- OpenCV 笔记(02)— 图像显示、保存、腐蚀、模糊、canny 边缘检测(imread、imshow、namedWindow、imwrite)
OpenCV 提供两种用户界面选项: 基于原生用户界面的基本界面,适用于 Mac OS X 的 cocoa 或 carbon,以及适用于 Linux 或 Windows 用户界面的 GTK ,这些界面 ...
- 颜色空间转换 cvtColor()[OpenCV 笔记13]
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0) src: 输入图像 dst: 输出图像 code: 颜色空间 ...
- OpenCV 笔记 -- 边缘检测(Sobel、Laplace、Canny)
OpenCV 笔记 – 边缘检测(Sobel.Laplace.Canny) 参考文档 一.Sobel 算子 1.简介 Sobel 算子是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度近似值.在 ...
- ubuntu16.04源码安装opencv3.4.0
ubuntu16.04源码安装opencv3.4.0 opencv下载地址:https://opencv.org/releases/page/3/ 1.下载安装包 2.安装依赖 sudo apt-ge ...
- openCVPracticalExercise学习笔记04
原创:openCVPracticalExercise学习笔记04 30使用OpenCV实现图像孔洞填充 31使用OpenCV将一个三角形仿射变换到另一个三角形 1 2 3 4 5 6 7 8 9 10 ...
- opencv笔记(二)之opencv打开笔记本摄像头
一.前言 楼主最近在使用opencv采集摄像头信息,一开始都不知道怎么去打开笔记本的摄像头的,于是有空做一个记录分享 至于win下怎么配置opencv可以参考楼主文章Opencv笔记(一)之vs201 ...
最新文章
- 合肥工业大学—SQL Server数据库实验二:数据库架构的创建与使用
- MySQL中查询的看到的日期和Java程序查询出来的日期差了几个小时
- python 运算符 (算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级)(与或非)(异或)
- 《数据库SQL实战》查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
- chart.js 饼图显示百分比_实战PyQt5: 135-数据可视化之QChart绘制饼图
- Spring MVC:表单处理卷。 3 –复选框处理
- java异步处理rest服务_异步处理rest服务
- React 组件间通讯
- Python 学习笔记 - Redis
- RTSP RTMP HLS HTTP全功能流媒体播放器SkeyeExPlayer开发计划
- Express的使用
- 数据结构基础之基础(数据、计算机结构)
- 实时可调度性分析算法— 利用率上界 和 加速因子的作用
- python自动化通知webhook接口代码参考
- C++栈和堆原理介绍
- 单词长度和GPS数据处理——程序设计入门C语言
- Azure China (11) 使用Azure China Storage Public Blob
- 真正的IT女是什么样子的?
- 一般信道容量的计算matlab,DMC信道容量迭代计算的matlab实现
- Python 最详细的 socket 相关内容解读