MATLAB – Aplicações a Engenharia Construção de Interfaces Gráficas UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO IT – Departamento de Engenharia MÁQUINAS E ENERGIA NA AGRICULTURA V Semana Acadêmica da Engenharia de Agrimensura e Cartográfica MATLAB – Aplicações a Engenharia Construção de Interfaces Gráficas Ambiente de computação para desenvolvimento de sistemas sofisticados Carlos Alberto Alves Varella, Prof. UFRRJ-IT/DE. varella.caa@gmail.com Doutor em Engenharia Agrícola
Interfaces Gráficas Recursos disponíveis em para interação entre usuário e rotinas computacionais. O usuário pode interagir através da digitação de funções diretamente no pronpt ou Clicando em objetos que orientam o usuário em realizações de tarefas complexas.
Função input e display input: função para entrada de dados na linha de comando Display: saída de dados no prompt
Exemplo de Interface Entrada de arquivo - input Verificar se arquivo foi fornecido Se não exibe mensagem de erro Se sim exibe arquivo – display Verifica se arquivo existe Se não exibe mensagem de erro e encerra função Se sim gera o gráfico
Implementação da função interface %Exemplo de interface com uso de input/display function interface () dado = input ('Nome do arquivo (digite entre '' e com extensao):'); if isempty (dado) %verifica se algum arquivo foi digitado display ('Nome de arquivo nao foi digitado.'); else
Implementação da função interface display (dado); nome = which (dado); if isempty(nome) %verifica se o arquivo existe display('Arquivo inexistente.') else arq = load (nome); %carrega arquivo com variaveis X,Y X = arq (:,1); Y = arq (:,2); %define coordenadas X,Y
Implementação da função interface plot (X,Y); %Gera grafico xlabel('Coordenadas X'); ylabel('Coordenadas Y'); title('Fazendinha Agroecologica KM 47') end
Resultado da função interface
Caixa de Diálogo para texto Inputdlg : caixa de diálogo para entrada de dados via texto. %dialog_1.m Msg = {'Largura:' 'Altura:'}; Titulo = 'Dimensoes do Retangulo'; NumLinhas = '[1 2]'; ValPreDef = {'500' '100'}; Dados = inputdlg (Msg, Titulo, NumLinhas, ValPreDef);
Resultado de dialog_1.m
A Função Interface com inputdlg No arquivo interface.m substituir: input por inputdlg (dados) por (dado{1}) Salvar como interface_dlg.m
Resultado de interface_dlg.m Caixa de diálogo retorna uma matriz de cell-array = cadeia de caracteres Para retornar valores numéricos é necessário usar a função str2num (string to number)
Caixa de diálogo de visualização de imagem Imageview: exibe a imagem armazenada em arquivo e permite mudar a janela de visualização (zoom window). %imageview_.m imageview ('C:\Users\varella\Desktop\V SEMEAG\Matlab\image\lena.jpg'); %imageview ('C:\Users\varella\Desktop\V SEMEAG\Matlab\image\foto.bmp'); imageview(a,map);
Resultado de imageview_.m A função também aceita imagens em formato matricial. A opção (Zoom Out) retorna a visualização completa da imagem.
Caixa de diálogo para abertura de arquivo uigetfile: recebe os tipos de arquivos a serem abertos em um cell-array coluna (neste exemplo, aceita *.mat e *.fig) A função retorna o nome e caminho do arquivo selecionado Se nenhum arquivo for selecionado a função retorna 0
Exemplo uigetfile_.m %uigetfile %Esta funcao retorna o nome e o caminho do arquivo selecionado Tipo = {'*.mat'; '*.fig'; '*.jpg'; '*.bmp'}; Titulo = 'Selecione um arquivo'; [Nome, Caminho] = uigetfile (Tipo,Titulo); local=strcat(Caminho,Nome); %imageview(local) im=imread(local); imshow(im)
Resultado de uigetfile_.m
GUIDE – Graphic User Interface Design Environment Gera interfaces gráficas para interação com usuário A função é ativada digitando-se guide no prompt da janela do Command Window
GUIDE interfaces gráficas (GUI) A função guide retorna um aplicativo para geração de interfaces gráficas.
Configuração do aplicativo Clicar em File -> Preferences para abrir a janela de preferências do aplicativo. Ativar Show names in component palette
Nova aparência da janela principal do aplicativo Os objetos são visualizados no lado esquerdo da tela
Criar um botão de ação Arrastar o objeto pushbutton para dentro da área da tela de construção do aplicativo GUIDE.
Configurar as propriedades do objeto Clicar com o botão direito no objeto -> Selecionar Inspect Properties: String = Abrir Mapa e Callback = interface_dlg
Active Figure Clicar no ícone circulado para gerar o aplicativo.
Interface Gerada
Menus – Editor de menus O editor de menus permite criar dois tipos de menus. •Menubar – objetos que serão visualizados na barra de menu de figuras. •Context menus – objetos que serão visualizados quando o usuário clicar com o botão direito sobre figuras. Para ativar o aplicativo clicar em Layout Editor -> Menu Editor
Janela principal do editor de menus
Definindo os objetos da barra de menu principal Os objetos definidos no editor de menus são automaticamente adicionados a barra de menu principal da figura ativa. Aos objetos deste menu podem ser adicionados outros objetos denominados de submenus (itens do menu principal)
Barra de menu principal e submenus
Configuração da barra de menus
Visualização da Figura Ativada
Comandos save e pwd pwd – lista o diretório de trabalho Save – salva arquivo no diretório de trabalho pwd – lista o diretório de trabalho
Comando dlmwrite Exemplo Grava matriz de dados em arquivo texto nome=strcat(Caminho,Nome(1:7),'.txt'); dlmwrite(nome,cob, '\t') Nome = T3_R1_1.jpg >> Nome(1:7) T3_R1_1
Uigetfile – abrir e amostrar valores RGB de imagens Tipo = {'*.jpg'; '*.bmp'; '*.gif'; '*.png'}; Titulo = 'Selecionar um arquivo'; [Nome, Caminho] = uigetfile (Tipo,Titulo); local=strcat (Caminho,Nome); im=imread (local); p = impixel (im); Os valores RGB dos pixels amostrados são armazenados na matriz p
Push Button e Toggle Button Push Button gera uma ação em resposta ao clique de mouse.
Adição de Imagens em Botões (Push Button e Toggle Button) Adiciona as propriedades de uma imagem RGB Truecolor (Cdata) a uma Figura (h) im = imread (local) set (h, ‘Cdata’, im);
Switch/case Switch/case switch resposta case Sim disp('x is 1'); end Inputdlg : caixa de diálogo para entrada de dados via texto. switch resposta case Sim disp('x is 1'); end %dialog_1.m Msg = {‘Sim' ‘Nao'}; Titulo = ‘Quer Selecionar Outra Imagem'; NumLinhas = '[1 2]'; ValPreDef = {'500' '100'}; resposta = inputdlg (Msg, Titulo, NumLinhas, ValPreDef);
questdlg Cria janela de resposta QUESTÃO) QUER SELECIONAR OUTRA IMAGEM? button = questdlg('Do you want to continue?',... 'Continue Operation','Yes','No','Help','No'); if strcmp(button,'Yes') disp('Creating file') elseif strcmp(button,'No') disp('Canceled file operation') elseif strcmp(button,'Help') disp('Sorry, no help available') end
helpdlg helpdlg('Choose 10 points from the figure','Point Selection');
Display warning dialog box h = warndlg('warningstring','dlgname') h= warndlg (‘Não existe ajuda’, ‘Janela de Ajuda)
return retorna para início da função. function d = det(A) %DET det (A) is the determinant of A. if isempty(A) d = 1; return else ... end
Report – Gera relatórios(dados,figuras) Duas formas de gerar relatórios: Matlab e simulink
Relatórios pode ser criados em diversos formatos RTF;XML;SGML;HTML
Lista de arquivos setup No prompt do matlab digitar ‘rptlist’ para abrir a lista de arquivos setup Selecionar ch1-tutorial.rpt na lista de arquivos setup. Clicar em Editar para abrir o Editor de Arquivos Setup.
Editor de Arquivos Setup Manter todas configurações padrão do editor e clicar no botão Report
Arquivo ch1-tutorial.html visualizado no navegador
Componentes do arquivo setup do Relatório Componentes do arquivo setup armazenam informações que serão enviadas ao arquivo de relatório. lista = rptlist , lista arquivos setup e armazena lista na variável ‘lista’
Gerar executável mex filename -f <optionsfile> filename: nome do arquivo -f: para especificar arquivo de opções <optionsfile>: nome do arquivo de opções (*.bat)