matlab中的GUI,轴中的图像循环

Posted

技术标签:

【中文标题】matlab中的GUI,轴中的图像循环【英文标题】:GUI in matlab, loop of images in axes 【发布时间】:2017-01-28 15:58:00 【问题描述】:

所以我正在构建一个图像分类器。在 GUI 中,图像加载并在文本框上插入一个值,然后按下按钮。我在轴中加载图像时遇到问题。因为当调用轴函数时,句柄为零(由于:% 句柄为空 - 直到调用所有 CreateFcns 后才创建句柄)。我的问题是,我如何才能一次只调用一个图像作为坐标轴。

理想的解决方案是创建一个handles.images=imagedatastore,每次按下按钮时,我都会添加一个计数器(我已经制作了),然后提供索引以从数据存储中获取图像。我的问题是我无法获得第一张照片,因为一开始手柄是空的。我已经为轴创建了调用函数:

    % --- Executes during object creation, after setting all properties.
function axes1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to axes1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
[pict_croped,Nphotos,Date_img] =getcropedimagages;

handles.img =pict_croped;
i=readimage(handles.img,1);
% axes(hObject)
imshow(i)
% Hint: place code in OpeningFcn to populate axes1

但这有两个问题,第一,我真的不想在我按下按钮的时候一直调用创建数据存储的函数,第二,我仍然无法让计数器的索引在功能,如果我有:

i=readimage(handles.img,handles.counter)

它会在第一时间给我错误,没有handles.counter

知道如何解决这个问题吗?这是我正在构建的第一个 GUI。

【问题讨论】:

您是否阅读了评论“% 提示:在 OpenFcn 中放置代码以填充轴 1”? 【参考方案1】:

问题在 GUIDE 为您提供的评论中非常清楚。 handles 结构在所有CreateFcn 运行之前不会被填充,因此您需要使用OpeningFcn 对图形对象进行任何初始化。然后,您可以将所需的任何数据添加到 handles 结构并使用 guidata 保存它,以便在所有其他回调函数中都可以使用它。

function OpeningFcn(hObject, eventData, handles)

    [pict_croped,Nphotos,Date_img] = getcropedimagages;

    handles.img = pict_croped;
    i = readimage(handles.img,1);
    imshow(i, 'Parent', handles.haxes1)

    % "Save" the changes to the handles object
    guidata(hObject, handles)

【讨论】:

【参考方案2】:

好吧,我最终得到: 在开头的函数中:

i = readimage(handles.img,handles.counter);
imshow(, 'Parent', handles.axes1)

并在按钮回调中:

i = readimage(handles.img,handles.counter);
imshow(i, 'Parent', handles.axes1)

最后是一个非常简单的解决方案,我想我只是在第一次迭代时头脑受阻......

【讨论】:

以上是关于matlab中的GUI,轴中的图像循环的主要内容,如果未能解决你的问题,请参考以下文章

图像配准基于互相关图像配准matlab源码含GUI

matlab GUI-图像输入与输出的简单例子

在 MATLAB GUI 中与 2 个图形同时交互

matlab设计GUI

目标检测基于matlab GUI背景差分算法视频运动物体跟踪含Matlab源码 1915期

图像处理基于matlab GUI图像形态学处理含Matlab源码 1274期