gpt4 book ai didi

java - 在java opencv中从字节数组创建CV_16UC1 Mat

转载 作者:行者123 更新时间:2023-12-01 20:16:05 28 4
gpt4 key购买 nike

我有一个java程序,需要从1D字节数组(宽度和高度已知)创建类型16UC1的OpenCV 2D Mat。字节数组的大小为 W*H*2,每个像素应由数组中的两个连续字节构成。

在 C++ OpenCV 中,这有点微不足道,因为 Mat 构造函数可以采用指向数据的 (void*) 指针,但是我可以在 java OpenCV 中执行此操作,而无需嵌套循环并从两个字节构造每个 uint16 吗?

最佳答案

所以,我最终通过 java.nio ByteBuffer 和 ShortBuffer 将 java byte[] 转换为 Short[]。

byte v[] = {0,0, 1,0, -1,0,     0,1,    1,1,   -1,1,    0,-1,  1,-1,  -1,-1 };
short s[] = new short[v.length/2];
ByteBuffer.wrap(v).asShortBuffer().get(s);
Mat m = new Mat(3,3, CvType.CV_16UC1);
m.put(0, 0, s);

不过,仍在寻找 OpenCV 原生解决方案。

关于java - 在java opencv中从字节数组创建CV_16UC1 Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58953729/

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