Функция 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 канала», но фактический выход - «Один канал».