use*_*792 2 c++ opencv image-processing nan mat
在 OpenCV 中,我试图声明 acv::Mat并使用 NaN 值对其进行初始化。有点类似于:
myMat = Mat(nrows, ncols, CV_8UC1, cv::Scalar(0));
Run Code Online (Sandbox Code Playgroud)
但不是 0,我想要 NaN。我怎样才能做到这一点?我应该为 NaN 值设置什么类型?
整数类型没有 NaN,但根据您的 C++ 编译器,您可能有 NaNfloat和double数据(CV_32F和CV_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));
Run Code Online (Sandbox Code Playgroud)