天天看點

圖像處理 二維離散傅裡葉變換DFT matlab代碼圖像處理領域離散傅裡葉變換的作用二維離散傅裡葉變換matlab代碼

圖像處理 二維離散傅裡葉變換DFT matlab代碼

  • 圖像處理領域離散傅裡葉變換的作用
  • 二維離散傅裡葉變換
            • 二維離散傅裡葉變換公式
            • 将二維的離散傅裡葉變換進行轉化
            • 将系數轉化為矩陣形式
            • 注意,從矩陣的乘積i形式可以看出,原來是N個值,輸出後依然是N個值,而且要注意,輸出的N個值的每一個值和輸入得每一個值都有關系。換句話說,輸出的F(0),F(1),F(2)....F(N),之中的每一個值,比如F(1),都需要,輸入的所有值做貢獻。
            • f(x)的全部值對離散的傅氏變換四項中的每一項都産生影響。反之亦然。
  • matlab代碼

圖像處理領域離散傅裡葉變換的作用

将圖像由時空域,轉換為頻域

二維離散傅裡葉變換

二維離散傅裡葉變換公式

圖像處理 二維離散傅裡葉變換DFT matlab代碼圖像處理領域離散傅裡葉變換的作用二維離散傅裡葉變換matlab代碼

将二維的離散傅裡葉變換進行轉化

将不好處理的二維離散傅裡葉變換轉化為進行兩次一維處理

先處理行,再處理列

圖像處理 二維離散傅裡葉變換DFT matlab代碼圖像處理領域離散傅裡葉變換的作用二維離散傅裡葉變換matlab代碼

公式如下:

圖像處理 二維離散傅裡葉變換DFT matlab代碼圖像處理領域離散傅裡葉變換的作用二維離散傅裡葉變換matlab代碼

将系數轉化為矩陣形式

圖像處理 二維離散傅裡葉變換DFT matlab代碼圖像處理領域離散傅裡葉變換的作用二維離散傅裡葉變換matlab代碼

注意,從矩陣的乘積i形式可以看出,原來是N個值,輸出後依然是N個值,而且要注意,輸出的N個值的每一個值和輸入得每一個值都有關系。換句話說,輸出的F(0),F(1),F(2)…F(N),之中的每一個值,比如F(1),都需要,輸入的所有值做貢獻。

f(x)的全部值對離散的傅氏變換四項中的每一項都産生影響。反之亦然。

是以按照剛才将維的思路,進行矩陣的操作。

權值矩陣A,原函數矩陣FF

采用88的DFT操作,對每一個88圖像塊,進行一次操作

matlab代碼

N=8;
A=zeros(N);
for k=0:N-1
    for m=0:N-1
        A(k+1,m+1)=(1/N)*exp(-2*pi*i*(k*m/N));%8*8的 w 的矩陣
    end
end

[Hh,Hw]=size(WYY);
X=ceil(Hw/8)*8;
Y=ceil(Hw/8)*8;
hall_new=zeros(X,Y);
hall_new(1:Hh,1:Hw)=WYY;%把Y分量指派進去
%hall_new(Hh+1:X,1:Hw)=repmat(WYY(Hh,1:Hw),X-Hh,1);
%hall_new(1:Hh,Hw+1:Y)=repmat(WYY(1:Hh,Hw),1,Y-Hw);
m=X/8;%行塊數
n=Y/8;%列塊數
for i1=1:m
     for i2=1:n
         FF=double(hall_new((i1-1)*8+1:i1*8,(i2-1)*8+1:i2*8));%按順序取8*8的每一塊
         BB((i1-1)*8+1:i1*8,(i2-1)*8+1:i2*8)=N*A*FF*A';%DFT變換,變成兩次一次元處理,另一個函數,先處理一行,一行的8個值都會産生影響,以行和列為整體看
         KK((i1-1)*8+1:i1*8,(i2-1)*8+1:i2*8)=A'*BB((i1-1)*8+1:i1*8,(i2-1)*8+1:i2*8)*A;%DFT反變換
     end
end
           

未完待續