OpenCV与C++函数分文件编写——如何设置调用参数为Mat类的函数分文件编写(Mat类实参如何传给子函数)

在实际应用开发中,由于项目很大,我们往往需要进行函数的分文件编写。函数分文件编写可以让代码结构更加清晰易读。
函数分文件编写主要包括四步:

  1. 创建后缀名为.h的头文件
  2. 创建后缀名为.cpp的源文件
  3. 在头文件中写函数的声明
  4. 在源文件开头包含头文件#include"XX"

比如来看一个示例:
swap.h:(.h头文件放到Visual Studio的头文件中)
在这里插入图片描述
swap.cpp:(子函数,放在Visual Studio的源文件中)
在这里插入图片描述
主函数:(主函数,也放在Visual Studio的源文件中)
在这里插入图片描述
通过一个例子,你可能就明白函数的分文件编写了,如果还不明白,可以参考C++教程:https://www.bilibili.com/video/BV1et411b73Z?p=55


下面重点介绍一下带有Mat类的函数分文件编写。

任务要求:建立一个绘制灰度直方图的子函数,并且用函数分文件编写显示。

步骤同样是这四步:

1. 创建后缀名为.h的头文件

这里新建一个depth_hist.h的头文件

在这里插入图片描述

2. 创建后缀名为.cpp的源文件

分别创建main.cpp和depth_hist.cpp,并且分别写入主函数和子函数相关内容。
如main.cpp:
在这里插入图片描述
depth_hist.cpp:
在这里插入图片描述

3. 在头文件中写函数的声明

理论上,将子函数文件的第一行void XXX复制到头文件中再加上;即可实现,但在实际使用中我发现编译器会报一个错误:
在这里插入图片描述
总之就是未声明Mat的标识符。经过多方查阅资料,我终于发现因为Mat是opencv里的文件,所以要标明,即要添加using namespace cv,而由于头文件中无法使用using namespace cv,因此需要增加cv::才行。
最终语句:
在这里插入图片描述

4. 在源文件开头包含头文件#include"XX"

分别在main.cpp和depth_hist.cpp中包含头文件:

#include"depth_hist.h"

最终,main.cpp程序如图:
在这里插入图片描述
depth_hist.cpp部分程序如图:

在这里插入图片描述

ok,以上便是全部内容了,如果对你有所帮助,记得点个赞哟~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wendy_ya

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值