基于BSCB偏微分方程模型的图像自动修复系统
项目介绍
本项目实现了一种经典的BSCB(Bertalmío-Sapiro-Caselles-Ballester)图像修复算法。该算法建立在偏微分方程(PDE)的数学基础上,旨在通过数值模拟过程模仿专业修复师手工修复艺术品的过程。系统能够自动识别图像受损区域(Mask),并利用受损边界周围的几何信息(等照度线方向)将已知区域的色彩和结构平滑地传播到待修复区域。通过迭代演化,系统可以恢复图像中由于遮挡、裂纹或数字化损伤造成的视觉断裂。
功能特性
- 自动几何修复:利用二阶偏微分算子捕获图像结构,通过等照度线(Isophotes)引导信息的传播。
- 结构连贯性保持:通过数值求解,使断裂的线条和轮廓在受损区域内实现自然、连续的连接。
- 稳定性控制:引入各向异性扩散(Anisotropic Diffusion)机制,在修复图像的同时抑制数值噪声,防止边缘模糊。
- 演示数据自动生成:系统内置合成数据生成器,可创建带有圆环、多色线条及多种受损模式(划痕、块状缺失)的测试样本。
- 实时进度与收敛分析:在修复过程中实时计算均方误差(MSE),并生成对数坐标下的演化收敛曲线。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 工具箱:需要安装 Image Processing Toolbox(图像处理工具箱),用于执行图像滤波。
核心实现逻辑
系统的主控制逻辑遵循以下标准流程:
- 环境初始化与参数注入:
系统设定最大迭代次数为500次,时间步长为0.1。为了平衡修复速度与平滑度,每演化2次BSCB方程便进行一次扩散处理。
- 多通道协同处理:
算法支持RGB彩色图像。系统将图像分解为独立色彩通道,对每个通道分别执行PDE演化,确保色彩在几何上的协调一致。
- BSCB 数值求解循环:
在每一轮迭代中,核心逻辑包含以下四个关键环节:
- 算子提取:使用3x3离散核计算当前图像的拉普拉斯项(ΔI),该项代表了图像的平滑度特征。
- 信息流向定位:求取图像像素梯度的垂直向量,即等照度线方向,并对其进行归一化处理。
- 演化项计算:计算拉普拉斯项的梯度向量与等照度线方向的点积。这一步的核心是确保灰度信息沿着等照度线方向(不跨越边缘)进行传播。
- 受损区域局部更新:基于演化项更新像素值,且仅更新由掩膜(Mask)指定的受损像素,保留原始未受损区域。
- 各向异性扩散(Perona-Malik 模型):
为了保证算法在多次迭代后的数值稳定性,系统集成了简化的Perona-Malik扩散项。通过计算四个方向的梯度梯度差,根据指数函数自适应调整扩散系数。这使得系统在平滑修复内部噪声的同时,能够锁定边缘区域,避免结构信息的散失。
- 可视化评估:
修复完成后,系统会自动生成综合对比图,展示原始参考图、受损图、修复结果图以及反映算法收敛过程的能量演化曲线。
关键子程序分析
- 几何合成模块:
该模块通过数学公式(如欧式距离公式和坐标范围限定)构建包含黑色圆环和红色横线的256x256像素测试图。同时通过逻辑索引生成模拟划痕和块状遮挡的掩膜矩阵。
- 拉普拉斯算子计算:
采用标准的五点差分离散化格式,通过3x3卷积内核捕获图像的二阶导数信息,为后续的信息传播提供物理背景。
- 非线性扩散滤波器:
不同于标准的高斯模糊,该滤波器根据图像局部对比度动态分配权重。在边缘两侧梯度较大时,扩散系数减小;在平滑区域,扩散系数增大,从而实现保边去噪的目的。
使用方法
- 启动MATLAB并进入项目所在文件夹。
- 在命令行窗口直接调用主函数。
- 如果需要修复特定的外部图像,请根据代码注释提示,修改数据读取部分,读取本地的图像文件及对应的二值化掩膜图。
- 运行结束后,系统会自动弹出结果对比窗口。