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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB卷积conv、conv2、convn详解

發布時間:2023/12/9 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB卷积conv、conv2、convn详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. conv(向量卷積運算)

向量的卷積= 多項式乘法
使用說明:

w=conv(u,v)

u,v為向量,其長度可以不相同。

實例1:多項式乘法

(s^2+2s+2)(s+4)(s+1)

w=conv([1,2,2],conv([1,4][1,1]))w = 1 7 16 18 8P=poly2str(w,'s')P = s^4 + 7 s^3 + 16 s^2 + 18 s + 8

2. conv2(二維矩陣卷積運算)

總結出full,same,valid三種卷積后圖像大小的計算公式:

1.full: 滑動步長為1,圖片大小為N1xN1,卷積核大小為N2xN2,卷積后圖像大小:(N1+N2-1) x (N1+N2-1)

a=[1 1 1;1 1 1;1 1 1]; b=[1 1 1;1 1 1;1 1 1]; >> conv2(a,b)ans =1 2 3 2 12 4 6 4 23 6 9 6 32 4 6 4 21 2 3 2 1

相當于把a看作圖片,b看作卷積核,默認為full 卷積后圖像大小為 3+3-1 = 5 * 5

如圖1, 滑動步長為1,圖片大小為2x2,卷積核大小為3x3,卷積后圖像大小:4x4(2+3-1)

圖中藍色為原圖像(22),灰色為卷積核(33),白色為對應卷積所增加的padding,通常全部為0,綠色是卷積后圖片(4*4)。(2+3-1)

圖的卷積的滑動是從卷積核右下角與圖片左上角重疊開始進行卷積,滑動步長為1,卷積核的中心元素對應卷積后圖像的像素點。

2.same: 滑動步長為1,圖片大小為N1xN1,卷積核大小為N2xN2,卷積后圖像大小:N1xN1

a=[1 1 1;1 1 1;1 1 1]; b=[1 1 1;1 1 1;1 1 1]; >> conv2(a,b,'same')ans =4 6 46 9 64 6 4

3.valid:滑動步長為S,圖片大小為N1xN1,卷積核大小為N2xN2,卷積后圖像大小:[(N1-N2)/S+1] x [(N1-N2)/S+1]

a=[1 1 1;1 1 1;1 1 1]; b=[1 1 1;1 1 1;1 1 1]; >> conv2(a,b,'valid')ans =9

如圖2,滑動步長為1,圖片大小為5x5,卷積核大小為3x3,卷積后圖像大小:3x3

3. MATLAB的conv2函數實現步驟 conv2(A,B)

卷積的時候需要對卷積核進行180的旋轉,同時卷積核中心與需計算的圖像像素對齊,輸出結構為中心對齊像素的一個新的像素值

其中,矩陣A和B的尺寸分別為mana即mbnb

① 對矩陣A補零,
第一行之前和最后一行之后都補mb-1行,
第一列之前和最后一列之后都補nb-1列
(注意conv2不支持其他的邊界補充選項,函數內部對輸入總是補零);

③ 滑動旋轉后的卷積核,將卷積核的中心位于圖像矩陣的每一個元素,并求乘積和(即將旋轉后的卷積核在A上進行滑動,然后對應位置相乘,最后相加);
下面分別是shape=full, same, valid時取輸出圖像大小的情況,其中:

位置1表示輸出圖像的值從當前核的計算值開始(對應輸出圖像左上角),
位置2表示到該位置結束(對應輸出圖像右下角)

‘full’ 全卷積(默認值)。
‘same’ 與 u 大小相同的卷積的中心部分。
‘valid’ 僅計算沒有補零邊緣的卷積部分。此時,length(y) 是 max(length(u)-length(v)+1,0)。

4.convn(n維矩陣卷積運算)

a=ones(5,5,5)

a(:,:,1) =

1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

a(:,:,2) =

1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

a(:,:,3) =

1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

a(:,:,4) =

1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

a(:,:,5) =

1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

b=ones(5,5,5);

convn(a,b,‘valid’)

ans =

125

convn(a,b,‘same’)

ans(:,:,1) =

27 36 45 36 27 36 48 60 48 36 45 60 75 60 45 36 48 60 48 36 27 36 45 36 27

ans(:,:,2) =

36 48 60 48 36 48 64 80 64 48 60 80 100 80 60 48 64 80 64 48 36 48 60 48 36

ans(:,:,3) =

45 60 75 60 45 60 80 100 80 60 75 100 125 100 75 60 80 100 80 60 45 60 75 60 45

Reference:
1.MATLAB卷積運算(conv、conv2、convn)解釋
2.MATLAB-conv函數

總結

以上是生活随笔為你收集整理的MATLAB卷积conv、conv2、convn详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。