channel () возвращает 1 на изображении RGB - PullRequest
2 голосов
/ 23 июня 2019

Функция channels() возвращает 1 на RGB-изображении, тогда как ожидается, что она вернет 3.

Я пытаюсь преобразовать RGB-изображение в оттенки серого, используя Imgproc.cvtColor из библиотеки OpenCV, но я получаю ошибку: функция convert возвращает ошибку, указывающую, что src не является форматом RGB.

если вы читаете файл jpg, по умолчанию создается трехканальное изображение

import org.opencv.core.Core;
import org.opencv.core.CvType;

import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class Main {
    public static void main(String[] args) throws IOException {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat srcInput = Imgcodecs.imread("C:\\Users\\Desktop\\LELP_0600.jpg");
        if (srcInput.channels() == 1) {
            System.out.println("One Channel");
        } else if (srcInput.channels() == 3) {
            System.out.println("3 Channels");
        }
}

Я, кроме выхода, должен быть «3 канала», но фактический выход - «Один канал».

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