17.矩陣卷積運算在圖象處理中有著廣泛的應(yīng)用,它的描述如下:
(1)對于兩個形狀相同的矩陣,它們的內(nèi)積是每個對應(yīng)位置的數(shù)字相乘之后的和;
(2)對于小矩陣和大矩陣卷積運算時,以小矩陣為參考,沿著橫向和縱向兩個方向逐個滑動(取同樣大小的矩陣),依次求出內(nèi)積,得到結(jié)果矩陣,如圖a所示。
小明用VB程序模擬上述的矩陣卷積運算,單擊“初始化”按鈕,隨機生成大矩陣數(shù)據(jù),單擊“運算”按鈕,進行矩陣卷積運算并生成結(jié)果矩陣,運行界面如圖b所示:
(1)根據(jù)描述,上圖中“結(jié)果矩陣”最后一個被抹去的數(shù)字應(yīng)該是
(2)實現(xiàn)上述功能的VB程序如下。請在橫線處填入合適代碼。
Const n=8
Dim a(1 To 4)As Integer
Dim b(1 To n*n)As Integer
Private Sub Form_Load)’初始化小矩陣
a(1)=1:a(2)=3:a(3)=2:a(4)=4
List1.AddItem Str(a(1))+Str(a(2))
List1.AddItem Str(a(3))+Str(a(4))
End Sub
Private Sub Command2_Click ( ?。跏蓟缶仃?br />Dim line As String,x As Integer
Randomize
List2.Clear
For i=1 To n
line=″″
Forj=1 To n
x=(i-1)*n+j
b(x)=Int(Rnd ( ?。?10)
①
Nextj
List2.Add Item line
Next i
End Sub
Private Sub Command1_Click ( ?。M行矩陣卷積運算
Dim line As String
List3.Clear
Fori=1To n-1’處理縱向移動
line=““
For j=1Ton-1’處理橫向移動
product1=a(1)*b((i-1)*n+j)+a(2)*b((i-1)*n+j+1)
product2=a(3)*b(i*n+j)+②
line=line+Str(productl+product2)
Nextj
List3.AddItem line
Next i
End Sub
(3)如果卷積運算中,小矩陣規(guī)模為3*3(9個元素),大矩陣規(guī)模為9*9(81個元素),經(jīng)過卷積運算后,“結(jié)果矩陣”有
個元素。