2013-02-16 82 views
0

我是新来的android平台,我试图创建一个Android应用程序的图像处理...所以我想与它集成openCV。OpenCV Android图像路径

我已经创建了一个事件processImage应该调用一个简单的openCV库并执行高斯平滑。

public void processImage(View v) { 



try 
{ 
IplImage image = cvLoadImage("IMG/res.jpg"); 
System.out.println(image.depth());//null pointer exception here 

if (image != null) 
{ 
    cvSmooth(image, image, CV_GAUSSIAN, 10); 
    cvSaveImage("IMG/res.jpg", image); 
    cvReleaseImage(image); 
    } 
} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 

    ImageView portrait = (ImageView) findViewById(R.id.imageView1); 
    portrait.setImageResource(R.drawable.abc); 
} 

很明显,我的意图是显示和做其他事情res.jpg,一旦完成。

但我在访问图像时看到空指针异常。显然,Android不允许我们像在独立应用程序中那样使用相对/绝对路径。

问题是...如何访问此图像。

我想解决方案一定很简单。

请帮忙。

回答

1
/sdcard/IMG/res.jpeg 

用于写入SD卡。 你需要设置SD卡写入权限上的AndroidManifest.xml 像

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+1

这是更好地使用Environment.getExternalStorageDirectory(),而不是硬编码路径SD卡。 – 2013-02-16 11:59:32

+0

这意味着要访问我的'res'目录中静态图像,我必须先将其导出到我的SD卡,然后使用openCV重新加载它?听起来有点迂回(但是,如果这是唯一的选择,我会停止探索:{)。没有更直接的方法来做到这一点? – metsburg 2013-02-16 17:32:38