TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Blaaaaaaaa

Por:   •  21/6/2015  •  Trabalho acadêmico  •  1.761 Palavras (8 Páginas)  •  183 Visualizações

Página 1 de 8

%-  Função leImagem: recebe como parâmetros a string tipoArquivo e a

%-                   string caminho para exibição de uma janela e

%-                   seleção de um arquivo. Se a string caminho não é

%-                   fornecida, então considera-se o diretório

%-                   corrente. Retorna a matriz numérica I correspondente

%-                   à imagem e, se for imagem indexada, o mapa de cores

%-                   Map

%-  Autores:    Caio, Eduardo, Eude e Yara

%-  Data:       22/05/2012

 

function [I, Map] = leImagem(tipoArquivo, caminho)

    % Exibe janela e seleciona arquivo

    if exist('caminho', 'var')

        % Se caminho foi informado

        [nomeArquivo, caminhoArquivo] = selecionaArquivo(tipoArquivo, caminho);

    else % caminho não foi informado

        [nomeArquivo, caminhoArquivo] = selecionaArquivo(tipoArquivo);

    end;

    if isequal(nomeArquivo, 0) || isequal(caminhoArquivo, 0)

        I = []; Map = [];

        return;

    end;

   

    % Monta o nome completo do arquivo

    caminhoNomeArquivo = fullfile(caminhoArquivo, nomeArquivo);

   

    % Lê conforme o tipo de arquivo

    tipoArquivoSelecionado = upper(slSubStr(nomeArquivo, -4, 4));

    if strcmp(tipoArquivoSelecionado, '.IMG')

%         disp('Essa função ainda não reconhece imagens tipo .img');

%         I = []; Map = [];

 

        % Monta nome de arquivo substituindo .img por .hdr

        caminhoNomeArquivoHDR = strrep(caminhoNomeArquivo, '.img', '.hdr');

        % Abre arquivo .hdr correspondente

        fid = fopen(caminhoNomeArquivoHDR, 'r');

        if fid == -1

            error('Erro: arquivo .hdr não pôde ser aberto');

        end;

       

        % Determina parâmetros para leitura multibanda

        linha = fgetl(fid);

        qtdeLinhas  = [];

        qtdeColunas = [];

        qtdeBandas  = [];

        tipoDN      = [];

        tipoArquivo = [];

        offSet      = [];

        byteOrder   = [];

        while ~ feof(fid)

            if isempty(qtdeLinhas)

                qtdeLinhas  = sscanf(linha, 'lines   =%u');

            end;

            if isempty(qtdeColunas)

                qtdeColunas = sscanf(linha, 'samples =%u');

            end;

            if isempty(qtdeBandas)

                qtdeBandas  = sscanf(linha, 'bands   =%u');

            end;

            if isempty(tipoDN)

                tipoDN      = sscanf(linha, 'data type =%u');

            end;

            if isempty(tipoArquivo)

                tipoArquivo = sscanf(linha, 'interleave =%s');

            end;

            if isempty(offSet)

                offSet = sscanf(linha, 'header offset =%u');

            end;

            if isempty(byteOrder)

                byteOrder = sscanf(linha, 'byte order =%u');

            end;

            linha = fgetl(fid);

        end;

 

        % Converte parâmetro tipoDN para parâmetro precisao da função

        % multibandread

        switch tipoDN

            case 1

                precisao = 'int8';

            case 2

                precisao = 'int16';

            case 3

                precisao = 'int32';

            case 4

                precisao = 'float32';

            case 5

                precisao = 'float64';

            case 12

                precisao = 'uint16';

...

Baixar como (para membros premium)  txt (5.2 Kb)   pdf (61.4 Kb)   docx (12.9 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com