2017-08-03 136 views
0

我正在使用GNU Octave 4.2.1。在Linux Debian上。我正在尝试制作一个按钮(在Octave中调用pushbutton)来打开jpeg文件等图像并显示到坐标轴。到目前为止,我的代码如下所示:如何在Octave中使用按钮在轴上显示图像?

%image preview 
cmdOpenImage = uicontrol(
    mainForm = "style", "pushbutton", "string", "OPEN THE IMAGE", 
    "position", [100,630, 100, 30] 
) 

的按钮仍在工作,进展情况如下:

%image preview 
cmdOpenImage = uicontrol(
    mainFrm = "style", "pushbutton", 
       "string", "OPEN THE IMAGE", 
       "position", [100,630, 100, 30], 
       "ButtonDownFcn", {@previewImage, "1"} 
) 

function previewImage(h, e, a1) 
    i = imread('donuts.jpg'); 
imshow(i); 
endfunction 

在MATLAB图像处理我的上一个应用程序如下图所示:

function cmdOpenImage_Callback(hObject, eventdata, handles) 
[a, b] = uigetfile(); 
i = imread([a, b]); 
guidata(hobject, handles); 
axes(handles.PreviewImage); 
imshow(i); 

prev app在MATLAB图像处理中的图像:

pushbutton displayed image on axes in matlab when clicked
单击时在轴上显示按钮图像。

回答

3

你已经在你的代码有语法错误,逻辑是有点懵,但它足以让一个想法,你想要做什么。这里有一个工作版本:

%% In file 'imageViewer.m' 
function imageViewer() 
    MainFrm = figure (... 
    'position', [100, 100, 250, 350]); 

    TitleFrm = axes (... 
    'position', [0, 0.8, 1, 0.2], ... 
    'color', [0.9, 0.95, 1], ... 
    'xtick', [], ... 
    'ytick', [], ... 
    'xlim',  [0, 1], ... 
    'ylim',  [0, 1]); 

    Title = text (0.05, 0.5, 'Preview Image', 'fontsize', 30); 

    ImgFrm = axes (... 
    'position', [0, 0.2, 1, 0.6], ... 
    'xtick', [], ... 
    'ytick', [], ... 
    'xlim',  [0, 1], ... 
    'ylim',  [0, 1]); 

    ButtonFrm = uicontrol (MainFrm, ... 
    'style', 'pushbutton', ... 
    'string', 'OPEN THE IMAGE', ... 
    'units', 'normalized', ... 
    'position', [0, 0, 1, 0.2], ... 
    'callback', { @previewImage, ImgFrm }); 
end 

%% callback subfunction (in same file) 
function previewImage (hObject, eventdata, ImageFrame) 
    [fname, fpath] = uigetfile(); 
    Img = imread (fullfile(fpath, fname)); 
    axes(ImageFrame); 
    imshow(Img, []); 
    axis image off 
end 

然后从你的终端上运行imageViewer()

----------->

+0

+的甜甜圈(代码)。顺便说一句,如果你对这些甜甜圈(即使用省略号)添加一些额外的配菜,MATLAB用户将能够享受(执行)这些甜甜圈(代码)为好。 –

+0

ahahah,哦,好吧:P –

+0

@TasosPapastylianou我觉得我们应该这样的例子添加到GNU八度维基。我有权使用它吗? – Andy

相关问题