質問

を使用しているMATLABの離散ウェーブレット変換、イメージです。私はこの数倍もの(3)を得るために3つのレベル変換した。を使用してい dwt2 機能によるMATLABのための圧縮 idwt2 の圧縮解除.問題はわからないのでどのように解凍に数回して、適用 idwt2 時に前受けた出力としてマトリクスを返す.たとえば:

x = idwt2(scaled3, vertical3, horizontal3, diagonal3, Lo_R, Ho_R);

どう idwt2 適用されるx?

役に立ちましたか?

解決

み、ドキュメント dwt2idwt2, こす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);

がついているもののようなこと:

enter image description here

それでは、再構築!次のコードを"フル"復興を すべての の詳細を係数行列)、"部分的な復興"を なし のであることを検証することがプロット図の画像:

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);

enter image description here

通知のオリジナル(左上)と、"復興"(右上)を見て区別がついているのが、部分的な復興"(左)はドット絵.に違いないとの厳しい場合はその少ない分解手順のように、わずか1または2.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top