高版本OpenCV兼容低版本OpenCV的问题(Ubuntu系统)

在Ubuntu系统中,升级到OpenCV4.5.1后,旧代码因使用C语言风格函数(如cvImshow,cvImread)遇到运行问题。解决方法包括:1) 添加C API头文件,如在程序中引入对应的_c.h文件;2) 改变代码,利用函数对不同类型的赋值;3) 配置两个不同版本的OpenCV,通过修改CmakeList.txt指向低版本OpenCV库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在配置好OpenCV4.5.1环境后发现有些比较久之前的代码没法运行了,看了一下源码发现是之前的代码都用C语言风格来写,因此会有cvImshow,cvImread的函数出现。

解决方法1:添加c语言风格的头文件

在编译时出现不存在cv.h头文件,是因为在OpenCV4之后取消了这个头文件,在程序头文件中添加可以解决:

#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/imgproc/types_c.hpp>
#include<opencv2/highgui/highgui_c.hpp>

如果还是不行,可以进到\include\opencv2文件夹下搜索*_c.h找到对应函数的C API

解决方法2:利用函数对不同类型进行赋值

如果在程序中出现IplImage ipl=mat报错,是因为Mat类型无

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值