【问题标题】:How can I stop my webcam loop in App Designer? Matlab如何在 App Designer 中停止我的网络摄像头循环? MATLAB
【发布时间】:2022-06-19 17:58:42
【问题描述】:

我在应用程序设计器中做一个界面,当我按下一个按钮(Empezar 按钮)时我打开我的网络摄像头,唯一的问题是我找不到如何停止我的网络摄像头的方法,它在循环,当我按下另一个按钮(停止按钮)时,我需要完成该循环,但是我尝试了很多东西,但似乎没有任何效果,我尝试使用 buttonpressfcn 不起作用,打开一个图,当它关闭视频停止的数字也不起作用,有什么想法吗?我知道如何在 GUIDE 中停止 vid,但我必须使用 App Designer,而且我认为这不一样:(

    properties (Access = public)
        UIFigure       matlab.ui.Figure
        StopButton     matlab.ui.control.Button
        EmpezarButton  matlab.ui.control.Button
        UIAxes         matlab.ui.control.UIAxes
    end

    % Callbacks that handle component events
    methods (Access = private)

        % Button pushed function: EmpezarButton
        function EmpezarButtonPushed(app, event)
%         clear all;
            
        
            
            micamara=webcam(1);
            micamara.Resolution='640x360';
            micamara.Brightness=10;
            %ventana=app.StopButton.ButtonPushedFcn;
            %while ishandle(ventana)
            ventana=figure;
             while ishandle(ventana)
               img=snapshot(micamara);
               imshow(img,'Parent',app.UIAxes);
               
                
            end
            
        end

        % Button pushed function: StopButton
        function StopButtonPushed(app, event)
            global ventana;
             ventana=1;
        end
    end

【问题讨论】:

    标签: matlab webcam matlab-app-designer


    【解决方案1】:

    嘿,engineerinprocess(我们不都是..吗?)

    您的 EmpezarButtonPushed 回调中的无限循环使 Matlab 无法处理其他回调,例如您的 StopButtonPushed 回调。这样就不行了。

    解决这个问题的正确方法是使用计时器。

    • 我将把设置代码移至您的应用程序的“startupFcn”,并确保将云母存储为您的应用程序的属性。你稍后会需要它。在 startupFcn 中,您还初始化了一个具有一定周期的计时器。
    • 然后 timerFcn 回调可以执行您在 while 循环中的操作。
    • EmpazarButtonPushed 现在启动计时器(如果尚未运行)
    • StopButtonPushed 回调应该停止计时器(如果正在运行)。

    您还应该为您的图形添加一个 CloseRequestFcn 回调,您可以在其中停止并删除您的计时器对象。我在开发过程中通常会做的另一件事 EngineerInProcess 是将计时器回调的内容放在 try/catch 块中,在 catch 块中我会显示错误消息并停止计时器。

    实际上在 appdesigner 中有一个关于如何在应用程序中使用计时器的示例。您可能也想检查一下。

    【讨论】:

      【解决方案2】:

      如何停止计时器?我正在做一个使用计时器来处理相机图像的监控系统,但我无法停止。

      【讨论】:

        猜你喜欢
        • 2021-01-16
        • 1970-01-01
        • 2016-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-17
        • 1970-01-01
        相关资源
        最近更新 更多