我正在尝试使用 打开 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/