gpt4 book ai didi

java - Android opencv加载16位深度的灰度png

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:24 25 4
gpt4 key购买 nike

我是 opencv4android 的新手,正在尝试加载 16 位深度的灰度 png 图像。

我试过:

Mat mat2DImg = Utils.loadResource(getBaseContext(), R.drawable.image, Highgui.CV_LOAD_IMAGE_GRAYSCALE);

但是 png 被读取为 8 位,其值在 [0,255] 中。我尝试了 CV_LOAD_IMAGE_ANYDEPTH 标志但相同。我尝试创建一个 alpha channel 或将图像加载为原始图像,但未能成功。

我还尝试将图像复制到设备上并使用 imread 读取它,希望 imread 可以加载 16 位 channel :

java.lang.String filename = "/storage/emulated/0/image.png";
Mat mat2DImg = Highgui.imread(filename, 0);

当我检查 file.exists() 时,它确实存在。返回的 Mat 不是 null,而是空的。

谁能建议一种正确加载图像的方法?

最佳答案

我刚刚设法让它工作:

1) list 中添加:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/ >

这消除了空图像问题。

2) 使用 CV_LOAD_IMAGE_ANYDEPTH 标记加载图像

rgbLoadedImage = Highgui.imread(filename, Highgui.CV_LOAD_IMAGE_ANYDEPTH);

值现在处于正确的 16 位范围内。

关于java - Android opencv加载16位深度的灰度png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com