Как проверить, белый ли пиксель? - PullRequest
0 голосов
/ 09 января 2020

Я использую OpenCV на Java (да, я знаю), чтобы прочитать изображение и маску и объединить их в одно изображение в градациях серого, в котором пиксели плавают в диапазоне [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;
    }

Я нанес этот отпечаток, чтобы узнать, найдены ли белые пиксели или нет. Это не так. У моей маски белые пиксели. Кажется, мой способ сравнения не работает, что мне использовать?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...