【发布时间】:2022-01-19 00:59:48
【问题描述】:
如果我在彩色图像上使用cv::threshold,openCV 似乎正在执行每通道阈值。
我用它去除不够亮的像素 (cv::THRESH_TOZERO),然后将其 (cv::add) 覆盖在其他图像上。
几乎可以正常工作,但问题是它显然适用于每个通道,因此颜色有时会失真(即某些通道会归零,而其他通道则不会)。我需要的是“将亮度不够大的像素归零”。
现在我知道我可以在 for 循环中迭代图像,如果通道的总和不超过阈值,只需用零覆盖像素。但几乎可以肯定,这不足以在我的目标低功耗设备(nVidia Jetson Xavier NX)上实时运行。 OpenCV 函数似乎得到了更好的优化。
谢谢!
【问题讨论】:
-
常见的解决方案是从 BGR 转换为灰度,并在灰度图像上应用阈值。
-
好的,但我需要保留颜色。也许如果我以某种方式使用灰色图像作为蒙版......
-
cv::threshold的结果是二值图像 - 将其用作掩码。