已知图像f(x,y)=[5,8,9;1,5,7;2,4,2] 现用模板h(x,y)=[0,-1,0; -1,4,-1;0,-1,0]对其进行卷积操作,求输出与原图像大小相同的图像,然后写出两个像素点的计算步骤
时间: 2023-06-04 20:06:28 浏览: 370
答案:
首先将模板h(x,y)进行180度旋转得到h'(x,y),即
h'(x,y)=[0,-1,0;-1,4,-1;0,-1,0]
然后将原图像f(x,y)和h'(x,y)进行卷积操作,得到输出图像g(x,y):
g(x,y)=[-24,-32,-22;-8,17,11;-10,-18,-12]
计算步骤:
以(2,2)和(1,3)两个像素点为例:
g(2,2) = h'(0,0)f(0,0) + h'(-1,0)f(1,0) + h'(-1,-1)f(1,1) + h'(0,-1)f(0,1) + h'(0,1)f(0,2) + h'(1,0)f(2,0) + h'(1,1)f(2,1) + h'(1,-1)f(2,2) + h'(0,-1)f(1,2)
= (0*-1 + 0*-1 + 0*0 + 0*-1 + 4*5 + 0*-1 + 0*7 + 0*-1 + 0*0) = 17
g(1,3) = h'(-1,-1)f(0,2) + h'(-1,0)f(0,3) + h'(-1,1)f(0,4) + h'(0,-1)f(1,2) + h'(0,1)f(1,4) + h'(1,-1)f(2,2) + h'(1,0)f(2,3) + h'(1,1)f(2,4) + h'(0,0)f(1,3)
= (0*0 + 0*0 + 0*0 + 0*-1 + 4*7 + 0*-1 + 0*2 + 0*-1 + 0*5) = 11
相关问题
已知图像f(x,y)=[5,8,9;1,5,7;2,4,2] 现用模板h(x,y)=[0,-1,0; -1,4,-1;0,-1,0]对其进行卷积操作,求输出图像并写出两个像素点的计算步骤
根据卷积的定义,输出图像g(x,y)的每个像素点的值为:
g(x,y) = ∑∑[f(i,j) * h(x-i,y-j)]
其中,i和j分别为模板h的横纵坐标。
将模板h逆时针旋转180度,得到:
h'(x,y)=[0,-1,0; -1,4,-1;0,-1,0]
则上述卷积操作可以写成:
g(x,y) = ∑∑[f(i,j) * h'(x+i,y+j)]
现在,我们将模板h'沿着图像f(x,y)的每个像素点进行卷积操作,可以得到输出图像g(x,y)的值:
g(1,1) = 5*(-1) + 8*(-1) + 9*0 + 1*(-1) + 5*4 + 7*(-1) + 2*0 + 4*(-1) + 2*0 = 10
g(1,2) = 5*(-1) + 8*0 + 9*1 + 1*(-1) + 5*4 + 7*0 + 2*(-1) + 4*(-1) + 2*(-1) = 31
因此,输出图像为:
g(x,y)=[10,31,-16;1,7,-15;0,-4,0]
已知一图像为f(x,y)=「2 7 3 ;5 8 1;9 2 8」,现用模板为h(x,y)=「0 -1 0;-1 4 -1;0 -1 0」对其进行卷积操作,求出输出图像,其中f(x,y)和h(x,y)都是3×3的矩阵,输出图像尺寸与原图像一致即可
根据离散卷积的定义,可以得到输出图像g(x,y)的计算公式为:
g(x,y) = h(0,0)f(x-1,y-1) + h(0,1)f(x-1,y) + h(0,2)f(x-1,y+1)
+ h(1,0)f(x,y-1) + h(1,1)f(x,y) + h(1,2)f(x,y+1)
+ h(2,0)f(x+1,y-1) + h(2,1)f(x+1,y) + h(2,2)f(x+1,y+1)
其中h(i,j)表示卷积核的第i行第j列元素,f(i,j)表示原图像的第i行第j列元素,g(i,j)表示输出图像的第i行第j列元素。由于原图像的边界无法做完整的卷积,因此需要对边界进行处理,一般有三种方法:零填充、边缘填充和重复填充。这里采用边缘填充的方法,即将原图像的边缘值进行复制:
f(x,y)=「2 7 3 3 3;5 8 1 1 1;9 2 8 8 8;9 2 8 8 8;9 2 8 8 8」
将卷积核代入计算,得到输出图像g(x,y)为:
g(x,y) = -7 -21 -16 4 3
2 -24 -10 24 8
1 12 17 1 0
-7 4 8 -1 -8
-9 0 0 -6 -7
因此,输出图像为g(x,y)=「-7 -21 -16;2 -24 -10;1 12 17」。
阅读全文
相关推荐
















