clear all; close all; %ako posunut obrazok a potom pomocou korelacie zistit posun? obr= imread('wpeppers.jpg'); image(obr); axis equal ; figure('name','GRAYed'); colormap(gray(256)); obrg=rgb2gray(obr); image(obrg); axis equal; figure('name','Nie Posun'); colormap(gray(256)); posRow=10 posCol=20 OP=obrg(posRow+1:end,posCol+1:end); ONP=obrg(1:(512-posRow),1:(512-posCol)); image(ONP); axis equal; figure('name','Posun'); colormap(gray(256)); image(OP); axis equal; figure('name','Spektrum neposunuteho') ; colormap(gray(256)); SP=fft2(OP); MXSP=max(max(abs(SP))) %NSP=255.0*log(1+abs(SP))/log(1+MXSP); NSP=255.0*abs(SP).^(1/5)/(MXSP^(1/5)); image(NSP); axis equal; figure('name','Diferencny obrazok') ; colormap(gray(256)); DIMG=OP-ONP; image(DIMG); axis equal; figure('name','Spektrum Diferencneho obrazku') ; colormap(gray(256)); DSP=fft2(DIMG); MXSP=max(max(abs(DSP))) %NSP=255.0*log(1+abs(SP))/log(1+MXSP); DNSP=255.0*abs(DSP).^(1/5)/(MXSP^(1/5)); image(DNSP); axis equal; figure('name','Spektrum spektra absolutnej hodnoty Dif. obrazku') ; colormap(gray(256)); DDSP=fft2(DNSP); MXDDSP=max(max(abs(DDSP))) %NSP=255.0*log(1+abs(SP))/log(1+MXSP); NDDSP=255.0*abs(DDSP).^(1/5)/(MXDDSP^(1/5)); %image(NDDSP); axis equal; image(NDDSP(1:64,1:64)); axis equal; if(0) % zaujimaju nas priebehy rezov spektrom? winsize=10 kernel = ones(winsize,1)/winsize; figure('name','Vyhladeny NORMAL Priebeh v smere X') ; plot(conv(NSP(1,:),kernel, 'same')) ; figure('name','Vyhladeny DELTA Priebeh v smere X') ; plot(conv(DNSP(1,:),kernel, 'same')) ; winsize=10 kernel = ones(winsize,1)/winsize; figure('name','Vyhladeny NORMAL Priebeh v diagonale') ; plot(conv(diag(NSP),kernel, 'same')) ; figure('name','Vyhladeny DELTA Priebeh v diagonale') ; plot(conv(diag(DNSP),kernel, 'same')) ; end