我正在使用EmguCV的Capture类,使用LoadImage函数将相机上的图像放在Texture2D上。在尝试这样做之前,我使用的是SetPixel函数,但速度太慢了。
当我执行下面的代码时,会出现白色背景上的红色问号而不是相机的图像。
我在这里做错了什么?
public class testEmguCV : MonoBehaviour
{
private Capture capture;
void Start()
{
capture = new Capture();
}
void Update()
{
Image<Gray, Byte> currentFrame = capture.QueryGrayFrame();
Texture2D camera = new Texture2D(400, 400);
if (currentFrame != null)
{
camera.LoadImage(currentFrame.Bytes);
renderer.material.mainTexture = camera;
}
}
}
答案 0 :(得分:2)
以下是我为纠正问题所做的修改:
public class testEmguCV : MonoBehaviour
{
private Capture capture;
void Start()
{
capture = new Capture();
}
void Update()
{
Image<Gray, Byte> currentFrame = capture.QueryGrayFrame();
Bitmap bitmapCurrentFrame = currentFrame.ToBitmap();
MemoryStream m = new MemoryStream();
bitmapCurrentFrame.Save(m, bitmapCurrentFrame.RawFormat);
Texture2D camera = new Texture2D(400, 400);
if (currentFrame != null)
{
camera.LoadImage(m.ToArray());
renderer.material.mainTexture = camera;
}
}
}