使用单个 matlab 工作者,我可以轻松地使用我的相机(使用 matlab imaq 工具箱)实现最大每秒帧数 (fps)。这个简单的代码做到了:
matlabpool(1)
start(vid)
pause(1); % give matlab time to initialize the camera
for j=1:frames
data = getsnapshot(vid);
end
但是,一旦我尝试即时进行一些图像处理,有效率就会下降 50%。由于我在 matlabpool 中还有 5 个工作人员(还有一个 gpu),我可以优化这一点,以便抓取的每个帧都由不同的工作人员处理吗?例如:
for j=1:frames
data = getsnapshot(vid);
<do some analysis with worker mod((j),5)+2 i.e. worker 2 to 6 >
end
问题是“数据”是从相机连续获取的,分析需要大约 2 轮循环,因此如果每次都有不同的工作人员(或核心)处理,则可以再次获得最大 fps。 ..