3

我尝试加载图像:

    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());
    }

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

4

2 回答 2

5

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

你应该做的是:

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

文档末尾有一个重要说明imread(),说明如下:

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

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

于 2012-05-25T16:26:50.650 回答
-2

尝试使用

IplImage orgImage= cvLoadImage(fileName); 

它正在开发 JavaCV 包装器。但我不认为它会在纯 OpenCV 上工作。

于 2012-05-25T10:46:49.847 回答