gpt4 book ai didi

c++ - cv::Mat,在不知道矩阵类型的情况下在行列获取值

转载 作者:行者123 更新时间:2023-12-02 17:49:28 26 4
gpt4 key购买 nike

所以我试图使用行和列值来获取一个我不知道类型的矩阵的值。我基本上想实现以下功能:

bool someFunction(cv::Mat m){
return m(1,0) != 0;
}

我知道这会出错,因为我需要指定类似 的类型m.at <类型>(1,0)
但我不知道类型。

我尝试执行以下操作: m.at (1,0) ,但这当然会出错。

我想知道什么可能在这里工作。谢谢!

最佳答案

一个不太好的解决方案。使用depth和一个开关盒。

#include<cv.h>
#include<stdint.h>

using namespace cv;
using namespace std;

bool someFunction(Mat m) {
switch (m.depth()){
case CV_8U:
return m.at<uint8_t>(1,0) != 0;
case CV_8S:
return m.at<int>(1,0) != 0;
case CV_16U:
return m.at<uint16_t>(1,0) != 0;
case CV_16S:
return m.at<int16_t>(1,0) != 0;
case CV_32S:
return m.at<int32_t>(1,0) != 0;
case CV_32F:
return m.at<float>(1,0) != 0;
case CV_64F:
return m.at<double>(1,0) != 0;
}
}

int main() {
Mat m(2,2, CV_8UC1);
cout << someFunction(m) << endl;
}

关于c++ - cv::Mat,在不知道矩阵类型的情况下在行列获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26349353/

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