Самый быстрый способ получить количество белых пикселей в двоичном изображении с помощью OpenCV
каков самый быстрый способ получить количество белых пикселей в двоичном изображении с помощью OpenCV? Есть ли что-то быстрее, чем использование двух циклов и доступ к изображению пиксель за пикселем?
1 ответов
самый краткий способ сделать это:
cv::Mat image, mask; //image is CV_8UC1
cv::inRange(image, 255, 255, mask);
int count = cv::countNonZero(mask);
если вы работаете на двоичном изображении, то вызов cv::inRange()
Не нужно, а просто cv::countNonZero()
хватит.
хотя любой метод должен повторяться через все пиксели, это может быть в состоянии использовать встроенный OpenCV parallel_for_()
, который допускает параллельное выполнение.
если ваше изображение является непрерывным,вы можете перебирать все данные, используя один цикл.