日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

图像处理-小波变换

發(fā)布時(shí)間:2023/12/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像处理-小波变换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? 小波指的是一種能量在時(shí)域非常集中的波,它的能量有限,都集中在某一點(diǎn)附近,而且積分的值為零,這說(shuō)明它與傅里葉波一樣是正交波。

????圖像的傅里葉變換是將圖像信號(hào)分解為各種不同頻率的正弦波。同樣,小波變換是將圖像信號(hào)分解為由原始小波位移和縮放之后的一組小波。小波在圖像處理里被稱為圖像顯微鏡,原因在于它的多分辨率分解能力可以將圖片信息一層一層分解剝離開(kāi)來(lái)。剝離的手段就是通過(guò)低通和高通濾波器。

? ? ?小波變換可以和傅里葉變換結(jié)合起來(lái)理解。傅里葉變換是用一系列不同頻率的正余弦函數(shù)去分解原函數(shù),變換后得到是原函數(shù)在正余弦不同頻率下的系數(shù)。小波變換使用一系列的不同尺度的小波去分解原函數(shù),變換后得到的是原函數(shù)在不同尺度小波下的系數(shù)。不同的小波通過(guò)平移與尺度變換分解,平移是為了得到原函數(shù)的時(shí)間特性,尺度變換是為了得到原函數(shù)的頻率特性。

小波變換步驟:

1.把小波w(t)和原函數(shù)f(t)的開(kāi)始部分進(jìn)行比較,計(jì)算系數(shù)C。系數(shù)C表示該部分函數(shù)與小波的相似程度。

2.把小波向右移k單位,得到小波w(t-k),重復(fù)1。重復(fù)該步驟直至函數(shù)f結(jié)束.

3.擴(kuò)展小波w(t),得到小波w(t/2),重復(fù)步驟1,2.

4.不斷擴(kuò)展小波,重復(fù)1,2,3.

haar小波:

我這里使用的haar小波,縮放函數(shù)是[1 1],小波函數(shù)是[1 -1]。是最簡(jiǎn)單的小波了。

圖像二維離散小波變換 :

? ? ?圖像的二維離散小波分解和重構(gòu)過(guò)程如下圖所示,分解過(guò)程可描述為:首先對(duì)圖像的每一行進(jìn)行 1D-DWT,獲得原始圖像在水平方向上的低頻分量 L 和高頻分量 H,然后對(duì)變換所得數(shù)據(jù)的每一列進(jìn)行 1D-DWT,獲得原始圖像在水平和垂直方向上的低頻分量 LL、水平方向上的低頻和垂直方向上的高頻 LH、水平方向上的高頻和垂直方向上的低頻 HL 以及水平和垂直方向上的的高頻分量 HH。

? ? 重構(gòu)過(guò)程可描述為:首先對(duì)變換結(jié)果的每一列進(jìn)行以為離散小波逆變換,再對(duì)變換所得數(shù)據(jù)的每一行進(jìn)行一維離散小波逆變換,即可獲得重構(gòu)圖像。由上述過(guò)程可以看出,圖像的小波分解是一個(gè)將信號(hào)按照低頻和有向高頻進(jìn)行分離的過(guò)程,分解過(guò)程中還可以根據(jù)需要對(duì)得到的 LL 分量進(jìn)行進(jìn)一步的小波分解,直至達(dá)到要求。

對(duì)于二維圖像Haar變換不再?gòu)囊粋€(gè)方向進(jìn)行濾波,而是從水平和豎直兩個(gè)方向進(jìn)行低通和高通濾波(水平和豎直先后不影響),用圖像表述如圖所示:圖中a表示原圖,圖b表示經(jīng)過(guò)一級(jí)小波變換的結(jié)果,h1?表示水平反向的細(xì)節(jié),v1?表示豎直方向的細(xì)節(jié),c1表示對(duì)角線方向的細(xì)節(jié),b表示下2采樣的圖像。圖c中表示繼續(xù)進(jìn)行Haar小波變換。一級(jí)Haar小波變換實(shí)際效果如圖3所示

