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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

图像处理-小波变换

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

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

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

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

小波變換步驟:

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

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

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

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

haar小波:

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

圖像二維離散小波變換 :

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

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

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

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

matlab實例

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

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

Matlab函數(shù)介紹

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

[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)于圖像的低頻部分,而其它三張圖是圖像的輪廓,也就是水平,垂直和對角三個方向的細(xì)節(jié)。是圖像的高頻部分。至此,各變量的維數(shù)如下所示。

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

2、wavedec2函數(shù)

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

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

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

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

S表示每一層分解結(jié)果的維數(shù),如果進行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選擇各層的獨立閾值。

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

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

j,M和ALPHA定義策略:

  • 在j + 1級(和更粗略的級別),一切都保留。
  • 對于從1到j(luò)的級別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用于一維或二維信號的消噪或壓縮。wname是所用的小波函數(shù),gbl(global的縮寫)表示每層都采用同一個閾值進行處理,lvd表示每層用不同的閾值進行處理,N表示小波分解的層數(shù),THR為閾值3*N,SORH表示選擇軟閾值還是硬閾值(分別取為’s’和’h’),XC是消噪或壓縮后的信號,[CXC,LXC]是XC的小波分解結(jié)構(gòu),PERF0和PERFL2是恢復(fù)和壓縮L^2的范數(shù)百分比, 是用百分制表明降噪或壓縮所保留的能量成分。

    5、wrcoef2函數(shù)

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

    • type :指定要進行重構(gòu)的小波系數(shù),如a –近似圖像 ;h – 水平高頻分量;v – 垂直高頻分量;d–對角高?
    • 頻分量;?
    • 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 的過程就相當(dāng)于 appcoef2 或者 detcoef2 (抽取系數(shù))后再進行 upcoef2(重構(gòu))。

    clear; close all;file = 'lena_gray_512.tif'; img = imread(file); img = double(img); % 對圖像進行3層的小波分解 N = 3; % 設(shè)置分解層數(shù) [c,s] = wavedec2(img,N,'db1');% 對各層的近似圖像a進行重構(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:小波分解的對應(yīng)尺度?
    • wname :指定小波基?
    • N :指定小波系數(shù)所在的層數(shù)?

    7、detcoef2

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

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

    8、wthcoef2函數(shù)

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

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

    ? ? waverec2函數(shù)是wavedec2的反函數(shù),返回的結(jié)果X就是原始圖像。其基于小波分解結(jié)構(gòu)[c,s]對矩陣X進行多級小波重構(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)。

    如何進行小波分解:

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

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

    變換實例如下:

    ? ??

    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é)

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

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