% Rishi Vadher
% http://rishivadher.pt.vu
function [missoes_novo] = opcao_1(nome_ficheiro)
% Analisa o ficheiro escolhido
a=zeros(248,256);
fid = fopen (nome_ficheiro);
if fid == -1
fprintf('Erro na abertura\n')
else
%percorre a matriz ate à linha 142 e apresenta as linhas 22, 26 e 27
contador= 1;
while ~feof(fid) && contador<=142
linha = fgetl(fid);
if (contador==26);
fprintf('%s',linha)
end
if (contador==27)
fprintf('%s\n%s', linha(32:38),image_time)
end
if (contador==22)
image_time = linha;
end
if strfind(linha, 'END ');
break
end
contador=contador+1;
end
contador=143;
%valor de intensidade maior que qualquer um existente nos ficheiros
intensidade_min = 15000;
while ~feof(fid) && contador>142
linha1=fgetl(fid);
%Matriz das intensidades
%Atribui variaveis a strings
col1=str2double(linha1(1:3));
col2=str2double(linha1(5:9));
intensidade=str2double(linha1(40:44));
cordx = str2double (linha1(12:17));
cordy = str2double (linha1(21:25));
C(col1,col2) = intensidade;
%procura a linha com menor valor de intensidade
%a essa linha atribui novas variaveis a cada string dessa linha
if intensidade < intensidade_min && (cordx ~= 0 || cordy ~=0)
intensidade_min = intensidade;
cordx_min = cordx;
cordy_min = cordy;
col1_min = col1;
col2_min= col2;
end
end
result1 = fclose(fid);
if result1 ~= 0
fprintf('Erro no fecho\n')
end
%calcula distancia e pf
%apresenta-as no ecra
dist = sqrt((cordx_min^2)+(cordy_min^2));
fp = 1000/(200*dist+intensidade_min);
fprintf('\nDistância no plano = %.2f m\n',dist)
fprintf('Factor de prioridade = %.6f\n', fp)
%apresenta a imagem da matriz intensidade
image(C,'CDataMapping','scaled');
colormap('gray');
title ('Imagem');
legenda = sprintf('Distância no plano = %.2f m',dist);
xlabel (legenda);
hold all
line([128 col2_min],[248 col1_min]);
plot(col2_min,col1_min,'o');
%atribui a saida missoes_novo a uma struct que contem os campos
%analisados nesta opçao
missoes_novo = struct('distancia', dist, 'intensidade_min',intensidade_min, 'factor_prioridade', fp,'nome_ficheiro', nome_ficheiro);
end