小编bum*_*ync的帖子

使用 1D DCT 的 2D 离散余弦变换

我正在尝试使用 1D DCT 运算对图像实施 2D 离散余弦变换。如果我将其与dct2MATLAB 函数进行比较,我的输出是不正确的。我不明白我的代码出了什么问题以及发生在哪里。

如果有人可以指出错误或任何其他建议,那将非常有帮助。

这是我用 MATLAB 编写的代码

% main function
signal=rand(100);
signal_dct=myDCT(signal);
figure; imshow((signal_dct));

% function to calculate 2D DCT of an image
function res=myDCT(signal)

    signal=double(signal);

    l=size(signal,1);

    res=zeros(l);  %initialize the final result matrix

    for k=1:l     %calculate 1D DCT of each row of image
        res(k,:)=mdct(signal(k,:));  
    end

    for k=1:l   %calculate 1D DCT of each column of image
        res(:,k)=mdct(res(:,k));
    end
end

%% function to calculate 1D DFT of a 1D signal
function res=mdct(signal)

    l=size(signal,1);

    for i=1:l

        if …
Run Code Online (Sandbox Code Playgroud)

matlab signal-processing image-processing dct

4
推荐指数
1
解决办法
5817
查看次数

标签 统计

dct ×1

image-processing ×1

matlab ×1

signal-processing ×1