適用MATLABのidwt2数回
-
12-09-2019 - |
質問
を使用しているMATLABの離散ウェーブレット変換、イメージです。私はこの数倍もの(3)を得るために3つのレベル変換した。を使用してい dwt2
機能によるMATLABのための圧縮 idwt2
の圧縮解除.問題はわからないのでどのように解凍に数回して、適用 idwt2
時に前受けた出力としてマトリクスを返す.たとえば:
x = idwt2(scaled3, vertical3, horizontal3, diagonal3, Lo_R, Ho_R);
どう idwt2
適用されるx?
解決
み、ドキュメント dwt2
や idwt2
, こす2つの一般オプションの再構築をお掛け-分解画像:
- 店内の全ての縦-横、斜めの詳細な係数行列の各分解段階で、自分だけの復興です。
- 入力空のマトリックス(
[]
正に詳細な係数行列となんでしょうか保存から分解ます。
てゆっくりとした日、一部のコードを示していますの結果のように見えたそれぞれの場合...
まず、荷重サンプル画像および初期化の一部変数
load woman; % Load image data
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
現在の分解(この場合は3メモリカード取扱説明書別紙"の係数行列からの各ステップに細胞の配列:
startImage = X;
for iLevel = 1:nLevel,
[cA{iLevel}, cH{iLevel}, cV{iLevel}, cD{iLevel}] = dwt2(startImage, 'db1');
startImage = cA{iLevel};
end
の最終分解画像のように見え、全ての係数行列には、次のコマンドを実行コードを用い wcodemat
):
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);
がついているもののようなこと:
それでは、再構築!次のコードを"フル"復興を すべての の詳細を係数行列)、"部分的な復興"を なし のであることを検証することがプロット図の画像:
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);
通知のオリジナル(左上)と、"復興"(右上)を見て区別がついているのが、部分的な復興"(左)はドット絵.に違いないとの厳しい場合はその少ない分解手順のように、わずか1または2.
所属していません StackOverflow