如何在 matlab 中获取图像的哈达玛变换



我有一个 128x128 的涂片图像,我希望找到具有普通哈达玛德、相继性和二元排序的哈达玛变换。

imdata = imread('origim.png'); %Load image
new = rgb2gray(imdata); %Convert to 2D Grayscale
N = 128;
H = hadamard(N);                      % Hadamard matrix
y = fwht(new,N,'sequency') %Perform Fast-walsh-hadamard-transform with order 128
imshow(y); %Display image transform

我可能做错了,但是如果我正确理解 matlab walch 变换,y 应该是转换后的图像。当我尝试运行它时,我收到错误y = fwht(new,N,'sequency')

在处理之前,将图像转换为双精度。然后输入分号 (;)在 y = fwht(new,N,'sequency')的末尾。然后你会得到转换后的图像。只需尝试以下代码。

imdata = imread('peppers.png'); %Load image
new = rgb2gray(imdata); %Convert to 2D Grayscale
neww = im2double(new);
N = 128;
H = hadamard(N);                      % Hadamard matrix
y = fwht(neww,N,'sequency'); %Perform Fast-walsh-hadamard-transform with order 128
imshow(y); %Display image transform

最新更新