【问题标题】:OpenCV on android, Mat.rows() = 0安卓上的 OpenCV,Mat.rows() = 0
【发布时间】:2018-09-28 19:26:11
【问题描述】:

我有一个 Uri 指向我选择的图像。我想将图像存储在 Mat 变量中,对其进行编辑并将其显示在 ImageView 中。到目前为止,我只想将图像加载到 Mat 变量中,并显示它,无需编辑。这是我的代码:

Uri uri = data.getData();

Mat image = Imgcodecs.imread(uri.getPath());

//several edits in future

Bitmap resultBitmap = Bitmap.createBitmap(image.rows(), image.cols(),Bitmap.Config.ARGB_8888);
Utils.matToBitmap(image, resultBitmap);
imageView.setImageBitmap(resultBitmap);

给出错误的行是Bitmap resultBitmap = Bitmap.createBitmap(image.rows(), image.cols(),Bitmap.Config.ARGB_8888);,并表示image.rows()image.cols() 不能是0

如果维度是 (0, 0) 会出错,但我不知道为什么它们是 0。

【问题讨论】:

  • 很可能imread 失败了,因为发生这种情况时它会返回一个空图像。
  • 我怎么知道?我应该如何着手修复它?谢谢,洛伦佐
  • 调用Matempty方法。

标签: android opencv opencv4android


【解决方案1】:

问题是我向imread 传递了错误的URI,因此失败并返回了一个空的Mat。正如Dan Mašek 建议的那样,我调用了empty 方法,该方法返回了true,但我发现我传递了错误的URI。

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多