Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java channels()在RGB图像上返回1_Java - Fatal编程技术网

Java channels()在RGB图像上返回1

Java channels()在RGB图像上返回1,java,Java,channels()函数在RGB图像上返回1,而预期返回3 我试图使用OpenCV库中的Imgproc.cvtColor将RGB图像转换为灰度,但我得到一个错误:convert函数返回一个错误,指示src不是RGB格式 如果读取jpg文件,默认情况下会创建一个3通道图像 I除了输出为“3个通道”外,实际输出为“一个通道”。Erm,您是收到错误还是打印了“一个通道”?你似乎说这两种情况都会发生,这有点难以置信。我在添加行时出错:Imgproc.cvtColor(srcInput,srcInput,

channels()
函数在RGB图像上返回1,而预期返回3

我试图使用OpenCV库中的
Imgproc.cvtColor
将RGB图像转换为灰度,但我得到一个错误:convert函数返回一个错误,指示src不是RGB格式

如果读取jpg文件,默认情况下会创建一个3通道图像


I除了输出为“3个通道”外,实际输出为“一个通道”。

Erm,您是收到错误还是打印了“一个通道”?你似乎说这两种情况都会发生,这有点难以置信。我在添加行时出错:Imgproc.cvtColor(srcInput,srcInput,Imgproc.COLOR\u RGB2GRAY);你看到的图像是什么?您使用的是什么版本的OpenCV?“如果您读取jpg文件,默认情况下会创建一个3通道图像”,您的来源是什么?还要注意,
imread
通过内容而不是文件扩展名来确定图像的类型,至少在最新版本的OpenCV中是这样。嗨,我使用的是3.4.6版本。我在链接中的来源:我正在阅读jpg图片。我还尝试了一个BMP文件
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");
        }
}