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

Trabalho de Computação Gráfica

Por:   •  1/5/2020  •  Relatório de pesquisa  •  629 Palavras (3 Páginas)  •  263 Visualizações

Página 1 de 3

[pic 1]

Curso: Ciência da Computação / Engenharia da Computação

Disciplina: Computação Gráfica

Alunos: Arthur Rezende Bueno Pontes Barata -- 1712082020

   Gabriel Antonio de Vasconcellos Barreto -- 1622082022

           Gabriel Martins Caldas e Almeida -- 1612082068

                 ATIVIDADE Nº 3 – MODIFICAÇÃO EM ESCALA

Nesta atividade, deve-se escrever um algoritmo em Matlab que realize o seguinte procedimento: aplicar modificação em escala a uma imagem em escala de cinza na horizontal e na vertical, conforme determinado pelo usuário do algoritmo.

Função Criada:

function out = amplia_imagem(img, fatores)

% 𝑃𝐻/𝑄𝐻 na horizontal

% 𝑃V/𝑄V na vertical

ph = fatores(1);

qh = fatores(2);

pv = fatores(3);

qv = fatores(4);

[li, c] = size(img);

wph = ones(1,ph)/ph;

wqh = ones(1,qh)/qh;

wpv = ones(1,pv)/pv;

wqv = ones(1,qv)/qv;

% dilatar na horizontal

dilat_h = zeros(li, ph*c);

for j=1:li

    for i=1:c

        dilat_h(j,(i*ph)) = img(j,i);

    end

end

dilat_h = conv2(dilat_h, wph);

% comprimir na horizontal

convh = conv2(dilat_h, wqh);

comp_h = zeros(li, int64((ph*c)/qh));

for j=1:size(comp_h, 1)

    for i=1:size(comp_h, 2)

        comp_h(j, i) = convh(j, i*qh);

    end

end

% dilatar na vertical

dilat_v = zeros(pv*li, size(comp_h,2));

for j=1:size(comp_h, 2)

    for i=1:size(comp_h, 1)

        dilat_v((i*pv), j) = comp_h(i,j);

    end

end

dilat_v = conv2(dilat_v, wpv);

% comprimir na vertical

conv_v = conv2(dilat_v, wqv);

comp_h = zeros(int64(size(dilat_v,1)/qv), size(dilat_v,2));

for j=1:size(comp_h, 2)

    for i=1:size(comp_h, 1)

        comp_h(i, j) = conv_v(i*qv, j);

    end

end

out = comp_h;

A função criada recebe como parâmetros uma imagem e os fatores N  horizontal e vertical tanto para dilatação quanto para a compressão da imagem.

Escolhemos utilizar somente a máscara constante(wp/wq) para a implementação deste experimento, porém pode ser utilizado outras máscaras como a Triangular por exemplo.

A máscara constante foi escolhida pelo fato de ser mais fácil de ser trabalhada, o que facilita o entendimento do procedimento que está sendo feito.

Para realizarmos a dilatação de uma linha ou coluna por N é feita a inserção de N -1 zeros entre os pixels da imagem seguida de uma convolução.

[pic 2]

Na função criada, na parte da dilatação, foi criada uma imagem/matriz de zeros e com um ciclo de repetição a nova imagem vai sendo preenchida com os pixels da imagem dada na entrada. Cada preenchimento ocorre de acordo com o contador do ciclo e com o fator de dilatação horizontal e vertical. Este procedimento foi utilizado para realizar a inserção dos zeros na imagem da entrada.

...

Baixar como (para membros premium)  txt (3.8 Kb)   pdf (129.4 Kb)   docx (625.8 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com