gpt4 book ai didi

c++ - 如何确定 cv::Mat 是否具有零值?

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:21 24 4
gpt4 key购买 nike

我有一个“蒙版”图像,我需要知道它是否有任何零值。我想做一些等同于:

bool HasMissingPixels(const cv::Mat& mask) {
return cv::countNonZero(image) < mask.rows * mask.cols;
}

当遇到第一个 零像素时它可以立即返回 true 时,寻找所有(非)零感觉就像在浪费计算。另一方面,通过自己迭代像素,我失去了 OpenCV 的优化、并行化等优势。

有没有办法更快地计算它?

最佳答案

针对最坏情况(“数组中没有零值元素”)进行优化通常是有意义的,因为那时您的系统将具有可预测的运行时行为。因此,使用 countNonZerominMaxLoc 是实现您的目标的好函数。

早期中断的迭代方法是否更快完全取决于数据(“在大多数情况下,矩阵早期是否有零值?”)。您会在 OpenCV 这样的库中找不到这样的函数,因为库维护者不知道您的数据,也无法编写针对您的自定义数据分布进行优化的代码。

关于c++ - 如何确定 cv::Mat 是否具有零值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51477237/

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