Me encontré con esta increíble respuesta Applying MATLAB's idwt2
several times que ejecuté para entenderlo por mí mismo. Sin embargo, no puedo obtener la forma de usar el mismo con el trabajo con una imagen RGB. Entonces, tengo 3 preguntas.Transformada Wavelet para N dimensiones
¿Cómo el código puede aplicar a una imagen RGB sólo con la imagen transformada se muestra en la salida que es junto con los componentes de alta y baja frecuencia a lo largo de la fila y la columna, es posible ver la fusión de todo los componentes como una sola imagen? Soy consciente de que tengo que poner el operador de gato, pero no puedo entender cómo hacerlo.
En segundo lugar, ¡también estoy obteniendo una imagen mazed! Estoy perplejo ya que no puedo seguir el motivo. También he adjuntado el mismo código con la declaración que muestra cómo se ha generado esta imagen.
3. ¿Qué significa el término
db1
en la firma de función dedwt
?
CÓDIGO:
load woman; % Load image data
%startImage=imread('pic_rgb.jpg'); % IF I WANT TO WORK WITH RGB IMAGE
nLevel = 3; % Number of decompositions
nColors = size(map,1); % Number of colors in colormap
cA = cell(1,nLevel); % Approximation coefficients
cH = cell(1,nLevel); % Horizontal detail coefficients
cV = cell(1,nLevel); % Vertical detail coefficients
cD = cell(1,nLevel); % Diagonal detail coefficients
startImage = X;
for iLevel = 1:nLevel,
[cA{iLevel},cH{iLevel},cV{iLevel},cD{iLevel}] = dwt2(startImage,'db1');
startImage = cA{iLevel};
end
figure;colormap(map);
imagesc(dwt2(startImage,'db1')); %THIS GIVES THE MAZED IMAGE INSTEAD OF THE TRANSFORMED IMAGE
figure;
tiledImage = wcodemat(cA{nLevel},nColors);
for iLevel = nLevel:-1:1,
tiledImage = [tiledImage wcodemat(cH{iLevel},nColors); ...
wcodemat(cV{iLevel},nColors) wcodemat(cD{iLevel},nColors)];
end
figure;
imshow(tiledImage,map);
%reconstruct
fullRecon = cA{nLevel};
for iLevel = nLevel:-1:1,
fullRecon = idwt2(fullRecon,cH{iLevel},cV{iLevel},cD{iLevel},'db1');
end
partialRecon = cA{nLevel};
for iLevel = nLevel:-1:1,
partialRecon = idwt2(partialRecon,[],[],[],'db1');
end
figure;
imshow([X fullRecon; partialRecon zeros(size(X))],map,...
'InitialMagnification',50);
no ¿ya esta pregunta el día de hoy? Ya no veo la pregunta original, ¿la eliminaste y volviste a publicarla o algo por el estilo? –
Sí, claro que sí y pasó desapercibido y sin respuesta durante todo el día. Entonces, supuse que podría volver a publicarlo para resaltarlo. Hubiera sido de gran ayuda si al menos pudieras hacer malabarismos con algunas respuestas en lugar de volver a editarlas nuevamente, aunque mantuve intacta tu versión editada anterior. ¡Gracias por el esfuerzo adicional! –
Todo lo que hice fue corregir las etiquetas; no edité la pregunta en sí. Para referencia futura, debe tratar de mejorar la pregunta original si no obtiene ninguna respuesta, en lugar de volver a publicarla. –