Imagem Digital Conceitos, Processamento e Análise

112
Imagem Digital Conceitos, Processamento e Análise Imagem e funções Imagem digital: amostragem, quantização e codifica Re-amostragem de funções Parte 1: Conceitos básicos

description

Imagem Digital Conceitos, Processamento e Análise. Parte 1: Conceitos básicos. Imagem e funções Imagem digital: amostragem, quantização e codificação Re-amostragem de funções. 100%. 80%. 60%. Níveis de cinza. 40%. 20%. x. 0%. Posição ao longo da linha. L. L(u,v). v. u. Função. - PowerPoint PPT Presentation

Transcript of Imagem Digital Conceitos, Processamento e Análise

Page 1: Imagem Digital Conceitos, Processamento e Análise

Imagem DigitalConceitos, Processamento e Análise

1. Imagem e funções

2. Imagem digital: amostragem, quantização e codificação

3. Re-amostragem de funções

Parte 1: Conceitos básicos

Page 2: Imagem Digital Conceitos, Processamento e Análise

Imagem: Modelo Matemático: Função

u

v

L

L(u,v)

Função

0%

20%

40%

60%

80%

100%

Nív

eis

de c

inza

Posição ao longo da linhax

C 2,0,0: hwL

Lv

u

Page 3: Imagem Digital Conceitos, Processamento e Análise

Imagem colorida

R

G

Bu

v

Page 4: Imagem Digital Conceitos, Processamento e Análise

Imagem coloridas como 3 canais de cor

canal vermelho

canal verde

canal azul

Page 5: Imagem Digital Conceitos, Processamento e Análise

Imagem Digital

Amostragem, quantização e codificação

Page 6: Imagem Digital Conceitos, Processamento e Análise

Amostragem, quantização e codificação de f(x)

x

f(x)

amostra

partição do eixo x

Page 7: Imagem Digital Conceitos, Processamento e Análise

codificação = (3, 4, 5, 5, 4, 2, 2, 3, 5, 5, 4, 2)

Amostragem, quantização e codificação de f(x)

0

1

2

3

4

5

6

x

f(x)

amostraquantizada

Page 8: Imagem Digital Conceitos, Processamento e Análise

Anatomia das máquinas atuais

Page 9: Imagem Digital Conceitos, Processamento e Análise

Câmeras atuais

Page 10: Imagem Digital Conceitos, Processamento e Análise

Digitalização de Imagens

Discretização espacial (amostragem)

Page 11: Imagem Digital Conceitos, Processamento e Análise

Processos básicos

Imagem de tons contínuos

64x54

Imagem amostrada

amostragem

64x54 - 16 cores

Imagem amostrada equantizada

quantização

55 55 55 55 55 55 55

55 20 22 23 45 55 55

55 55 10 09 11 55 55

55 55 43 42 70 55 55

55 55 28 76 22 55 55

55 55 55 55 55 55 55

codificação8*55, 1*20, 1*22, 1*23, ….

Imagem amostrada, quantizada e codificada

Page 12: Imagem Digital Conceitos, Processamento e Análise

Imagem Digital: Histogramas

Uma outra maneira de ver a informação da imagem: probabilidade deocorrência de um determinado valor, uso do intervalo [0,255], contraste,...

Page 13: Imagem Digital Conceitos, Processamento e Análise

Histogramas de Imagem Colorida

Page 14: Imagem Digital Conceitos, Processamento e Análise

Propriedades básicas de uma Imagem Digital

Page 15: Imagem Digital Conceitos, Processamento e Análise

(a) aumento de resolução

Problemas associados a re-amostragem de um sinal digital f(x)

x

f(x)

função reconstruídapelo vizinho mais próximo

função reconstruídapor interpolação linear

0

1

2

3

4

5

6 função original

Page 16: Imagem Digital Conceitos, Processamento e Análise

Re-amostragem de f(x)

x

f(x)

função reconstruídapelo vizinho mais próximo

função reconstruídapor interpolação linear

função original

(b) redução de resolução

0

1

2

3

4

5

6

Page 17: Imagem Digital Conceitos, Processamento e Análise

Freqüência de Amostragem

x

f(x)

x

f(x)

Page 18: Imagem Digital Conceitos, Processamento e Análise

Parte 2 - Eliminação de ruídos e realce de arestas

Aplicações da Transformada de Fourier

Imagem DigitalConceitos, Processamento e Análise

Page 19: Imagem Digital Conceitos, Processamento e Análise

Redução de ruídos

