OpenCV 将特定像素值替换为 java 中的另一个值

OpenCV replacing specific pixel values with another value in java

我阅读了如何在 Opebcv C++ 中替换特定像素值,如下面的代码

Mat src;
// ... src is CV_32S

double oldVal = 0.0;
double newVal = Double.MIN_VALUE;

src.setTo(newVal, src == oldVal); 

但在阅读更多内容后,我发现 Mat 上的逻辑运算符不适用于 java。那么我该如何做类似于上面代码的事情,因为我需要没有零的 Mat 作为除数。

编辑 1:cv::threshold 不起作用,因为我的垫子是 CV_32S,所以数字可能是负数

您可能需要查看 OpenCV compare API,使用 CMP_EQ 标志检查矩阵的每个元素与标量是否相等,这会产生一个二进制掩码稍后可以用作 src.setTo()

中的第二个参数