题目:图像模糊
关键位置:
不分情况,3*3,默认下标(0,-1),(0,0),(0,1) [0,0] [0,1] [0,2]
(1,-1),(1,0),(1,1) [1,0] [1,1] [1,2]
(2,-1),(2,0),(2,1) [2,0] [2,1] [2,2]
(0,0)---[0,0]
按照这个顺序去原数组判断相应位置是否有元素。 关键是两个下标怎么联系起来 i,j原数组下标,例如 [0,0]可以把 x=i+0 y=j+(-1) 得出 [0,0] 左边的下标 以此类推
关键代码实现:
整个代码:
n,m=map(int,input().split( )) arr=[] for i in range(n): row=[] for j in range(m): r=random.randint(0,255) row.append(r) arr.append(row) print(arr) # 模糊操作 #最多这9个位置 dirs=[(0,-1),(0,0),(0,1),(1,-1),(1,0),(1,1),(2,-1),(2,0),(2,1)] for i in range(n): for j in range(m): sum=0 count=0 for dir in dirs: x=i+dir[0] y=j+dir[1] if 0<=x<n and 0<=y<m: count+=1 sum=sum+arr[x][y] arr[i][j]=sum //count for i in arr: print(' '.join(map(str,i)))
总结:
与判断该位置上下左右元素有关的 是否存在 可以用这个方法