Je suis tombé sur cette étonnante réponse Applying MATLAB's idwt2
several times que j'ai exécutée pour la comprendre moi-même. Cependant, je suis incapable d'obtenir comment utiliser la même chose avec le travail avec une image RVB. Donc, j'ai 3 questions.Transformée en ondelettes pour N dimensions
Comment le code est appliqué à une image RGB avec seulement l'image transformée affichée dans la sortie qui est en même temps que les composantes de fréquence haute et basse le long de rangées et de colonnes, est-il possible de voir la fusion de toutes les composants en tant qu'image unique? Je suis conscient que je dois mettre l'opérateur de chat, mais je ne comprends pas comment s'y prendre.
Deuxièmement, je reçois également une image mazed! Je suis perplexe car je n'arrive pas à suivre la raison. J'ai également joint le même code avec la déclaration montrant comment cette image a été générée.
3.Que signifie le terme
db1
dans la signature de fonction dedwt
?
CODE:
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);
ne vous demande pas déjà plus tôt aujourd'hui? Je ne vois plus la question originale - l'avez-vous supprimée et reprise? –
Oui, bien sûr que je l'ai fait et il est passé inaperçu et sans réponse pour toute la journée. Donc, je devine peut être de le rediffuser pour le mettre en évidence. Cela aurait été d'une grande aide si au moins vous pouviez jongler avec certaines réponses au lieu de les ré-éditer à nouveau, bien que j'avais gardé intacte votre version précédente. Merci pour l'effort supplémentaire! –
Tout ce que j'ai fait était de corriger les tags - je n'ai pas édité la question elle-même. Pour référence future, vous devriez essayer d'améliorer la question initiale si vous n'obtenez aucune réponse, plutôt que de la rediffuser. –