Java-Highgui.imread返回一个空矩阵
我正在尝试使用 OpenCV/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
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(),它可能会工作。太棒了!请点击我答案旁边零上方的向上箭头接受我的答案。谢谢