题
我需要访问一个 cv::Mat
, ,但我不必知道 sizeof
矩阵,那么有没有办法访问 a 的元素 cv::Mat
对于所有尺寸?我的意思是不切换矩阵的类型。
这就是我所拥有的:
int image_type = image.type();
switch (image_type)
{
case CV_32F :
return image.at<float>(i,j);
case CV_8U :
return (float)image.at<uchar>(i,j);
.
.
.
default:
std::string msg = "Exception : cannot access IMAGE of type : " + image_type;
throw std::exception(msg.c_str());
break;
}
我正在做的是访问矩阵的数据,然后将其转换为浮点数(因为我使用最大 32F 的矩阵),此代码工作正常,但我正在寻找类似这样的东西:浮点数 x = image.at(i,j);但这适用于矩阵 8U 和其他...
谢谢 !
解决方案
这将满足您的要求,但显然您只想打电话 convertTo()
一次,而不是每次访问。
Mat dst;
image.convertTo(dst, CV_32F);
return dst.at<float>(i,j);
不隶属于 StackOverflow