主要内容

与后处理并行执行网络摄像头图像采集

此示例显示了如何与数据后处理并行从网络摄像头执行帧采集。

在示例中,您使用并行工人执行图像采集,然后将数据流回到客户端以进行后处理Dataqueue目的。

要使用工人而不是MATLAB客户端执行后处理,请参见执行图像采集和并行图像处理

设置平行环境

在本地群集上使用一个工人开始平行池。

Parpool('当地的',1);
使用“本地”配置文件开始并行池(PARPOOL)...连接到并行池(工人数:1)。

要将信息从工人发送回MATLAB客户端,请创建一个Dataqueue目的。

d = parallel.pool.dataqueue;

创建一个图形对象并设置'可见的''上'这样它就可以在实时脚本之外打开。每次从图像中显示图像Dataqueue对象,使用后到达

无花果=图('可见的',,,,'上');AfterEach(D,@processDisp);

获取数据并并行执行后处理

定义采集的频率,即每秒要从相机中拔出多少帧。

freq = 5;

选择一个考虑到后处理需要多长时间的值。否则,视频流会随着时间的流逝而大大落后。

要启动对并行工人的数据获取,请致电帕菲瓦尔并通过采集功能,Dataqueue对象和收购率作为参数。

f = parfeval(@getframefromcamera,0,d,freq);

获取30秒的框架。此示例将一个模糊的过滤器应用于后处理步骤,并并排显示原始和处理的帧。

暂停(30);

要停止视频提要,请取消收购。

取消(f);

有关向工人进行后处理的更详细的示例,请参见执行图像采集和并行图像处理

定义辅助功能

GetFrameFromCamera功能连接到网络摄像头,然后获取图像帧并将其发送到Dataqueue无限循环中的对象。

功能GetFrameFromCamera(D,FREQ)CAM = WebCAM;尽管true img =快照(cam);发送(d,img);暂停(1/freq);结尾结尾

ProcessDISP功能后处理框架并每次数据到达Dataqueue目的。

功能processDisp(img)imgblur = imgaussfilt(img,3);imshow([img,imgblur],“父母”,GCA)结尾

也可以看看

||||

相关话题