python-leetcode-661. 图片平滑器

661. 图片平滑器 - 力扣(LeetCode)

这个问题可以用二维数组的遍历和均值计算来实现。核心思想是:

  1. 遍历图像的每个单元格,找到它及其周围最多 8 个单元格。

  2. 计算有效单元格的均值(向下取整)。

  3. 构造新的平滑后图像。

如果你需要具体的代码实现,可以用 Python 进行处理,例如:

def imageSmoother(img):
    from itertools import product
    
    m, n = len(img), len(img[0])
    result = [[0] * n for _ in range(m)]

    for i, j in product(range(m), range(n)):
        total, count = 0, 0
        
        for x, y in product(range(i-1, i+2), range(j-1, j+2)):
            if 0 <= x < m and 0 <= y < n:
                total += img[x][y]
                count += 1
        
        result[i][j] = total // count  # 向下取整

    return result

这个方法遍历每个像素点 (i, j),然后计算其周围的有效像素点的均值。
你可以传入一个二维数组来测试,比如:

img = [
    [100, 200, 100],
    [150, 255, 150],
    [100, 200, 100]
]

smoothed_img = imageSmoother(img)
for row in smoothed_img:
    print(row)

如果你有更复杂的要求,比如处理更大图像或者优化效率,可以进一步讨论! 😊

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值