ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

idct2

2 次元逆離散コサイン変換

構文

B = idct2(A)
B = idct2(A,m,n)
B = idct2(A,[m n])

説明

B = idct2(A) は、A の 2 次元逆離散コサイン変換 (DCT) を返します。

B = idct2(A,m,n) は変換前に A をゼロ パディングし、mn 列のサイズにします。[m n] < size(A) の場合、idct2 は変換前に A をトリミングします。

B = idct2(A,[m n]) は上記と同じです。

任意の A に対して、idct2(dct2(A)) は、丸め誤差の範囲内で A と等価です。

クラス サポート

入力行列 Adouble クラスまたは任意の数値クラスです。出力行列 Bdouble クラスです。

すべて折りたたむ

この例では、2 次元離散コサイン変換 (DCT) を使用して高周波数をイメージから除去する方法を説明します。

イメージをワークスペースに読み取った後、グレースケールに変換します。

RGB = imread('autumn.tif');
I = rgb2gray(RGB);

関数 dct2 を使用して、グレースケール イメージの 2 次元 DCT を実行します。

J = dct2(I);

対数スケールを使用して、変換後のイメージを表示します。大半のエネルギーが左上隅にあることに注目してください。

figure
imshow(log(abs(J)),[])
colormap(gca,jet(64))
colorbar

DCT 行列内で大きさが 10 未満の値を 0 に設定します。

J(abs(J) < 10) = 0;

逆 DCT 関数 idct2 を使用してイメージを復元します。

K = idct2(J);

元のグレースケール イメージを処理されたイメージと並べて表示します。

figure
imshowpair(I,K,'montage')
title('Original Grayscale Image (Left) and Processed Image (Right)');

アルゴリズム

idct2 は、以下を使用して 2 次元逆 DCT を計算します。

Amn=p=0M1q=0N1αpαqBpqcosπ(2m+1)p2Mcosπ(2n+1)q2N, 0mM10nN1,

ここで、

αp={1M, p=0             2M, 1pM1

および

αq={1N, q=0            2N, 1qN1.

参考文献

[1] Jain, A. K., Fundamentals of Digital Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1989, pp. 150-153.

[2] Pennebaker, W. B., and J. L. Mitchell, JPEG: Still Image Data Compression Standard, New York, Van Nostrand Reinhold, 1993.

参考

| | |

R2006a より前に導入

この情報は役に立ちましたか?