gpt4 book ai didi

c++ - 如何使用 opencv 库将 3D 矩阵的元素置零?

转载 作者:太空宇宙 更新时间:2023-11-03 21:58:34 25 4
gpt4 key购买 nike

我正在努力使用 opencv 对 3D 矩阵的元素进行归零。我可以按以下方式将二维矩阵中的所有元素归零:

meta = new Mat(Mat::zeros(cluster,3,CV_32S));

我尝试使用类似的方法在 3D 矩阵中用 0 初始化元素,但失败了。

block = new Mat(Mat::zeros(3,dim,CV_32F));

错误信息:

1>MatrixOp.obj : error LNK2019: unresolved external symbol "public: static class cv::MatExpr __cdecl cv::Mat::zeros(int,int const *,int)" (?zeros@Mat@cv@@SA?AVMatExpr@2@HPBHH@Z) referenced in function "public: __thiscall MatrixOp::MatrixOp(char *)" (??0MatrixOp@@QAE@PAD@Z)

我有最后一种方法来初始化矩阵。遍历矩阵,设置元素值为0。不过看起来有点费力。

for(int i=0;i<value_num;i++)
for(int j=0;j<frame_no;j++)
for(int k=0;k<cluster;k++)
block->at<float>(i,j,k) = 0;

谁能给我一个更好的主意?谢谢。

最佳答案

我提醒你 documentation ,你可以使用这个构造函数:

C++: Mat::Mat(int ndims, const int* sizes, int type, const Scalar& s)

传递 cv::Scalar(0) 应该适合您的目的。

int sizes[] = { 100, 100, 100 };
cv::Mat *matrix = new cv::Mat(3, sizes, CV_32FC1, cv::Scalar(0));

这应该是一个 3D 矩阵,一种边为 100 的立方体。

关于c++ - 如何使用 opencv 库将 3D 矩阵的元素置零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168573/

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