DCT and DST (+ inverse) in arbitrary dimension
Y = DCTN(X) returns the discrete cosine transform (DCT) of X.
X = IDCTN(Y) returns the inverse discrete cosine transform (IDCT) of Y.
Y = DSTN(X) returns the discrete sine transform (DST) of X.
X = IDSTN(Y) returns the inverse discrete sine transform (IDST) of Y.
X and Y can be N-dimensional.
D = DSTMTX(k) returns the k-by-k DST transform matrix.
Faster DCT2 and IDCT2 are also included in the zip file.
Enter "help dctn", "help dstn", "help idctn", "help idstn" and "help dstmtx" in the Matlab command window for complete information.
Example
-------
RGB = imread('autumn.tif');
I = rgb2gray(RGB);
J = dstn(I);
imshow(log(abs(J)),[]), colormap(jet), colorbar
The commands below set values less than magnitude 10 in the DST matrix to zero, then reconstruct the image using the inverse DST.
J(abs(J)<10) = 0;
K = idstn(J);
figure, imshow(I)
figure, imshow(K,[0 255])
------
http://www.biomecardio.com/matlab
-----
Cite As
Damien Garcia (2024). DCT and DST (+ inverse) in arbitrary dimension (https://www.mathworks.com/matlabcentral/fileexchange/26040-dct-and-dst-inverse-in-arbitrary-dimension), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- Signal Processing > Signal Processing Toolbox > Transforms, Correlation, and Modeling > Transforms > Discrete Fourier and Cosine Transforms >
- Image Processing and Computer Vision > Image Processing Toolbox > Image Segmentation and Analysis > Image Transforms >
Tags
Acknowledgements
Inspired: PCG_unwrap_2D(ph_nii, ph_file, mask_nii, max_iter, epsi_con, N)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.