使用OpenCV获取二进制图像中白色像素数的最快方法
使用OpenCV获取二进制图片中白色像素数的最快方法是什么? 有没有比使用两个for循环并逐像素地访问图像更快的东西?
最简洁的方法是:
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_()
,这允许并行执行。
如果图像是连续的,则可以使用单个循环遍历所有数据。