本文介绍使用 Matlab 代码实现鼠标移动时实时显示正方形框的功能。

要实现在鼠标移动时实时显示正方形,请使用 imshow 函数在每次鼠标移动时更新图像。以下是修改后的代码:

for kk=1:4
    [x,y] = ginput(1);  % 确定图像上的两点利用ginput函数,返回值是两点的坐标 

    % 创建一个新的图像窗口
    fig = figure();
    imshow(a);
    
    % 绘制正方形矩形框
    rect = rectangle('Position', [x(1), y(1), abs(99), abs(99)], 'EdgeColor', 'r', 'LineWidth', 2);

    % 监听鼠标移动事件
    set(fig, 'WindowButtonMotionFcn', @(src, event) updateRect(src, event, a, rect));

    % 等待用户完成鼠标移动操作
    waitfor(fig);
end

function updateRect(src, event, a, rect)
    % 获取鼠标当前位置
    C = get(gca, 'CurrentPoint');
    x = C(1,1);
    y = C(1,2);
    
    % 更新正方形矩形框的位置
    set(rect, 'Position', [x, y, abs(99), abs(99)]);
    
    % 更新图像显示
    imshow(a);
end

在这个修改后的代码中,我们首先创建一个新的图像窗口,并在其中显示图像 a。然后,我们绘制一个红色的正方形矩形框,并将其保存在变量 rect 中。接下来,我们使用 set 函数为图像窗口添加 WindowButtonMotionFcn 事件监听器,该监听器在鼠标移动时调用 updateRect 函数。在 updateRect 函数中,我们获取鼠标当前位置,并根据该位置更新正方形矩形框的位置。最后,我们使用 imshow 函数更新图像显示。

这样,当你运行代码时,图像窗口将显示鼠标移动时的实时正方形框。请注意,为了在用户完成鼠标移动操作后继续执行代码,我们使用了 waitfor 函数来暂停程序,直到图像窗口被关闭。

Matlab 实现鼠标移动时实时显示正方形框

原文地址: https://www.cveoy.top/t/topic/ADL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录