【发布时间】:2011-07-20 17:50:57
【问题描述】:
我遇到了这个惊人的回复Applying MATLAB's idwt2 several times,我自己执行了它来理解它。但是,我无法了解如何将其用于处理 RGB 图像。所以,我有 3 个问题。
如何将代码应用于RGB图像,输出中仅显示转换后的图像以及沿行和列的高低频分量,是否可以查看所有图像的融合组件作为单个图像?我知道我必须使用 cat 运算符,但我不明白该怎么做。
-
其次,我也得到了一个迷宫图像!我很困惑,因为我似乎无法理解原因。我还附上了相同的代码以及说明如何生成此图像的语句。
3.
dwt的函数签名中的db1是什么意思?
代码:
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);
【问题讨论】:
-
你今天早些时候不是已经问过这个了吗?我再也看不到原来的问题了 - 你删除它并重新发布还是什么?
-
是的,我确实做到了,但一整天都没有引起注意和答复。所以,我猜可能是再次转发它以突出它。我如果至少你可以弄出一些答案而不是重新编辑它,那将会有很大的帮助,尽管我保持你之前编辑的版本完好无损。感谢您的付出!
-
我所做的只是修复标签 - 我没有编辑问题本身。为了将来参考,如果您没有得到任何回复,您应该尝试改进原始问题,而不是重新发布。
-
@RiaGeorge 我删除了有关上传图像的信誉要求的文字。现在你有足够的声望,请上传它。如果您在任何时候都没有足够的声誉来上传图片,请无论如何添加链接,并且有足够声誉的人会为您编辑它。
标签: matlab image-processing wavelet