如何将Mat数据(OpenCV,图像的数据格式)转换为unity3d texutre
How to convert Mat data(OpenCV, data format for image) into unity3d texutre
我知道Mat数据将每个像素数据(列中的RGB数据)保存为无符号字符。而unity3d中的纹理数据是byte[]。我试着做下面的事情,但结果不对,hwind中显示的摄像头的图像捕获不正确。
Mat src_frame;//this is every frame that captured from the current camera
D3DLOCKED_RECT d3d_rect;
byte *pSrc = src_frame.data;
byte *pDest = (byte *)d3d_rect.pBits;
int stride = d3d_rect.Pitch;
int pixel_w_size = src_frame.cols;
for (unsigned long i = 0; i < src_frame.rows; i++){
memcpy(pDest, pSrc, pixel_w_size);
pDest += stride;
pSrc += pixel_w_size;
}
只有灰色的图像显示,我不知道为什么会发生这种情况。Mat数据序列与纹理数据不同吗?它们的数据都包含RGB信息。
pixel_w_size
应该是src_frame.cols
乘以每个像素的字节数(在RGB的情况下为3),或者更好地使用elemSize()
。
所以使用:
int pixel_w_size = src_frame.cols * src_frame.elemSize();
相关文章:
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 从 cpp lib 调用函数时的数据类型转换
- 如何将通过TCP发送数据的数据从C++转换为Java
- Qt - 将空指针(原始数据)转换为 QImage 并将其显示在标签上
- C++ 将字符串数据包转换为 iphdr语言 - 字符串数据包的格式应该是什么?
- 将数据保存在C++中,从 Python 加载 - 推荐的数据格式
- 如何将两个 jlong 数据类型转换为 jstring,然后将两个字符串连接在一起以便从 JNI 将字符串返回给 jav
- 如何将 Openh264 解码帧无延迟输出格式转换为 OpenCV 矩阵
- 我将 c++ 矢量数据集转换为 c 数组.我将相同的数据集传递到一个应该给出相同输出的函数中
- 一直在尝试在 c++ 中将 12 小时制格式转换为 24 小时制格式
- protobuf与rapidjson数据格式
- 基于向量的数据格式的分割故障误差
- 指向数据成员转换的 Constexpr 指针
- 使用 OpenCV 和 Android NDK 转换数据格式
- pybind11:Python 到 C++ 数据类型转换不起作用
- 尝试执行绕道附加,但无法将我的lua函数的数据类型转换为LPVOID
- 在C++/Visual Studio中,通过给定数据格式(doubles、float、int、1位bools)的UDP发
- 正在尝试将time_t数据类型转换为(dd/mm/yyyy)格式C++
- 如何将Mat数据(OpenCV,图像的数据格式)转换为unity3d texutre