用OpenCV给老照片修图:中值滤波去除划痕的保姆级教程

用OpenCV给老照片修图:中值滤波去除划痕的保姆级教程

翻开泛黄的相册,那些承载着家族记忆的老照片往往布满时间留下的痕迹——细密的划痕、斑驳的污渍,让珍贵影像逐渐模糊。作为数字图像处理爱好者或家史档案整理者,掌握OpenCV的中值滤波技术,就能让这些历史影像重焕新生。不同于传统修图软件的复杂操作,本文将以Python代码实战为核心,手把手教你通过调整核参数精准消除不同类型划痕,同时保留照片原始质感。

1. 老照片修复的核心挑战与解决方案

老照片的损伤通常分为线性划痕块状污渍两类。前者多由相纸摩擦产生,表现为细长白线;后者常因潮湿导致,呈现不规则深色斑块。传统均值滤波虽然能减弱噪声,但会导致图像边缘模糊化——这正是中值滤波(Median Blur)的用武之地。

中值滤波的独特优势在于:

  • 非线性处理:取邻域像素的中值而非平均值,有效过滤突变的孤立噪点
  • 边缘保留:不会像线性滤波那样产生梯度扩散现象
  • 参数直观:只需调整核大小(kernel size)即可适应不同损伤类型
import cv2
import numpy as np

# 基础处理流程
def load_image(path):
    img = cv2.imread(path)
    if img is None:
        raise ValueError("图像加载失败,请检查路径")
    return img

# 显示对比函数
def compare_images(original, processed, title):
    combined = np.hstack((original, processed))
    cv2.imshow(title, combined)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值