Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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-Highgui.imread返回一个空矩阵_Java_Opencv - Fatal编程技术网

Java-Highgui.imread返回一个空矩阵

Java-Highgui.imread返回一个空矩阵,java,opencv,Java,Opencv,我正在尝试使用 OpenCV/Java中的Highgui.imread方法,但它返回一个空矩阵,尽管我确保图像的路径是正确的 public static void main(String[] args) { // TODO Auto-generated method stub System.loadLibrary(Core.NATIVE_LIBRARY_NAME); File fileName1 = new File("l

我正在尝试使用 OpenCV/Java中的Highgui.imread方法,但它返回一个空矩阵,尽管我确保图像的路径是正确的

public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

            File fileName1 = new File("learning_image.jpeg");
            File fileName2 = new File("test_image.jpeg");

            Mat learningImage = Highgui.imread(fileName1.getAbsolutePath(),Highgui.CV_LOAD_IMAGE_GRAYSCALE );
            Mat testImage =  Highgui.imread(fileName2.getAbsolutePath(),Highgui.CV_LOAD_IMAGE_GRAYSCALE );

            System.out.println("learningImage size (cols,rows) "+learningImage.size());
            System.out.println("testImage size (cols,rows) "+testImage.size());
            }
输出为:-

learningImage大小(列、行)0x0

TestImageSize(cols,rows)0x0

“函数imread从指定的文件加载图像并返回它。如果图像无法读取(由于缺少文件、权限不正确、格式不受支持或无效),函数将返回空矩阵(Mat::data==NULL)。”

由于支持jpeg,我会检查权限问题、丢失或损坏的文件

见:

图像路径有空白“C:\Users\User Name\Documents\Eclipse\JavaTestOpenCV\learning\u image.jpeg”。。。。。。。这可能会导致问题吗?您的文件名有输入错误?我在这里的示例中没有看到任何空白。一个打字错误可以解释你的结果,因为它对读者来说是一个丢失的文件。我猜你是在Windows上?不,您应该能够打开带有空格的文件。我猜您没有正确引用该文件-为什么要在函数中传递fileName1.getAbsolutePath()?您的程序目录和文件目录的名称是什么?将所有内容放在同一个目录中(如果可能的话),然后去掉getAbsolutePath(),它可能会工作。太棒了!请点击我答案旁边零上方的向上箭头接受我的答案。谢谢