判断该位置上下左右元素有关的 是否存在 例题:图像模糊

题目:图像模糊

关键位置:

  不分情况,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)))

总结:

与判断该位置上下左右元素有关的 是否存在 可以用这个方法

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值