? ? ? ? ? ? ? ? ? ? ???

matlab實(shí)例

小波去噪實(shí)現(xiàn)步驟:

(1)二維信號(hào)的小波分解。選擇一個(gè)小波和小波分解的層次N,然后計(jì)算信號(hào)s到第N層的分解。
(2)對(duì)高頻系數(shù)進(jìn)行閾值量化。對(duì)于從1~N的每一層,選擇一個(gè)閾值,并對(duì)這一層的高頻系數(shù)進(jìn)行軟閾值量化處理。
(3)二維小波重構(gòu)。根據(jù)小波分解的第N層的低頻系數(shù)和經(jīng)過(guò)修改的從第一層到第N的各層高頻系數(shù),計(jì)算二維信號(hào)的小波重構(gòu)

Matlab函數(shù)介紹

1、dwt2是二維單尺度小波變換,其可以通過(guò)指定小波或者分解濾波器進(jìn)行二維單尺度小波分解。DWT2的一種語(yǔ)法格式:[cA,cH,cV,cD]=dwt2(X,'wname');也就是說(shuō)DWT2只能對(duì)某個(gè)輸入矩陣X進(jìn)行一次分解。

[cA1, cH1, cV1, cD1] = dwt2(I_noise, 'haar'); figure subplot(221), imshow(cA1, []); subplot(222), imshow(cH1, []); subplot(223), imshow(cV1, []); subplot(224), imshow(cD1, []);

?

可以看出,第一張圖是圖像的近似,相當(dāng)于圖像的低頻部分,而其它三張圖是圖像的輪廓,也就是水平,垂直和對(duì)角三個(gè)方向的細(xì)節(jié)。是圖像的高頻部分。至此,各變量的維數(shù)如下所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

2、wavedec2函數(shù)

? ? ?該函數(shù)用于對(duì)多尺度二維小波進(jìn)行分解,其常用調(diào)用格式:[C,S] = wavedec2(X,N,'wname'):

  • X:要進(jìn)行小波分解的圖像;?
  • N :指定分解的層數(shù);?
  • wname:指定用什么小波基進(jìn)行分解。?
  • 輸出:?
  • c:為各層分解系數(shù);?
  • s: 各層分解系數(shù)長(zhǎng)度,也就是大小。

用小波函數(shù)wname對(duì)信號(hào)X在尺度N上的二維分解,其中N為大于1的正整數(shù)??梢詫?duì)輸入矩陣X進(jìn)行N次分解。C代表分解系數(shù)的組合,是一個(gè)向量:? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ?C的大小為 [1,img_height×img_width];A(N)是圖像第N層的近似表示,尺度最小,在金字塔中就是每層的下采樣的圖像,而H、V、D分別表示圖像的水平高頻分量,垂直高頻分量,對(duì)角高頻分量。正如我們?cè)诮鹱炙拍钪兴私獾?#xff0c;在第N-1層下采樣到N層,N層的圖像維度(尺度)是變小了,也就意味著在下采樣過(guò)程中丟失了信息,而這些丟失的信息實(shí)質(zhì)是高頻信息,那么這些信息在小波分解中可以通過(guò)HVD這些高頻分量來(lái)保存。?
? ? 這里貼上小波分解之后的結(jié)果圖,直觀地感受一下。這里對(duì)原始圖像進(jìn)行三層小波分解。紅框a表示的就是近似圖像。
?

? ? 需要指出的是,每一次的小波分解都是在近似圖像上進(jìn)行分解。S 是儲(chǔ)存各層分解系數(shù)長(zhǎng)度的,即第一行是A(N)的長(zhǎng)度,第二行是H(N)|V(N)|D(N)|的長(zhǎng)度,第三行是?H(N-1)|V(N-1)|D(N-1)的長(zhǎng)度,倒數(shù)第二行是H(1)|V(1)|D(1)長(zhǎng)度,最后一行是原始圖像img的長(zhǎng)度(大小)。?這里原始圖像是512×512,并進(jìn)行了3層的小波分解。對(duì)應(yīng)的s內(nèi)容如下圖:?
??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

