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");
}
}