转载自:http://blog.youkuaiyun.com/andaca/article/details/53502882
上一篇 已经让 UNITY 集成 OpenCV 了 接下来就来做一些简单的开发
【一】调取摄像头 并且调起窗口成像
废话不多说 直接上代码
private CvCapture cvCapture;
IplImage pFrame = null;
private void Init() {
cvCapture = Cv.CreateCameraCapture(0);
StartCoroutine(WaitforCamera());
}
private IEnumerator WaitforCamera() {
//因为我使用了5米长的摄像头所以调起来摄像头的会花点时间,索性就直接延迟5S再去成像
yield return new WaitForSeconds(5);
StartCoroutine(main());
}
*由于我的摄像头加了滤镜 会把屏幕上的光全部过滤掉 只留红外光通过 所以会出现的这样颜色 IEnumerator main()
{
{
while (true)
{
yield return new WaitForEndOfFrame();
//逐帧获取图片
pFrame = Cv.QueryFrame(cvCapture);
{
yield return new WaitForEndOfFrame();
//逐帧获取图片
pFrame = Cv.QueryFrame(cvCapture);
Cv.ShowImage("Video", pFrame);
}
}
}
}
【二】将获取的图片进行灰度处理
还是继续上面的代码
IplImage grayImg = null;
IEnumerator main()
{
{
while (true)
{
yield return new WaitForEndOfFrame();
//逐帧获取图片
pFrame = Cv.QueryFrame(cvCapture);
nFrmNum++;
if (nFrmNum == 1)
{
if (nFrmNum == 1)
{
//只用第一帧的时候处理一次
grayImg = Cv.CreateImage(pFrame.GetSize(), pFrame.Depth, 1);
Cv.CvtColor(pFrame, grayImg, ColorConversion.RgbToGray);
}
Cv.ShowImage("Video", grayImg);
}
}
本文介绍如何在Unity中集成OpenCV并实现摄像头图像捕获及灰度处理。首先通过代码初始化摄像头并设置延时来确保摄像头正确启动。然后,通过协程逐帧获取图像,并显示在Unity窗口中。最后,对获取的图像进行灰度转换。
5036

被折叠的 条评论
为什么被折叠?



