gpt4 book ai didi

c++ - portation : opencv 2. 4.3 -> opencv 3.1.,cvGetMat 未在此范围内声明

转载 作者:行者123 更新时间:2023-12-03 12:48:28 27 4
gpt4 key购买 nike

我目前正在尝试将基于 opencv 2.x 的代码移植到 opencv 3.x(高于 3.1)。在此代码中使用了一个函数,即 cvGetMat(...)。由于 opencv 3.x 中不存在此函数,因此我需要适当的替换。有谁知道如何正确替换此功能?我已经在 opencv 文档和 stackoverflow 中查找过它,但找不到任何内容。

这是使用此函数的代码片段

void cvCanny3(  const void* srcarr, void* dstarr,
void* dxarr, void* dyarr,
int aperture_size )
{


CvMat srcstub, *src = cvGetMat( srcarr, &srcstub );
CvMat dststub, *dst = cvGetMat( dstarr, &dststub );

CvMat dxstub, *dx = cvGetMat( dxarr, &dxstub );
CvMat dystub, *dy = cvGetMat( dyarr, &dystub );
...
...
...
}

当我运行此代码时,我只是按预期收到以下错误:

‘cvGetMat’ was not declared in this scope CvMat srcstub, *src = cvGetMat( srcarr, &srcstub ); ^~~~~~~~

最佳答案

cvGetMat 来自旧的基于 C 的接口(interface)(它从原始 C 数组创建 CvMat 对象),您应该将代码转换为较新的 C++ 接口(interface)并使其使用 cv::Mat 类型(将您的 src_addr C 数组包装为 C++ cv::Mat 实例)。

例如,对 cvGetMat 的调用应替换为 cv::Mat 变量声明。

cv::Mat src(num_rows, num_cols, src_type, src_arr);

num_rowsnum_colssrc_type 确定 src_arr 数组的大小和语义。也许,您必须在 src_arr 输入上删除“const”修饰符。

参见cv::Mat引用更多详细信息。

所有 cvFunctionName 调用通常在“cv::”命名空间中具有其 C++ 对应项。例如,cvRemap 将变为 cv::remap 等。

关于c++ - portation : opencv 2. 4.3 -> opencv 3.1.,cvGetMat 未在此范围内声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50551875/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com