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

标签 java opencv

我正在尝试使用 打开 CV/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 size (cols,rows) 0x0

测试图像大小(列,行)0x0

最佳答案

"函数imread从指定文件加载图像并返回。如果无法读取图像(因为缺少文件、权限不当、不支持或格式无效),函数返回一个空矩阵(Mat::data ==空)。”

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

参见: http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html

关于Java - Highgui.imread 返回一个空矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32319093/

相关文章:

python - 用 Python 在 OpenCV 中加载视频

c++ - 如何在 C++ 中使用 OpenCV 检测多个对象?

java - 使用 Java 准确确定 HDFS 中的文件以加载到一个 Hbase 表中?

java - 为什么 *= 在将 float 隐式转换为 int 时不给出任何错误?

java - 检测 JTextPane 中的行数

java - 了解 Java 包含或运算符 ( | )

c++ - OpenCV 中的 PCA 使用新的 C++ 接口(interface)

java - Android-HOG描述符距离

java - SonarQube 是否支持 Java 8?

python - 从[-1,1]创建网格,以将共形贴图应用于图像