UE4引擎实使用OpenCV库实时调用电脑摄像头

效果:在场景中实时调用摄像头成像.

说明:本篇文章根据UE4英文官网文档实现,官网文档地址如下:

https://wiki.unrealengine.com/Integrating_OpenCV_Into_Unreal_Engine_4 

 

步骤一:准备工作

下载为UE4实现该功能的OpenCV插件,地址如下:

https://github.com/Brandon-Wilson/OpenCV-Plugin 

 

该文档位于github,如果你需要下载的话,需要先登录github,如果没有github账号请自行注册.

 

 

步骤二:

如下图创建一个C++工程.

 

步骤三:

打开工程所在目录:

 

步骤四:

将之前下载的OpenCV插件文件放入到UE4工程源码根目录中

 

步骤五:文件解读(该步骤没有实际操作,只是说明刚才OpenCV下载文件的用途)

l  OpenCV文件夹中的Plugins文件夹,该内部文件会形成UE4的插件!

如果对UE4插件模块不熟悉,请参看文档https://docs.unrealengine.com/latest/CHN/Programming/Plugins/index.html

 

l  打开插件的.uplugin文件,该文件会对插件信息做基本描述


下面做简单解读,如果希望弄得更清晰,请查阅UE4文档插件,"EnabledByDefault":false,修改为"EnabledByDefault":true,之后重启UE4(有弹窗点击yes)

 

l  ThirdParty这个文件里面包括了OpenCV作为第三方库提供的必要的头文件和dll或者lib动态库文件

 

l  \UE4源码目录\Plugins\OpenCV\Source\OpenCV该文件夹下有一个OpenCV.Build.cs文件,打开该文件


该文件中主要指出OpenCV第三方库路径,以供插件文件进行编译,同时如果插件需要依赖UE4其他模块的话,也需要在里面声明。

该文件的详细使用请参看文档https://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System

 

 

步骤六:

l  编译UE4工程


l  右键点击工程.uproject文件,选择重新生成vs代码如下图:


 

步骤七:打开vs


 

步骤八:可以看到之前插件中的文件已经导入到了vs中打开WebcamReader.hWebcamReader.cpp文件,该文件创建了一个
继承子Aactor的类,该类中的成员函数对OpenCV进行了调用。具体内容参看下载后的文档。

 

步骤九:

新建蓝图类继承自WebcamReader类,并取名为BP_WebcamReader

 

步骤10:新创建材质

 

 

步骤11:初学者内容中找到T_Ceramic_Tile_M材质,

 

 

选择该材质按下T,之后到刚才新建的材质中点击鼠标左键,之后如下图连线

设置,


新建变量取名为Texture

 

 

步骤12:打开BP_WebcamReander蓝图类,加入一个Cube组件

 

 

步骤13

蓝图编程如下

 

步骤14:按下play就可以看到效果了!

 

 

 

 

 

 

 

 

 

 

 

 

  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
### 回答1: 要在PyQt5中实时显示摄像头画面,需要使用OpenCV来提供视频流捕获和处理功能。 首先,需要在PyQt5中创建一个QWidget控件来展示视频流。在这个QWidget控件上,需要使用QPainter绘图工具来绘制视频帧。 接下来,使用OpenCV中的VideoCapture类来捕获实时视频流。通过设置不同的参数,可以调整摄像头的分辨率、帧率等参数。然后,用循环来逐帧读取视频流,并使用OpenCV中的cv2.cvtColor()函数将图片转换成RGB格式。最后,使用QPainter将视频帧绘制到QWidget控件上即可。 在这个过程中,需要注意不同操作系统下的摄像头访问方式可能不同,需要根据自己的系统做相应的调整。此外,调用OpenCV需要安装相应的文件并配置好环境变量。 综上所述,现PyQt5调用OpenCV实时显示摄像头画面需要具备PyQt5、OpenCV的基础知识和编程能力,并需要注意系统环境的不同造成的对代码的影响。 ### 回答2: PyQt5是一种Python的GUI开发工具,而OpenCV是一种计算机视觉,可以用于图像和视频处理。用PyQt5调用OpenCV实时播放摄像头画面的方法如下: 首先,需要安装Python和PyQt5以及OpenCV。安装命令为: ``` pip install pyqt5 pip install opencv-python ``` 然后,在PyQt5中创建一个窗口,并设置一个标签用于显示摄像头画面。代码如下: ```python from PyQt5.QtWidgets import QMainWindow, QLabel, QApplication class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.label = QLabel(self) self.setCentralWidget(self.label) self.setWindowTitle('Camera Preview') self.show() ``` 接着,使用OpenCV打开摄像头,并将每一帧图像显示在标签上。代码如下: ```python import cv2 cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() if ret: frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) h, w, ch = frame.shape bytes_per_line = ch * w qimg = QImage(frame.data, w, h, bytes_per_line, QImage.Format_RGB888) self.label.setPixmap(QPixmap.fromImage(qimg)) ``` 这个while循环不停地读取摄像头画面,将其转换成Qt的图像格式,并在PyQt5标签上显示。最后,关闭摄像头并退出程序。 ```python cap.release() cv2.destroyAllWindows() ``` 这样就现了用PyQt5调用OpenCV实时显示摄像头画面的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值