문제

Matlab을 사용하여 이미지에 이산 웨이블릿 변환을 적용하고 있습니다. 3 레벨 변환을 얻기 위해 여러 번 (3) 적용하고 있습니다. 나는 그것을 사용하고있다 dwt2 압축을 위해 MATLAB에서 제공하는 기능 idwt2 감압을 만들기 위해. 문제는 적용되는 것처럼 여러 번 압축을 피우는 방법을 모른다는 것입니다. idwt2 행렬을 반환하면 이전 수신 출력에 여러 번. 예를 들어 :

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

어떻게해야합니다 idwt2 x에 적용합니까?

도움이 되었습니까?

해결책

문서를보고 있습니다 dwt2 그리고 idwt2, 곱하기 이미지를 재구성하기위한 두 가지 일반적인 옵션이있는 것으로 보입니다.

  • 각 분해 단계에서 수평, 수직 및 대각선 세부 계수 매트릭스를 모두 저장하고 재구성에 사용하십시오.
  • 빈 행렬을 입력하십시오 ([]) 이전 분해 단계에서 저장하지 않은 세부 계수 행렬의 경우.

느린 날 이었으므로 여기 에이 작업을 수행하는 방법과 각 사례에 대한 결과가 어떻게 보이는지 보여주는 코드가 있습니다 ...

먼저 샘플 이미지를로드하고 일부 변수를 초기화합니다.

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