c – 过滤OpenCV Mat以获取NAN值
发布时间:2020-12-16 10:05:10 所属栏目:百科 来源:网络整理
导读:有没有直接的方法来创建一个掩码,其中cv :: Mat_ double中的值与NAN比较? cv::Mat_real mat = ...cv::Mat_uchar mask = (mat == NAN); 不起作用,因为f == NAN总是假,即使f被指定为NAN.对于矩阵来说似乎没有isnan()的重载. 解决方法 如用户pSoLT所述,如果要
有没有直接的方法来创建一个掩码,其中cv :: Mat_< double>中的值与NAN比较?
cv::Mat_<real> mat = ... cv::Mat_<uchar> mask = (mat == NAN); 不起作用,因为f == NAN总是假,即使f被指定为NAN.对于矩阵来说似乎没有isnan()的重载. 解决方法
如用户pSoLT所述,如果要确定哪些值是NaN,只需将矩阵与自身进行比较即可.对于那些不相等的元素,那些元素将被视为NaN
by the standard definition.您可以使用该逻辑创建一个新的掩码:
cv::Mat mask = cv::Mat(mat != mat); 这里的mat将是一个包含NaN值的矩阵,mask将是一个CV_8UC1(即uchar)类型矩阵,如果值为NaN,则每个元素为0xFF,否则为0x00. 这篇关于OpenCV论坛的帖子也可以提供帮助:http://answers.opencv.org/question/2221/create-a-mask-for-nan-cells/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |