如何检查像素是否为白色?

时间:2020-01-08 22:23:08

标签: java opencv pixel

我正在Java上使用OpenCV(是的,我知道)来读取图像和蒙版,并将它们合并为一个灰度图像,其中像素浮动在[0,1]范围内,孔像素为-1 (由蒙版的白色部分定义)。

我要逐个像素遍历蒙版,找到白色的。

这是我的代码:

import static java.awt.Color.white;

public static Mat merge(Mat orig, Mat mask) {
        Mat img = new Mat(orig.rows(), orig.cols(), CV_32F); // Create Mat of float values
        float[] holePixel = {-1};
        for (int i = 0; i < orig.rows(); i++) {
            for (int j = 0; j < orig.cols(); j++) {
                if (mask.get(i, j).equals(white)) {// If pixel is part of hole in mask
                    img.put(i, j, holePixel);
                    System.out.println("FOUND A WHITE"); // <--------- this print
                } else {
                    double[] pixel = orig.get(i, j);
                    float grayVal = (float) ((pixel[0] + pixel[1] + pixel[2]) / 3) / 255; // Create grayscale value
                    float[] grayPix = {grayVal};
                    img.put(i, j, grayPix);
                }
            }
        }
        return img;
    }

我把那张照片弄清楚是发现还是发现白色像素。没有。我的面具有白色像素。 似乎我的比较方式无效,应该怎么用?

谢谢。

0 个答案:

没有答案