尝试使用Highgui.imread加载图像(OpenCV + Android)

ChH*_*upt 3 java android opencv image-processing

我尝试加载图片:

    File root = Environment.getExternalStorageDirectory();
    File file = new File(root, "image.gif");
    Mat m = Highgui.imread(file.getAbsolutePath());
    if(file.exists()){
        showToast("Height: " + m.height() + " Width: " + m.width());
    }
Run Code Online (Sandbox Code Playgroud)

但是大小= 0(高度/宽度).

kar*_*lip 5

文件存在的事实并不意味着OpenCV能够读取其内容.

你应该做的是:

Mat m = Highgui.imread(file.getAbsolutePath());
if (img.data)
{
     showToast("Height: " + m.height() + " Width: " + m.width());
}
else
{
     // print error and abort execution
}
Run Code Online (Sandbox Code Playgroud)

在文档的最后有一个重要的说明imread()如下:

该函数通过内容而不是文件扩展名确定图像的类型.

您应该在继续之前检查文档.确保您可以编写一个简单的OpenCV应用程序,在更复杂的东西冒险之前加载并显示磁盘上的图像.