gpt4 book ai didi

android - 如何在 Android 中加载多 channel EXR

转载 作者:行者123 更新时间:2023-12-02 16:09:03 24 4
gpt4 key购买 nike

我正在使用 OpenCV for Android 来加载 EXR 图像:

String testImgPath = "/storage/sdcard0/test2.exr"; //I know better than to hardcode paths. This is just a test.
Mat mRgba = Highgui.imread(testImgPath, Highgui.CV_LOAD_IMAGE_ANYCOLOR|Highgui.CV_LOAD_IMAGE_ANYDEPTH);

这适用于图像的前 3 个 channel (RGB 排序除外)。我可以像这样显示生成的矩阵:
Bitmap img = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(mRgba, img);
imgView.setImageBitmap(img);

但是,无论我在 imload 中使用的标志组合如何,当我知道我的测试图像包含 9 个 channel 时,我从来没有看到 channel 数大于 3 (CV_32FC3)。其中嵌入了 3、3 channel 图像。如何使用 OpenCV 或其他方法访问这些额外的 channel ?

谢谢,
杰森

最佳答案

我只是快速浏览了一下 grfmt_exr.cpp。 ExrDecoder::readHeader()似乎只是假设图像是 RGB 格式或亮度/色度格式。因此我认为你不能使用 imread()与您的 9 channel 图像。

OpenCV 编解码器构建在 ILM OpenEXR 库之上,该库包含在 OpenCV 源代码中,因此如果您想编写一些 C++ 代码,请参阅 http://www.openexr.com/ReadingAndWritingImageFiles.pdf . openexr4j可能是另一种可能性(但我从未使用过)。

关于android - 如何在 Android 中加载多 channel EXR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25413604/

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