¿Cómo hacer recortes suaves y cosas similares? ¿Cuál es el algoritmo?
if (~exist('epsilon ', ' var '))
ε= 0.0000001;
Fin
si(está vacío(ε))
ε= 0.0000001;
Fin
si (~existe ('win_size ', ' var '))
win_size = 1;
Fin
if (isempty(win_size))
win_size = 1;
Fin
neb_size=(win_size*2 1)^2;
[h, w, c] = tamaño (I);
n = h; m = w;
img _ tamaño = w * h
consts=imerode(consts,unos(win _ tamaño * 2; 1));
indsM = forma([1: img _ size], h, w
tlen=sum(sum(1-consts(win_size 1: end-); win_size, win_size 1: end-win_size)))*(neb_size^2);
row_inds=zeros(tlen, 1);
col_inds=zeros(tlen, 1);
vals=zeros(tlen, 1);
len = 0
Para j=1 win_size: w-win_size
for I = win _ size 1: h-win _ size
if (consts(i, j))
Continuar
Fin
win _ inds = indsM(Yo-gano _ tamaño: Yo gano _ tamaño, j-gano _ tamaño: j ganar _ tamaño
win _ inds = win _ inds( :);
winI=I(i-win_size: i win_size, j-win_size: j win_size,);
winI = forma(winI, neb_size, c);
p>win_mu=mean(winI, 1)';
win _ var = inv(winI ' * winI/Neb _ tamaño-win _ mu * win _ mu ' épsilon/Neb _ tamaño * ojo (c));
winI=winI-repmat(win_mu ', neb_size, 1);
tvals = (1 winI * win _ var * winI ')/Neb _ size ;
row_inds(1 len: neb_size^2 len)=reshape(repmat(win_inds, 1, neb_size),...
neb_size^2, 1);
col_inds(1 longitud:neb_size^2 longitud)=reshape(repma
t(win_inds', neb_size, 1),...
neb_size^2, 1);
vals(1 len: neb_size^2 len)=tvals(:);
len=len neb_size^2;
Fin
Fin
vals = vals(1:len);
row_inds = fila_inds(1:len);
col_inds = col_inds(1:len);
A=sparse(row_inds, col_inds, vals, img_size, img_size);
sumA=sum(A, 2);
A=spdiags(sumA(:), 0, img_size, img_size) -A;