interpolación de imágenesocw.uniovi.es/.../5/t3b_interpolacion_imagen_2.pdf · bilineal bilineal...

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

Upload: others

Post on 12-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interpolación de Imágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

Bilineal

Bilineal

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

Page 16: Interpolación de Imágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

Bilineal

Bilineal

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

Page 17: Interpolación de Imágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

Matlab

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

Page 28: Interpolación de Imágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

Matlab

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

Page 30: Interpolación de Imágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

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ágenesocw.uniovi.es/.../5/T3b_Interpolacion_imagen_2.pdf · Bilineal Bilineal Tiene en cuenta los valores en los píxeles conocidos que rodean a uno dado en una

Matlab

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