亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(guān)于matlab圖像濾波詳解(二維傅里葉濾波)

 更新時(shí)間:2023年02月20日 10:33:50   作者:袁德波  
這篇文章主要介紹了關(guān)于matlab圖像濾波詳解(二維傅里葉濾波),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

matlab圖像濾波詳解(二維傅里葉濾波)

在matlab中,圖像濾波有很多中

  • 比如平滑濾波(smooth()函數(shù))
  • 中值濾波medfilt2()函數(shù))

這些相對(duì)簡(jiǎn)單,可以直接參考函數(shù)解釋,不做詳細(xì)解說(shuō)

這里重點(diǎn)講解一下傅里葉濾波,在matlab中,常用的為快速傅里葉變換。進(jìn)行濾波的難點(diǎn)就在于如何將圖像轉(zhuǎn)換到頻率域以及如何將頻率域的圖像逆變換為空間域中的圖像

第一步:讀取圖像并對(duì)圖像進(jìn)行傅里葉變換

Path='images.jpg';
im=imread(Path);
img=rgb2gray(im);%將彩色圖變成二維灰度圖圖像
img2=double(img);%將數(shù)據(jù)改成double類型,方便進(jìn)行數(shù)據(jù)變換
subplot(131)
imshow(img);
title('原始圖像')
f=fft2(img2);

此時(shí),f為圖像的二維頻譜,但是此時(shí)的零頻分量并不在中間,如果直接進(jìn)行顯示的話,會(huì)出現(xiàn)如下結(jié)果(見左圖),matlab提供ffishift()函數(shù),可以將圖像零頻分量移到中間

代碼見下:

subplot(121)
imshow(log(abs(f)+1),[]);%直接顯示圖像,未移動(dòng)零頻分量
title('未移動(dòng)零頻分量頻譜圖')
 
subplot(122)
f2=fftshift(f);
imshow(log(abs(f2)+1),[]);%直接顯示圖像,未移動(dòng)零頻分量
title('移動(dòng)零頻分量頻譜圖')

這里有人肯定會(huì)疑問(wèn) log(abs(f)+1)中為什么要+1,不加也行,就是為了畫圖的時(shí)候,讓f為零 log(abs(f)+1),不加1的話 log(abs(f))會(huì)很大,圖像不好看

結(jié)果如下

第二步:濾波

濾波分為低通、高通、帶通、帶阻、高斯低通、高低高通濾波,其本質(zhì)就是令頻譜F乘以濾波器H,針對(duì)不同的濾波器,H不同

低通濾波器【D(u,v)表示點(diǎn)(u,v)到中心的距離】

在此我們以高斯低通濾波器為例,利用matlab設(shè)計(jì)濾波器(設(shè)D0為10)

D0=10;
[M,N]=size(f2);
m=floor(M/2);
n=floor(N/2);%(n,m)為中心點(diǎn)
for i=1:M
    for j=1:N
        D=sqrt((i-m)^2+(j-n)^2);
        H(i,j)=exp(-1/2*D^2/D0^2);
    end
end
figure
subplot(121)
imshow(H);
title('高斯低通濾波器')

濾波器與頻譜相乘,即得到濾波后的頻譜

subplot(122)
f3=f2.*H;
imshow(log(abs(f3)+1),[])       
title('濾波后的頻譜')

結(jié)果如下

第三步:傅里葉逆變換

進(jìn)行逆變換時(shí),要先將頻譜移動(dòng)回原位置,即通過(guò)ifftshift( )函數(shù)實(shí)現(xiàn),代碼如下

img3 = (ifft2(ifftshift(f3)));
img4 = uint8(real(img3));%real函數(shù)表示留下復(fù)數(shù)的實(shí)部
figure
subplot(121)
imshow(img);
title('原圖');
subplot(122)
imshow(img4);
title('逆變換');

結(jié)果如下

這里要注意的是逆變換后的img3為復(fù)數(shù),要?jiǎng)h除虛數(shù)部分,并轉(zhuǎn)換成uint8圖像格式數(shù)據(jù)才能用imshow顯示

總結(jié)

1. 其他濾波器原理只要在H函數(shù)定義部分稍微改動(dòng)一下即可           

2. 不必過(guò)多糾結(jié)log(abs(f3)+1)為什么取對(duì)數(shù)以及為何加1,只是單純的為了顯示更加直觀

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python?魔法方法之?__?slots?__的實(shí)現(xiàn)

    python?魔法方法之?__?slots?__的實(shí)現(xiàn)

    本文主要介紹了python?魔法方法之?__?slots?__的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python自動(dòng)化運(yùn)維之Telnetlib的具體使用

    python自動(dòng)化運(yùn)維之Telnetlib的具體使用

    本文將結(jié)合實(shí)例代碼,介紹python自動(dòng)化運(yùn)維之Telnetlib的具體使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 在Pycharm中調(diào)試Django項(xiàng)目程序的操作方法

    在Pycharm中調(diào)試Django項(xiàng)目程序的操作方法

    今天小編就為大家分享一篇在Pycharm中調(diào)試Django項(xiàng)目程序的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • python獲取當(dāng)前時(shí)間對(duì)應(yīng)unix時(shí)間戳的方法

    python獲取當(dāng)前時(shí)間對(duì)應(yīng)unix時(shí)間戳的方法

    這篇文章主要介紹了python獲取當(dāng)前時(shí)間對(duì)應(yīng)unix時(shí)間戳的方法,涉及Python時(shí)間操作的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • Python?庫(kù)?PySimpleGUI?制作自動(dòng)化辦公小軟件的方法

    Python?庫(kù)?PySimpleGUI?制作自動(dòng)化辦公小軟件的方法

    Python?在運(yùn)維和辦公自動(dòng)化中扮演著重要的角色,PySimpleGUI?是一款很棒的自動(dòng)化輔助模塊,讓你更輕松的實(shí)現(xiàn)日常任務(wù)的自動(dòng)化,下面通過(guò)本文給大家介紹下Python?庫(kù)?PySimpleGUI?制作自動(dòng)化辦公小軟件的過(guò)程,一起看看吧
    2021-12-12
  • 詳解python的ORM中Pony用法

    詳解python的ORM中Pony用法

    本篇文章給大家詳細(xì)介紹了python的ORM中Pony用法以及詳細(xì)代碼分享,對(duì)此有需要的朋友測(cè)試參考下。
    2018-02-02
  • 淺析Python的命名空間與作用域

    淺析Python的命名空間與作用域

    這篇文章主要介紹了Python的命名空間與作用域的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • django session完成狀態(tài)保持的方法

    django session完成狀態(tài)保持的方法

    這篇文章主要介紹了django session完成狀態(tài)保持的方法,使用登錄頁(yè)面演示session的狀態(tài)保持功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 使用Matplotlib創(chuàng)建漂亮的數(shù)據(jù)可視化圖表

    使用Matplotlib創(chuàng)建漂亮的數(shù)據(jù)可視化圖表

    在 Python 中,Matplotlib 是一個(gè)強(qiáng)大而靈活的工具,可以用來(lái)創(chuàng)建各種類型的數(shù)據(jù)可視化圖表,本文給大家介紹了如何使用Matplotlib創(chuàng)建漂亮的數(shù)據(jù)可視化圖表,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • 淺談Python類的__getitem__和__setitem__特殊方法

    淺談Python類的__getitem__和__setitem__特殊方法

    下面小編就為大家?guī)?lái)一篇淺談Python類的__getitem__和__setitem__特殊方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12

最新評(píng)論