• Dada uma imagem I com um ruído n, reduza n o máximo que puder (preferencialmente elimine n completamente) sem alterar significativamente I.

),(),(),(ˆ jinjiIjiI

n

sSNR

n

sdBSNR

10log10

100n

s

20 dB significam

Page 20: Imagem Digital Conceitos, Processamento e Análise

Dois tipos básicos de ruídos

• Ruído Gaussiano branco : processo estocástico de média zero, independente do tempo e dos espaço.

2

2

2

2

1)(

x

exG

0),( jin

),(~),( 00 jjiinjin é o mesmo processo estocástico que não varia no tempo.

),( jin é uma variável aleatória com a distribuição:

Page 21: Imagem Digital Conceitos, Processamento e Análise

Dois tipos básicos de ruídos

• Ruído impulsivo: causado por erro de transmissão, CCDs defeituosos, etc... Também chamado de pico e de sal e pimenta.

lxiiyi

lxjinsp )(

0),(

minmaxmin

1,0, yx são v.a. uniformemente distribuídas

imin, imax, e l são parâmetos de controle da quantidade de ruídos.

Page 22: Imagem Digital Conceitos, Processamento e Análise

Exemplo de ruído Gaussiano (=5) e Impulsivo ( =0.99)

Page 23: Imagem Digital Conceitos, Processamento e Análise
Page 24: Imagem Digital Conceitos, Processamento e Análise

Imagem com ruído impulsivo

223 204 204 204 204 204 204 204 204 204 204 204 204 223

171 120 120 120 18 120 50 120 120 120 120 120 120 171

171 120 120 120 116 120 120 120 120 120 120 120 120 171

138 120 120 120 120 120 50 120 97 120 120 120 120 171

171 120 120 120 120 120 120 120 120 120 187 120 120 242

172 120 120 120 120 120 120 120 120 120 120 120 120 171

171 120 120 120 120 120 179 120 120 120 120 167 120 171

171 120 120 120 120 120 120 235 120 120 120 120 120 171

171 120 120 120 120 120 120 235 120 76 175 120 120 171

171 120 120 120 120 120 120 120 120 120 120 120 120 171

171 120 120 120 120 120 120 120 123 120 120 214 120 114

171 120 120 120 120 120 120 120 120 120 120 120 143 171

171 120 120 120 232 120 120 198 120 120 120 120 120 171

203 171 171 171 171 171 171 171 171 205 171 171 171 203

Uso da mediana

Iij = mediana Ωij

Page 25: Imagem Digital Conceitos, Processamento e Análise

Sinal com ruído

:= ( )f3 x 10 ( )cos 2 x 6 ( )sin 10 x .8 ( )cos 40 x

-20

-15

-10

-5

0

5

10

15

20

Page 26: Imagem Digital Conceitos, Processamento e Análise

Suavização

f

h

4

2 11 iii

i

fffh

Page 27: Imagem Digital Conceitos, Processamento e Análise

Filtragem Gaussiana

-20

-15

-10

-5

0

5

10

15

20

w1+w2+w3 filtro w1+w2

Page 28: Imagem Digital Conceitos, Processamento e Análise

Mascara ou Filtro

4

2 11 iii

i

fffh

1

0)(

n

kiiki fgh

10

14/1

04/2

14/1

10

lse

lse

lse

lse

lse

gl

ou:

Page 29: Imagem Digital Conceitos, Processamento e Análise

Convolução

t

t

dtxfxtgxh )()()(

1

0)(

n

kiiki fgh

duuxgufgfxh )()()(

Page 30: Imagem Digital Conceitos, Processamento e Análise

Ilustação da convolução

t

t

dtxfxtgxh )()()(

Page 31: Imagem Digital Conceitos, Processamento e Análise

Ilustração da convolução

t

t

dtxfxtgxh )()()(

Page 32: Imagem Digital Conceitos, Processamento e Análise

Discretização da Gaussiana 1D

0.1

0.2

0.3

-4 -3 -2 -1 0 1 2 3 4

2

2

2

2

1)(

x

exG

1214

1 14641

16

1

161520156164

1

Page 33: Imagem Digital Conceitos, Processamento e Análise

Discretização da Gaussiana 2D

2

22

2

2

1),(

yx

eyxG

121

242

121

16

1

14741

41626164

72641267

41626164

14741

273

1

Page 34: Imagem Digital Conceitos, Processamento e Análise

Separabilidade do filtro gaussiano

207 247 38 131 38

62 90 129 234 231

211 175 44 1 26

236 58 75 128 112

210 141 125 168 58

121

242

121

16

1

130 117 129

125 90 88

129 93 92

1

2

1

4

1

1214

1

185 113 84

93 145 207

151 66 18

107 84 111

154 140 130

130 117 129

125 90 88

129 93 92

Page 35: Imagem Digital Conceitos, Processamento e Análise

Imagem filtrada com um filtro passa baixa

Page 36: Imagem Digital Conceitos, Processamento e Análise

Arestas e cantos

• Locais de mudanças significativas na intensidade da imagem

Page 37: Imagem Digital Conceitos, Processamento e Análise

Edgedels = edge elements

Page 38: Imagem Digital Conceitos, Processamento e Análise

Tipos de arestas

degrau(step) rampa(ramp)

cume(roof) impulso(spike)

Page 39: Imagem Digital Conceitos, Processamento e Análise

Gráfico sem e com ruído

Page 40: Imagem Digital Conceitos, Processamento e Análise

Derivadas e arestas

f(x) f(x)+n(x) | f'(x)+n'(x) | f"(x)+n"(x)

Page 41: Imagem Digital Conceitos, Processamento e Análise

Série de Taylor

)()(2

)()()()()( 3"

2' xOxf

xxfxxfxxf

iiii ffff "'1 2

1

Com x=1, f(x)=fi e f(x+x)=fi+1

Com x=-1, f(x)=fi e f(x+x)=fi-1

iiii ffff "'1 2

1

(a)

(b)

Page 42: Imagem Digital Conceitos, Processamento e Análise

Aproximações para derivadas

(a-b) 2/)( 11'

iii fff 2/)( 11'

iii fff

(a+b) )2( 11"

iiii ffff )2( 11"

iiii ffff

f(x)

x

fi-1

fi fi+1

i+1ii-1

Page 43: Imagem Digital Conceitos, Processamento e Análise

Em 2D

y

fx

f

yxf ),(

Gradiente

Laplaciano

2

2

2

22 ),(

y

f

x

fyxf

x

yxfyxf

x

yxf mnmn

,,, 1

x

yxfyxf

y

yxf mnmn

,,, 1

11

1

1

Convolution Kernels

141

4204

141

Page 44: Imagem Digital Conceitos, Processamento e Análise

Finite differences

11* II x

1

1*II y

IKhurram Hassan-Shafique

Page 45: Imagem Digital Conceitos, Processamento e Análise

Classical Operators

Prewitt’s Operator

11

11

11

1

1

11

Smooth Differentiate

101

101

101

111

000

111

111

111

Khurram Hassan-Shafique

Page 46: Imagem Digital Conceitos, Processamento e Análise

Classical Operators

Sobel’s Operator

11

22

11

1

1

11

SmoothDifferentiate

101

202

101

121

000

121

121

121

Khurram Hassan-Shafique

Page 47: Imagem Digital Conceitos, Processamento e Análise

• Sobel Edge Detector

Detecting Edges in Image

Image I

101

202

101

121

000

121

*

*

Idx

d

Idy

d

22

Idy

dI

dx

d

ThresholdEdges

Khurram Hassan-Shafique

Page 48: Imagem Digital Conceitos, Processamento e Análise

Sobel Edge Detector

Idx

d

Idy

d

I

Khurram Hassan-Shafique

Page 49: Imagem Digital Conceitos, Processamento e Análise

Sobel Edge Detector

I

22

I

dy

dI

dx

d

100 ThresholdKhurram Hassan-Shafique

Page 50: Imagem Digital Conceitos, Processamento e Análise

Filtros de realce de bordas

010

141

010Laplaciano

000

010

100

000

010

001

101

202

101

4

1

121

000

121

4

1

Vertical Horizontal

Roberts

Sobel

Gradiente

Page 51: Imagem Digital Conceitos, Processamento e Análise

Imagem filtrada com um filtro passa alta

Page 52: Imagem Digital Conceitos, Processamento e Análise

Filtragem LoG do Juiz Virtual

121

242

121

16

1

filtrogaussiano

010

141

010

filtro laplaciano

LL 255BGRL 11.059.030.0

Page 53: Imagem Digital Conceitos, Processamento e Análise

Parte 3 - Processamentos apenas no espaço das cores

Imagem DigitalConceitos, Processamento e Análise

Page 54: Imagem Digital Conceitos, Processamento e Análise

Correção gamaAjustes de contraste e iluminação

Page 55: Imagem Digital Conceitos, Processamento e Análise

Correção gama

LL

Page 56: Imagem Digital Conceitos, Processamento e Análise

Probabilidade

0 1 x

DF(x)

x0 x1

1

0

)( 10

x

x

dxxDFxxxP x

dxxDFxxPxCDF0

)(0)(

)()( xCDFdx

dxDF

Função de densidade de probabilidade

0 1 x

CDF(x)

1

x

Função de densidade acumulada de probabilidade

Page 57: Imagem Digital Conceitos, Processamento e Análise

Mudança de variavel y = f (x)

)()( yCDFdy

dyDF

0 1 x

y=f(x)

1

0 1 y

1

)(1 yfx

)()( xCDFxf )(xDFdx

dy

1)(

)()(

xDF

xDFyDF

0 1 x

DF(y)1

Transformação monotônica e limitada ao intervalo [0,1]

dy

dxxCDF

dx

d)(

dy

dxxDF )(

Page 58: Imagem Digital Conceitos, Processamento e Análise

Equalização de Histograma

L

j

j

n

nLfL

0

)('

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1 2 3 4 5 6 7 8 9 10 11

n

n j

L

Page 59: Imagem Digital Conceitos, Processamento e Análise

Equalização do histograma

Page 60: Imagem Digital Conceitos, Processamento e Análise

Tons de cinza e negativo

Lx,y = 0.299Rx,y + 0.587Gx,y + 0.114Bx,y

tons de cinza

Lx,y = 255 - Lx,y

Page 61: Imagem Digital Conceitos, Processamento e Análise

Outros exemplos com o PaintShopProtm

Page 62: Imagem Digital Conceitos, Processamento e Análise

Quantização de cores

Quantização de 24 para 8 bits

Page 63: Imagem Digital Conceitos, Processamento e Análise

A qualidade depende da imagem

Page 64: Imagem Digital Conceitos, Processamento e Análise

Corte mediano

Page 65: Imagem Digital Conceitos, Processamento e Análise

Corte mediano

Page 66: Imagem Digital Conceitos, Processamento e Análise

HDRI (High Dynamic Range Image)

Page 67: Imagem Digital Conceitos, Processamento e Análise

Resultado esperado da Q3 do T1

Page 68: Imagem Digital Conceitos, Processamento e Análise

Parte 4 - Codificação e armazenamento de Imagens

compressão e formatos de arquivos

Imagem DigitalConceitos, Processamento e Análise

Page 69: Imagem Digital Conceitos, Processamento e Análise

Organização de pixels num arrayno formato TGA (targa)

b g r ab g r a bb arg

0 1 …

...

arg

w-1x

y

unsigned char *bgra_vector;…offset=4*(w*y+x);blue = bgra_vector[offset];green = bgra_vector[offset+1];red = bgra_vector[offset+2];alpha = bgra_vector[offset+3];

0

12

h-1

3

Pixel (x,y)

Page 70: Imagem Digital Conceitos, Processamento e Análise

Outra ordem no plano

Page 71: Imagem Digital Conceitos, Processamento e Análise

Tipo Abstrato ImagemImage *imgCreate (int w, int h);

void imgDestroy (Image *image);

int imgGetWidth(Image * image);

int imgGetHeight(Image * image);

float * imgGetRGBData(Image * image);

void imgSetPixel3fv(Image *image, int x, int y, float * color);

void imgSetPixel3ubv(Image *image, int x, int y, unsigned char *color);

void imgGetPixel3fv(Image *image, int x, int y, float *color);

void imgGetPixel3ubv(Image *image, int x, int y, unsigned char *color);

Image * imgReadBMP(char *filename);

int imgWriteBMP(char *filename, Image * image);

Image * imgCopy(Image * image);

Image * imgGrey(Image * image);

Image * imgResize(Image * img0, int w1, int h1);

/*- implementação do tipo Imagem */

struct image_imp

int width; /* largura (width) em pixels */

int height; /* altura (height) em pixels */

float *buf; /* buffer RGB */

;

Page 72: Imagem Digital Conceitos, Processamento e Análise

Arquivos Targa RGBA

Cabeçalho Pixels (bgra,bgra, …,bgra)

/* escreve o cabecalho */

putc(byteZero,filePtr); /* no. de caracteres no campo de id da imagem */

putc(byteZero,filePtr); /* imagem nao tem palheta de cores */

putc(imageType,filePtr); /* = 2 -> imagem "true color" (RGBA) */

putuint(shortZero,filePtr);/* info sobre a tabela de cores (inexistente) */

putuint(shortZero,filePtr); /* idem */

putc(byteZero,filePtr); /* idem */

putuint(shortZero,filePtr); /* =0 origem em x */

putuint(shortZero,filePtr); /* =0 origem em y */

putuint(img->width,filePtr); /* largura da imagem em pixels */

putuint(img->height,filePtr); /* altura da imagem em pixels */

putc(bitDepth,filePtr); /* numero de bits de um pixel */

putc(byteZero, filePtr); /* origem canto inf esquedo sem entrelacamento */

unsigned char imageType=2 /* RGB(A) sem compressão */

unsigned char bitDepth=32; /* 32 bits por pixel */

unsigned char byteZero=0; /* usado para escrever um byte zero no arquivo */

short int shortZero=0; /* usado para escrever um short int zero no arquivo */

Page 73: Imagem Digital Conceitos, Processamento e Análise

Organização de pixels num arrayno formato PPM (o mais simples)

00 01 02 0807060503 04 1009 11

0 1 2

...

1312 14

w-1

15 16 17 18 ...

x

y Pixel (x,y)unsigned char *rgb_vector;…offset=3*(w*y+x);red = rgb_vector[offset];green = rgb_vector[offset+1];blue = rgb_vector[offset+2];

01

2

h-1

3

...

Page 74: Imagem Digital Conceitos, Processamento e Análise

Formato PPM

• File_signature "P6". • White_space (blanks, TABs, CRs, LFs). • Width, w, (ASCII decimal characters). • White_space (blanks, TABs, CRs, LFs). • Height, h, (ASCII decimal characters). • White_space (blanks, TABs, CRs, LFs). • Max_color, max, (ASCII decimal characters). • White_space (blanks, TABs, CRs, LFs). • Pixels, (3*w*h bytes rgb components of pixels)

• Comments from # to the end of line• lines 70 characters

Page 75: Imagem Digital Conceitos, Processamento e Análise

Formato PPM

P6# Created by Paint Shop Pro358 539255=?:?A<AC>CE@EFAFGBGHCGHCGHB . . .

exemplo

Page 76: Imagem Digital Conceitos, Processamento e Análise

Gravação em PPM

int ppm_write(int w, int h, unsigned char *rgb, char *file_name) FILE *fp;

fp = fopen(file_name, "wb"); if (fp == NULL) return 0;

if (fprintf(fp, "P6\n%d %d\n255\n", w, h) <= 0) fclose(fp); return 0;

if (fwrite(rgb, 3*w*h, 1, fp) != 1) fclose(fp); return 0;

fclose(fp); return 1;

Page 77: Imagem Digital Conceitos, Processamento e Análise

Leitura em PPMint ppm_read(int *p_w, int *p_h, unsigned char **p_rgb, char *file_name) FILE *fp; char line[80]; int rgb_size; int max;

fp = fopen(file_name, "rb"); if (fp == NULL) printf(”Error reading %s",file_name); return 0; fgets(line,80,fp); if(strcmp(line,"P6\n")) printf(”Wrong signature\n"); return 0;

while (fscanf( fp, " %d ", p_w ) != 1) fgets(line, 80, fp);

while (fscanf( fp, " %d ", p_h ) != 1)

fgets(line, 80, fp); while (fscanf( fp, " %d", &max ) != 1)

fgets(line, 80, fp); fgetc(fp); rgb_size=3*(*p_w)*(*p_h); (*p_rgb) = (unsigned char *) calloc(rgb_size, 1); if ((*p_rgb) != NULL) fread( (*p_rgb), rgb_size, 1, fp ); fclose(fp); return 1;

Page 78: Imagem Digital Conceitos, Processamento e Análise

Programa Simplesvoid main(void) int w, h; // dimensões da imagem unsigned char *rgb; // bytes de rgb unsigned char r,g,b,grey; // componentes de cor int x,y; long int k;

if (ppm_read(&w,&h,&rgb,"test_in.ppm")==0) return; for (y = 0; y < h; y++) for (x = 0; x < w; x++) k = 3*(y*w+x); r = rgb[k]; g = rgb[k+1]; b = rgb[k+2]; grey = (unsigned char)(0.3*r+0.6*g+0.1*b); rgb[k] = grey; rgb[k+1] = grey; rgb[k+2] = grey; ppm_write(w, h, rgb, "test_out.ppm"); free(rgb);

Page 79: Imagem Digital Conceitos, Processamento e Análise

Arquivo BMP

00 01 02 0807060503 04 1009 11

Pixel 0 Pixel 1 Pixel 2 Pixel 3

1312 14

Pixel 4

15

16 17 18 ...

colocado para garantir múltiplo de 4

colocado para garantir múltiplo de 4

Organização dos pixels de uma imagem RGB no arquivo BMP

Page 80: Imagem Digital Conceitos, Processamento e Análise

Microsoft Windows Bitmap - BMP

Características Principais

• Mono, 4-bit, 8-bit, 24-bit• Tipo de compressão: RLE / não comprimido• Tamanho máximo: 64K x 64K pixels• Seções (versão 3):

Header

Info. Header

Palette

Bitmap Data

Page 81: Imagem Digital Conceitos, Processamento e Análise

BMP - Header

typedef struct _Win3xBitmapHeader

WORD Type; /* Image file type 4D42h (“BM”)*/

DWORD FileSize; /* File size (bytes) */

WORD Reserved1; /* Reserved (always 0) */

WORD Reserved2; /* Reserved (always 0) */

DWORD Offset; /* Offset to bitmap data in bytes */

WIN3XHEAD;

Page 82: Imagem Digital Conceitos, Processamento e Análise

BMP - Information Header

typedef struct _Win3xBitmapInfoHeader

DWORD Size; /* Size of this Header (40) */

DWORD Width; /* Image width (pixels) */

DWORD Height; /* Image height (pixels) */

WORD Planes; /* Number of Planes (always=1) */

WORD BitCount; /* Bits per pixel (1/4/8 or 24)*/

DWORD Compression; /* Compression (0/1/2) */

DWORD SizeImage; /* Size of bitmap (bytes) */

DWORD XPelsPerMeter; /* Horz. resol.(pixels/m) */

DWORD YPelsPerMeter; /* Vert. resol.(pixels/m) */

DWORD ClrUsed; /* Num of colors in the image */

DWORD ClrImportant; /* Num of important colors */

WIN3XINFOHEADER;

Page 83: Imagem Digital Conceitos, Processamento e Análise

BMP - Palette

typedef struct _Win3xPalette

RGBQUAD Palette[ ]; /* 2, 16, or 256 elem. */

WIN3XPALETTE;

typedef struct _Win3xRgbQuad

BYTE Blue; /* 8-bit blue component */

BYTE Green; /* 8-bit green component */

BYTE Red; /* 8-bit red component */

BYTE Reserved; /* Reserved (= 0) */

RGBQUAD;

Page 84: Imagem Digital Conceitos, Processamento e Análise

BMP - Image Data

Notas

Cada scan line em um arquivo BMP é sempre um múltiplo de 4.

Imagens com1-, 4-, e 8-bits usam uma palheta de cores.

Imagens com 24-bits guardam a cor diretamente, na ordem azul, verde e vermelho.

O armazenamento da imagem é sempre feito a partir do canto esquerdo inferior.

Page 85: Imagem Digital Conceitos, Processamento e Análise

Esquemas de armazenamento de imagens

Verm.

Verde

Azul

Pixe

l 2

Plano de Cores

00 01 02 060503 04

07 08 09 . . .

Pixe

l 0

Pixe

l 5

Pixe

l 4

Pixe

l 3

Pixe

l 1

06

06

Organização dos pixels de uma imagem por planos de cores

Ban

cos

(Jav

a)

Informação é uma componente da cor

(Data Buffer – Java)

Page 86: Imagem Digital Conceitos, Processamento e Análise

Codificação uniforme

Uniforme

tons # pixels código tam. # bits

0 1900 000 3 5700

1/7 2500 001 3 7500

2/7 2100 010 3 6300

3/7 1600 011 3 4800

4/7 800 100 3 2400

5/7 600 101 3 1800

6/7 300 110 3 900

1 200 111 3 600

TOTAL 30000

Podemos melhorar?

Page 87: Imagem Digital Conceitos, Processamento e Análise

Construção da Árvore Huffman

1/7 2500

2/7 2100

0 1900

3/7 1600

4/7 800

5/7 600

6/7 300

1 200

1/7 2500

2/7 2100

0 1900

3/7 1600

4/7 800

5/7 600

n0 500

n0

6/7 1

Page 88: Imagem Digital Conceitos, Processamento e Análise

Construção da Árvore Huffman

1/7 2500

2/7 2100

0 1900

3/7 1600

4/7 800

5/7 600

n0 500

n0

6/7 1

1/7 2500

2/7 2100

0 1900

3/7 1600

n1 1100

4/7 800

5/7

n1

Page 89: Imagem Digital Conceitos, Processamento e Análise

Construção da Árvore Huffman

1/7 2500

2/7 2100

0 1900

3/7 1600

n1 1100

4/7 800

1/7 2500

2/7 2100

0 1900

n2 1900

3/7 1600

n0

6/7 1

5/7

n1 4/7

n2

Page 90: Imagem Digital Conceitos, Processamento e Análise

Construção da Árvore Huffman

1/7 2500

2/7 2100

0 1900

n2 1900

3/7 1600

n3 3500

1/7 2500

2/7 2100

0 1900

n0

6/7 1

5/7

n1 4/7

n2 3/7

n3

Page 91: Imagem Digital Conceitos, Processamento e Análise

Construção da Árvore Huffman

n3 3500

1/7 2500

2/7 2100

0 1900

n0

6/7 1

5/7

n1 4/7

n2 3/7

n3

n4 4000

n3 3500

1/7 2500n4

2/7 0

Page 92: Imagem Digital Conceitos, Processamento e Análise

Construção da Árvore Huffman

n0

6/7 1

5/7

n1 4/7

n2 3/7

n3

n5 6000

n4 4000 n4

2/7 0

n4 4000

n3 3500

1/7 2500n5

1/7

n6

Page 93: Imagem Digital Conceitos, Processamento e Análise

Construção da Árvore Huffman

1 0

11

10 01

00

111 110

1111 1110

1111

1 11110

1111

01

111100

000110

110

1110

11111

111100111101

n0

n1

n2

n3

n4n5

n6

6/7 1

5/7

4/7

3/7

0 2/71/7

Page 94: Imagem Digital Conceitos, Processamento e Análise

Codificação de HuffmanUniforme Huffman

tons # pixels código tam. # bits código tam. # bits

0 1900 000 3 5700 00 2 3800

1/7 2500 001 3 7500 10 2 5000

2/7 2100 010 3 6300 01 2 4200

3/7 1600 011 3 4800 110 3 4800

4/7 800 100 3 2400 1110 4 3200

5/7 600 101 3 1800 11111 5 3000

6/7 300 110 3 900 111101 6 1800

1 200 111 3 600 111100 6 1200

TOTAL 30000 TOTAL 27000

Page 95: Imagem Digital Conceitos, Processamento e Análise

Redundância de Codificação

r p(r) Code 1 l(r) l(r)p(r) Code 2 l(r) l(r)p(r)0 0.19 000 3 0.57 11 2 0.38

1/7 0.25 001 3 0.75 01 2 0.502/7 0.21 010 3 0.63 10 2 0.423/7 0.16 011 3 0.48 001 3 0.484/7 0.08 100 3 0.24 0001 4 0.325/7 0.06 101 3 0.18 00001 5 0.306/7 0.03 110 3 0.09 000001 6 0.18

1 0.02 111 3 0.06 000000 6 0.12

1.00 Lavg= 3.00 2.70

rk = tons de cinza em uma imagem, k=0, 1, ...,

p(rk) = nk / n

onde nk = número de pixels com tom rk

n = número de pixels da imagem

Lavg=

kk

kavg rprlL

1

0

111001

001

0001

00001

000001000000

Page 96: Imagem Digital Conceitos, Processamento e Análise

Resultado da Teoria da Informação

bitsdenúmerorp

rlk

kopt

1log2

r p(r) Code 1 l(r) l(r)p(r) Code 2 l(r) l(r)p(r) log(1/p) log(1/p)*p0 0.19 000 3 0.57 11 2 0.38 2.4 0.461/7 0.25 001 3 0.75 01 2 0.50 2.0 0.502/7 0.21 010 3 0.63 10 2 0.42 2.3 0.473/7 0.16 011 3 0.48 001 3 0.48 2.6 0.424/7 0.08 100 3 0.24 0001 4 0.32 3.6 0.295/7 0.06 101 3 0.18 00001 5 0.30 4.1 0.246/7 0.03 110 3 0.09 000001 6 0.18 5.1 0.151 0.02 111 3 0.06 000000 6 0.12 5.6 0.11

=1.00 Lavg = 3.00 2.70 Lopt = 2.65Lavg =

Page 97: Imagem Digital Conceitos, Processamento e Análise

Compressão de imagens

Compressão deImagens

Compressão deImagens

Sem PerdaSem Perda Com PerdaCom Perda

• Preserva exatamente o conteúdo da imagem

• Taxas de compressão 3 : 1

• Preserva de forma controlada o nível de qualidade da imagem

• Taxas de compressão que chegam a valores de mais de 100 : 1

Page 98: Imagem Digital Conceitos, Processamento e Análise

Métodos de compressão

• Sem perdas–Run length encoding (RLE) - repetição

–Huffman coding - histograma

–Predictive coding - diferenças

–Block coding (LZW) - dicionário

• Com perdas–Truncation coding - reduz a representação

–Predictive coding - descarta diferenças altas

–Block coding - dicionário aproximado –Transform coding - descarta frequencias altas

Métodos compostos: JPEG, MPEG

Page 99: Imagem Digital Conceitos, Processamento e Análise

Processo de compressão e descompressão

Dados daImagemOriginal

32, 45, 57, 68, 23, 100,98, ...

32, 45, 57, 68, 23, 100,98, ...

Imagem Comprimida

32, 45, 57, 68, 23, 100,98, ...

Dados daImagemOriginal

Compressãoda imagem

Imagem Comprimida

32, 45, 57, 68, 23, 100,98, ...

Transporte e/ouArmazenamento

Descompressãoda imagem

Page 100: Imagem Digital Conceitos, Processamento e Análise

Fundamentos da Compressão de Imagens

•codificação

•entre pixels

•psico-visual

A compressão de uma imagem é obtida quando se elimina a redundância de:

Page 101: Imagem Digital Conceitos, Processamento e Análise

Redundância entre pixels

640 colunas x 480 linhas x 1 byte/pixel = 300 KBytes

480*(1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0) = ~18 Kbytes

onde 1 = 32 bytes de preto e 0 = 32 bytes de branco

Page 102: Imagem Digital Conceitos, Processamento e Análise

Compressão - RLE

Objetivo

Reduzir a quantidade de dados redundantes.

Exemplo

AAAAAAxxx 6A3x

Caracterísiticas

Simples e rápido, porém a eficiência depende da imagem a ser comprimida.

Page 103: Imagem Digital Conceitos, Processamento e Análise

Run-Length Encoding

76 76 76 76 76 78 79 79 79 79 80 80

76 | 5 78 | 1 79 | 4 80 | 2

imagem binária

0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0

7 4

1. . .

5

Page 104: Imagem Digital Conceitos, Processamento e Análise

Compressão do jpeg

Page 105: Imagem Digital Conceitos, Processamento e Análise

Aplicações são tecnologicamente complexas: exemplo: algoritmo do JPEG

FDCT

SourceImage

QuantizerEntropyEncoder

TableTable

Compressedimage data

DCT-based encoding

8x8 blocks

R

BG

Page 106: Imagem Digital Conceitos, Processamento e Análise
Page 107: Imagem Digital Conceitos, Processamento e Análise
Page 108: Imagem Digital Conceitos, Processamento e Análise
Page 109: Imagem Digital Conceitos, Processamento e Análise

Equations for JPEG DCT

• Forward DCT:

• Inverse DCT:

.1, otherwise ;0yfor x, 2

1 where

16

)12(cos

16

)12(cos),(

4

1),(

7

0

7

0

yxyx

x yyx

CCCC

yjxijiSpixelCCyxDCT

.1, otherwise ;0,for 2

1, where

)12(cos

16)12(

cos),(41

),(7

0

7

0

jiji

x yji

CCjiCC

iyjx

jiDCTCCyxpixel

Page 110: Imagem Digital Conceitos, Processamento e Análise

Visualization of Basis Functions

Increasing frequency

Incr

easi

ng

freq

uen

cy

Page 111: Imagem Digital Conceitos, Processamento e Análise

T1 Comparação de cores

int comparaCor(const void * p1, const void * p2) int *c1 = (int *) p1; /* aponta para o byte red da cor 1 */ int *c2 = (int *) p2; /* aponta para o byte red da cor 2 */

/* compara o canal vermelho */ if (*c1 < *c2) return -1; if (*c1 > *c2) return 1;

/* compara o canal verde, uma vez que o vermelho e' igual */ c1++; c2++; if (*c1 < *c2) return -1; if (*c1 > *c2) return 1;

/* compara o canal azul, uma vez que o vermelho e o azul sao iguais */ c1++; c2++; if (*c1 < *c2) return -1; if (*c1 > *c2) return 1;

/* sao iguais */ return 0;

p1 p2

Page 112: Imagem Digital Conceitos, Processamento e Análise

T1 Median Cut

typedef struct int axis; float error; int k0; int k1; float red,green,blue; Cell;

k0 k1