Declare a cv::Mat of NaN

Declare a cv::Mat of NaN

本文关键字:of NaN Mat Declare cv      更新时间:2023-10-16

在OpenCV中,我试图声明一个cv::Mat并使用NaN值对其进行初始化。有点类似于:

myMat = Mat(nrows, ncols, CV_8UC1, cv::Scalar(0));

但我想要的不是 0,而是 NaN。我该怎么做?我应该为 NaN 值设置什么类型?

整数

类型没有 NaN,但根据您的C++编译器,您可能拥有具有floatdouble数据的 NaN(CV_32FCV_64F)。 使用 std::numeric_limits<T>::has_quiet_NaN() 检查类型 T 是否具有 NaN 值,然后std::numeric_limits<T>::quiet_NaN()获取该值。

double dNaN = std::numeric_limits<double>::quiet_NaN();
cv::Mat myMat = Mat(nrows, ncols, CV_64F, cv::Scalar(dNaN));