Cómo descomponer el contorno de una imagen
Las funciones de este kit de herramientas se pueden llamar directamente en MATLAB, pero no se puede utilizar la Ayuda para ver cómo usarlas.
borrar todo;
clc;
Establecer parámetros
filt = '9-7'; Seleccionar filtro de descomposición LP
p>
dfilt = 'pkva'; Seleccionar filtro de descomposición DFB
nlevs = [0, 0, 4, 4, 5] Número de niveles DFB en cada nivel de pirámide; p>
nlevs: vector de niveles de descomposición del grupo de filtros direccionales para cada nivel de pirámide (grueso a fino)
.
th = 3; da como resultado una eliminación de ruido del umbral 3*sigma
rho=3;
Cargar imagen
im = imread(' lena512.bmp');
im = double(im)/256;
sig = std(im(:));
sigma = sig / rho;
Transformación de contorno pequeña
Descomposición
y = pdfbdec(im, pfilt, dfilt, nlevs);
[c, s] = pdfb2vec( y);
nvar = pdfb_nest(tamaño(im, 1), tamaño(im, 2), pfilt, dfilt, nstd = pdfb_nest(nrows, ncols, pfilt, dfilt, nlevs)
cth = th * sigma * sqrt(nvar);
Procesamiento de coeficientes
c = c .* (abs(c) gt; cth);
Reconstrucción
y = vec2pdfb(c, s);
cim = pdfbrec(y, pfilt, dfilt);
Mostrar imagen
rango = [0, 1];
mapa de colores (gris
subtrama(1, 1, 1), imágenesc(cim); (41:168, 181:308), rango); imagen del eje desactivada
colormap(gray);
set(gca, 'FontSize', 8);
título('Descomposición de contornos', 'Tamaño de fuente', 10)