c++ - 如果函数使用 OPENCV Mat 作为输入,如何编写头文件?
问题描述
我写了一个使用 Mat_ 类型作为输入的函数,这个函数的语法是这样的:
#include<iostream>
#include"opencv2\opencv.hpp"
using namespace std;
using namespace cv;
Mat_<double> histcost(Mat_<double> BH1, Mat_<double> BH2) {
Mat_<double> output;
...
return output;
}
但是当我试图编写这个函数的头文件时:
#pragma once
extern Mat_<double> histcost(Mat_<double> BH1, Mat_<double> BH2);
它给了我错误: Mat_ 不是模板。
我对功能管理不是很熟悉,如果有人能提供帮助,我将不胜感激!
解决方案
不要Mat_< >
只使用正则cv::Mat()
cv::Mat 可以包含任何类型的数据,你不需要告诉它类型。
这Mat_<double>
是直接从固定数据制作 cv:Mat 的特殊捷径技巧,除非您真的在进行性能调整并且知道自己在做什么,否则不应在任何地方使用它,
语法示例Mat_ < >
(仅用于搜索)
Mat X = (Mat_<double>(4, 4) <<0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14,15);
推荐阅读
- reactjs - 试图让两个函数在一次 onclick 中运行
- python - Music21 和 MuseScore 无法在 jupyter notebook 中显示 .png
- python - Python selenium 如何从网站上抓取值列表
- reactjs - TypeScript Redux Action 创建函数返回类型
- java - 如何在 Android 中仅列出已配置的语言
- tensorflow - 将 random_shear 增强应用于图像张量
- android - getArguments() 在 Fragment 中总是返回 null
- android - 有什么方法可以在 Android 中测试 Kivymd 应用程序?
- python - ValueError:形状未对齐,但我不明白错误
- apache-spark - Spark:如何利用 Spark 独立集群上的所有内核和内存,其中节点的内存大小不同