S表示每一層分解結(jié)果的維數(shù),如果進(jìn)行n層小波分解,S 的大小是(n+1)*2,最后一行表示的是原始圖像的size。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

3、wdcbm2函數(shù)

? ? ?[thr,nkeep] = wdcbm2(c,s,alpha,m) 返回與level相關(guān)的閾值thr和要保持的系數(shù)數(shù)NKEEP,?函數(shù)用于去噪或壓縮。使用基于Birge-Massart策略的小波系數(shù)選擇規(guī)則獲得thr。通常,alpha= 1.5用于壓縮,alpha= 3用于去噪。使用wdcbm2選擇各層的獨(dú)立閾值。

? ? ?[C,S]是要由wavedec2函數(shù)得到的進(jìn)行去噪或壓縮的圖像的小波分解結(jié)構(gòu),level?j = size(S,1)-2.

? ? THR是3*j的矩陣,THR(:,j)包含對(duì)于level j情況下,水平,對(duì)角線和垂直三個(gè)方向的閾值。 NKEEP是長(zhǎng)度為j的向量,NKEEP(j)包含要保持在級(jí)別j情況下系數(shù)的數(shù)量。

j,M和ALPHA定義策略:

  • 在j + 1級(jí)(和更粗略的級(jí)別),一切都保留。
  • 對(duì)于從1到j(luò)的級(jí)別i,n_i最大系數(shù)保持為n_i = M /(j + 2-i)^ ALPHA。
  • M的默認(rèn)值是M = prod(S(1,:))最粗近似系數(shù)的數(shù)量。
  • 4、wdencmp函數(shù)

    ? ? [XC,CXC,LXC,PERF0,PERFL2] = wdencmp('lvd',C,S,'wname',N,THR,SORH)?
    ??????函數(shù)wdencmp用于一維或二維信號(hào)的消噪或壓縮。wname是所用的小波函數(shù),gbl(global的縮寫(xiě))表示每層都采用同一個(gè)閾值進(jìn)行處理,lvd表示每層用不同的閾值進(jìn)行處理,N表示小波分解的層數(shù),THR為閾值3*N,SORH表示選擇軟閾值還是硬閾值(分別取為’s’和’h’),XC是消噪或壓縮后的信號(hào),[CXC,LXC]是XC的小波分解結(jié)構(gòu),PERF0和PERFL2是恢復(fù)和壓縮L^2的范數(shù)百分比, 是用百分制表明降噪或壓縮所保留的能量成分。

    5、wrcoef2函數(shù)

    ? ?wrcoef2函數(shù)是用來(lái)重建一幅圖像的系數(shù),其實(shí)就是根據(jù)小波分解之后的系數(shù)c來(lái)重建其對(duì)應(yīng)的圖像。重建好的圖像的尺度與原始圖像一致。即無(wú)論你要重構(gòu)哪個(gè)層的系數(shù),最終它的維度都是和原始圖像的尺度一致。其調(diào)用形式如下:?
    ? ? ? ? X = wrcoef2(‘type’,c,s,’wname’,N)?

    • type :指定要進(jìn)行重構(gòu)的小波系數(shù),如a –近似圖像 ;h – 水平高頻分量;v – 垂直高頻分量;d–對(duì)角高?
    • 頻分量;?
    • c: 是小波分解函數(shù)wavedec2分解的小波系數(shù);?
    • s: 是wavedec2分解形成的尺度;?
    • wname :指定小波基;?
    • N :指定重構(gòu)的小波系數(shù)所在的層。?默認(rèn)重構(gòu)最大層的系數(shù),N = size(S,1)-2。N所指的層數(shù)是如何表示的?比如將圖像小波分解成3層,那么N = 3是代表256×256那一層,還是64×64那一層?N=3 代表的是64×64那一層

    wrcoef2 的過(guò)程就相當(dāng)于 appcoef2 或者 detcoef2 (抽取系數(shù))后再進(jìn)行 upcoef2(重構(gòu))。

    clear; close all;file = 'lena_gray_512.tif'; img = imread(file); img = double(img); % 對(duì)圖像進(jìn)行3層的小波分解 N = 3; % 設(shè)置分解層數(shù) [c,s] = wavedec2(img,N,'db1');% 對(duì)各層的近似圖像a進(jìn)行重構(gòu) a1 = wrcoef2('a',c,s,'db1',1); a2 = wrcoef2('a',c,s,'db1',2); a3 = wrcoef2('a',c,s,'db1',3);

    6、appcoef2 函數(shù)

    appcoef2適用于2維圖像,其主要是為了提取小波分解中形成的近似圖像,即低頻分量。?
    ?A = appcoef2(c,s,’wname’,N)??

    • c:小波分解的小波系數(shù)?
    • s:小波分解的對(duì)應(yīng)尺度?
    • wname :指定小波基?
    • N :指定小波系數(shù)所在的層數(shù)?

    7、detcoef2

    函數(shù)detcoef2 用來(lái)對(duì)二維離散小波變換的高頻部分系數(shù)進(jìn)行提取。?其調(diào)用形式為:?
    D = detcoef2(O,c,s,N)??

    • O:指定提取哪個(gè)高頻分量,取值分別為:’h’ –水平高頻 or ‘v’ – 垂直高頻 or ‘d’ – 對(duì)角高頻;?
    • c:小波系數(shù)矩陣;?
    • s:尺度矩陣;

    8、wthcoef2函數(shù)

    該函數(shù)用于對(duì)二維信號(hào)的小波系數(shù)閾值進(jìn)行處理,常用調(diào)用格式:
    ? ? NC = wthcoef2('type',C,S,N,T,SORH):返回經(jīng)過(guò)小波分解結(jié)構(gòu)[C,S]進(jìn)行處理后的新的小波分解向量NC,[NC,S]即構(gòu)成一個(gè)新的小波分解結(jié)構(gòu)。N是一個(gè)包含高頻尺度的向量,T是相應(yīng)的閾值,且N和T長(zhǎng)度須相等。返回'type'(水平、垂直、對(duì)角線)方向的小波分解向量NC。參數(shù)SORH用來(lái)對(duì)閾值方式進(jìn)行選擇,當(dāng)SORH = 's'時(shí),為軟閾值,當(dāng)SORH = 'h'時(shí),為硬閾值。

    9、重構(gòu)函數(shù) waverec2

    ? ? waverec2函數(shù)是wavedec2的反函數(shù),返回的結(jié)果X就是原始圖像。其基于小波分解結(jié)構(gòu)[c,s]對(duì)矩陣X進(jìn)行多級(jí)小波重構(gòu),其中[c,s]是wavedec2函數(shù)的返回值。其調(diào)用格式如下:?
    ? ? ? X = waverec2(c,s,’wname’)?)??

    • c: 系數(shù)矩陣?
    • s: 尺度矩陣?
    • wname : 指定小波基?

    值得注意的是,X = waverec2(c,s,’wname’) 相當(dāng)于 X = appcoef2(c,s,’wname’,0)。

    如何進(jìn)行小波分解:

    假設(shè){x1,x2}是一個(gè)由兩個(gè)元素組成的信號(hào),定義這兩個(gè)元素的平準(zhǔn)和細(xì)節(jié)為:

    a = (x1+x2)/2 ;d=(x1-x2)/2

    變換實(shí)例如下:

    ? ??

    from:https://blog.csdn.net/qq_39936376/article/details/80809770

    from:http://blog.sina.com.cn/s/blog_84024a4a0101fn02.html

    from:https://blog.csdn.net/Chaolei3/article/details/80940459

    總結(jié)

    以上是生活随笔為你收集整理的图像处理-小波变换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。