gpt4 book ai didi

Matlab:如何分配工作量?

转载 作者:行者123 更新时间:2023-12-02 11:47:43 25 4
gpt4 key购买 nike

我目前正在尝试记录摄像机的镜头,并使用“image”命令在图形窗口中用 matlab 表示它。我面临的问题是图像重绘速度缓慢,这当然会影响我的整个脚本。这是一些快速的伪代码来解释我的程序:

    figure
while(true)
Frame = AcquireImageFromCamera(); % Mex, returns current frame
image(I);
end

AcquireImageFromCamera() 是来自相机 API 的 mex。现在,无需显示获取的图像,脚本即可轻松抓取来自相机的所有帧(它以有限的帧速率记录)。但是,一旦我显示实时视频流的每个图像,它的速度就会大大减慢,因此帧会因为未捕获而丢失。

有谁知道如何分割获取图像和显示图像的过程,以便使用 CPU 的多个核心?并行计算是我首先想到的,但是并行工具箱的工作方式与我想要的完全不同......

编辑:我是一名学生,在我的教师的 matlab 版本中包含了所有工具箱:)

最佳答案

运行两个线程或工作线程会有点棘手。相反,您可以简单地减少更新屏幕的频率吗?像这样的事情:

figure
count = 0;
while(true)
Frame = AcquireImageFromCamera(); % Mex, returns current frame
count = count + 1;
if count == 5
count = 0;
image(I);
end
end

要尝试的另一件事是仅调用一次 image() 来设置绘图,然后直接更新像素。这应该比每帧调用 image() 快得多。您可以通过获取图像句柄并更改 CData 属性来完成此操作。

h = image(I); % first frame only
set(h, 'CData', newPixels); % other frames update pixels like this

请注意,像这样更新像素可能需要调用 drawnow在屏幕上显示更改。

关于Matlab:如何分配工作量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18491284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com