我尝试加载图片:
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(高度/宽度)。
答案 0 :(得分: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应用程序,在更复杂的东西冒险之前加载并显示磁盘上的图像。
答案 1 :(得分:-2)
尝试使用
IplImage orgImage= cvLoadImage(fileName);
它正在使用JavaCV包装器。但我不会不会在纯OpenCV上工作。