【发布时间】:2016-10-11 01:03:56
【问题描述】:
我是 Android 中 OpenCV 的新手。我只是想对android中的openCV lib进行一个小测试。我下载了一张图片 .JPG 并将其放在 drawable 文件夹中,然后我使用下面的代码读取了图片并显示了它的大小。 当我运行以下代码时,我得到图像的大小为 0x0,尽管它超过 400 kb。
为什么大小为 0x0 以及如何获得正确的大小?
代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
Log.i("OpenCV", "OpenCV loaded successfully");
Mat image = readImageFromResources();
Log.i(TAG, "size: " + image.size());
Log.i(TAG, "rows: " + image.rows());
Log.i(TAG, "cols: " + image.cols());
break;
default:
super.onManagerConnected(status);
break;
}
}
private Mat readImageFromResources() {
return Imgcodecs.imread(getResources().getDrawable(R.drawable.see).toString());
}
};
}
【问题讨论】:
-
您确定图片加载正确吗?尝试
Mat image = new Mat(2,3,CV_8UC3)(或Java 中的任何正确语法)并检查大小是否正确 -
Imgcodecs.imread(getResources().getDrawable(R.drawable.see).toString())Imgcodecs.imread("some random string") -
@Selvin 我用谷歌搜索了如何使用 Android API 在 opencv 中读取图像,其中一个示例使用了相同的语法
-
并且在其中一个示例中使用了相同的语法?链接或没有发生...我从未使用过 OpenCV,但
Imgcodecs.imread似乎需要路径或字节而不是一些随机字符串 -
@Selvin 看这里:stackoverflow.com/questions/8131596/… Mehmet Taha Meral 的回答