c# - 如何使用 OpenCV 将图像从 C++ 传输到 Unity3D?
问题描述
我在将图像从 C++ 传输到 Unity3D(C#) 时遇到问题。我使用 OpenCV 读取Mat
类型图像并使用img.data
. 当我构建dll
并调用相应的函数时,字节数组中的所有数据都为 0,所以我想知道如何将图像从 C++ 传输到 C#。谢谢你。
抱歉回复晚了,代码如下
C++ code
:
DLL_API BYTE* _stdcall MatToByte()
{
Mat srcImg = imread("F:\\3121\\image\\image_0\\000000.png");
nHeight = srcImg.rows;
nWidth = srcImg.cols;
nBytes = nHeight * nWidth * nFlag / 8;
if (pImg)
delete[] pImg;
pImg = new BYTE[nBytes];
memcpy(pImg, srcImg.data, nBytes);
return pImg;
}
C# code
[DllImport("Display")]
public static extern IntPtr MatToByte();
byte[] Bytes = new byte[nBytes];
IntPtr tmp = MatToByte();
Marshal.Copy(tmp, Bytes, 0, nBytes);
Texture2D texture = new Texture2D(width, height);
texture.LoadImage(Bytes);
left_plane.GetComponent<Renderer>().material.mainTexture = texture;
解决方案
推荐阅读
- android - 尝试将 Gradle 项目导入 Android Studio 现有项目时出错
- eclipse-plugin - 使用 org.eclipse.ui.binding 绑定键
- firebase - 找不到模块“firebase-functions”
- c# - C# WPF 在 TabControl 上绑定两个 ListBox
- javascript - React Native 与 Redux-Persist , PersistGate 无限加载
- android - 具有 onehot 编码输出的 TensorFlowInferenceInterface
- typescript - 如何在 TypeScript 中分解相交类型?
- qt - QFileSystemModel 中的 Qt::CheckStateRole
- php - 在循环中使用 curl 将数据从数据库中获取的数字发送到客户端
- javascript - 通过 buttonclick 渲染 EJS 视图