32
Interpolación de Imágenes Escuela de Ingeniería Informática de Oviedo (Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 1 / 25

Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Interpolación de Imágenes

Escuela de Ingeniería Informática de Oviedo

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 1 / 25

Page 2: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Contenidos

1 Introducción

2 Vecino más cercano (Nearest neighbor)

3 Bilineal

4 Bicúbica

5 Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 2 / 25

Page 3: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Introducción

Esquema

1 Introducción

2 Vecino más cercano (Nearest neighbor)

3 Bilineal

4 Bicúbica

5 Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 3 / 25

Page 4: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Introducción

La interpolación de imágenes se utiliza siempre en el procesado de imágenesdigitales

Escalado (remuestreo).Reasignación (transformaciones geométricas - rotación, cambio deperspectiva,...).Relleno (restauración de agujeros).Deformación, transformaciones no lineales.

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 4 / 25

Page 5: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Introducción

La interpolación de imágenes se utiliza siempre en el procesado de imágenesdigitales

Escalado (remuestreo).Reasignación (transformaciones geométricas - rotación, cambio deperspectiva,...).Relleno (restauración de agujeros).Deformación, transformaciones no lineales.

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 4 / 25

Page 6: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Introducción

La interpolación de imágenes se utiliza siempre en el procesado de imágenesdigitales

Escalado (remuestreo).Reasignación (transformaciones geométricas - rotación, cambio deperspectiva,...).Relleno (restauración de agujeros).Deformación, transformaciones no lineales.

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 4 / 25

Page 7: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Introducción

La interpolación de imágenes se utiliza siempre en el procesado de imágenesdigitales

Escalado (remuestreo).Reasignación (transformaciones geométricas - rotación, cambio deperspectiva,...).Relleno (restauración de agujeros).Deformación, transformaciones no lineales.

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 4 / 25

Page 8: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Vecino más cercano (Nearest neighbor)

Esquema

1 Introducción

2 Vecino más cercano (Nearest neighbor)

3 Bilineal

4 Bicúbica

5 Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 5 / 25

Page 9: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Vecino más cercano (Nearest neighbor)

Vecino más cercano (Nearest neighbor)

Es un método básico.Requiere un tiempo de procesado bajo.Solo tiene en cuenta un píxel: el más cercano al punto interpolado.Simplemente aumenta el tamaño de cada píxel.

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 6 / 25

Page 10: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Vecino más cercano (Nearest neighbor)

Vecino más cercano (Nearest neighbor)

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 7 / 25

Page 11: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Vecino más cercano (Nearest neighbor)

Vecino más cercano (Nearest neighbor)

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 7 / 25

Page 12: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Vecino más cercano (Nearest neighbor)

Relaciones con la interpolación 1D

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 8 / 25

Page 13: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bilineal

Esquema

1 Introducción

2 Vecino más cercano (Nearest neighbor)

3 Bilineal

4 Bicúbica

5 Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 9 / 25

Page 14: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bilineal

Bilineal

Tiene en cuenta los valores en los píxeles conocidos que rodean a unodado en una vecindad de los 2x2 píxeles más cercanos.Se toma el promedio ponderado de estos 4 píxeles y se calcula el valorinterpolado.El resultado está más suavizado que las imágenes obtenidas utilizandoel método del píxel más cercano.Necesita más tiempo de procesado.

Figura : Ejemplo en el que todos los píxeles conocidos están a la misma distancia. Elvalor interpolado en entonces la suma de sus valores dividida por cuatro.

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 10 / 25

Page 15: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bilineal

Bilineal

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 11 / 25

Page 16: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bilineal

Bilineal

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 11 / 25

Page 17: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bilineal

Relación con la interpolación 1D

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 12 / 25

Page 18: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bicúbica

Esquema

1 Introducción

2 Vecino más cercano (Nearest neighbor)

3 Bilineal

4 Bicúbica

5 Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 13 / 25

Page 19: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bicúbica

BicúbicaUn paso más allá del caso bilineal es considerar la vecindad de los 4x4píxeles conocidos más cercanos, es decir, un total de 16 píxeles.Como están situados a distancias distintas del píxel de valordesconocido, se da mayor peso en el cálculo a los más cercanos.Produce imágenes más nítidas que los dos métodos anteriores.Es un buen compromiso entre tiempo de procesado y calidad deresultado.Es un procedimiento estandar en programas de edición de imágenes,drivers de impresoras e interpolación en cámaras.

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 14 / 25

Page 20: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bicúbica

Figura : Nearest

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 15 / 25

Page 21: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bicúbica

Figura : Bilineal

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 15 / 25

Page 22: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bicúbica

Figura : Bicúbica

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 15 / 25

Page 23: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bicúbica

Relación con interpolación 1D

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 16 / 25

Page 24: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Bicúbica

Otro ejemplo (wiki)

Figura : Interpolación mediante el vecino más cercano, bilineal y bicúbica

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 17 / 25

Page 25: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

Esquema

1 Introducción

2 Vecino más cercano (Nearest neighbor)

3 Bilineal

4 Bicúbica

5 Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 18 / 25

Page 26: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

Interpolación genérica

clear allI=imread('lena_eye.png');I=double(I);

[m n]= size(I);[x,y] = meshgrid(1:n, 1:m); % rejilla imagen inicial

r=0.5; % factor de escala[p,q]=meshgrid(1:r:n, 1:r:m); % rejilla imagen finalI2=interp2(x,y,I,p,q,'nearest'); % interpolación

% 'nearest', ...'bilinear','bicubic'

figuresubplot(1,2,1),imagesc(I),axis imagetitle('Original','FontSize',18)subplot(1,2,2),imagesc(I2),axis imagetitle('Interpolador NN ','FontSize',18)colormap(gray)

print -djpeg eye_ori_NN.jpg

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 19 / 25

Page 27: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 20 / 25

Page 28: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

Interpolación. Órdenes directas

clear allI=imread('lena_eye.png');I=double(I);

r=2;theta=45;I2=imresize(I,r,'bicubic'); % escalado con factor rI3=imrotate(I2,theta,'bicubic'); % rota theta gradosI4=imrotate(I2,theta,'bicubic','crop'); % 'crop'-> tamaño original

figuresubplot(2,2,1),imagesc(I),axis imagetitle('Original','FontSize',18)subplot(2,2,2),imagesc(I2),axis imagetitle('Escalado','FontSize',18)subplot(2,2,3),imagesc(I3),axis imagetitle('Rotado escalado','FontSize',18)subplot(2,2,4),imagesc(I4),axis imagetitle('...y recortado','FontSize',18)colormap(gray)

print -djpeg eye_several.jpg

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 21 / 25

Page 29: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 22 / 25

Page 30: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

Interpolación de imágenes. Transformacionesafines

clear allI=imread('lena_eye.png');I=double(I);

% cizallamientotform2 = maketform('affine',[1 0 0; .5 1 0; 0 0 1]);I2 = imtransform(I,tform2);

% rotacióntheta=pi/4;A=[cos(theta) sin(theta) 0; -sin(theta) cos(theta) 0; 0 0 1];tform3 = maketform('affine',A);I3 = imtransform(I,tform3);

% composicióntform4 = maketform('composite',[tform2,tform3]);I4 = imtransform(I,tform4);

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 23 / 25

Page 31: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

Interpolación de imágenes. Transformacionesafines

figuresubplot(2,2,1),imagesc(I),axis imagetitle('Original','FontSize',18)subplot(2,2,2),imagesc(I2),axis imagetitle('Cizallado horizontal','FontSize',18)subplot(2,2,3),imagesc(I3),axis imagetitle('Rotación','FontSize',18)subplot(2,2,4),imagesc(I4),axis imagetitle('Composición','FontSize',18)colormap(gray)

print -djpeg eye_custom.jpg

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 24 / 25

Page 32: Interpolación de Imágenes · Introducción Esquema 1 Introducción 2 Vecino más cercano (Nearest neighbor) 3 Bilineal 4 Bicúbica 5 Matlab (Dpto. de Matemáticas-UniOvi) Computación

Matlab

(Dpto. de Matemáticas-UniOvi) Computación Numérica Interpolación de Imágenes 25 / 25