图像对数极坐标变换及抗几何攻击系统
项目介绍
本项目实现了一个基于 MATLAB 的图像对数极坐标变换(Log-Polar Transform, LPT)系统。该系统的核心目标是分析图像在几何变换(旋转和缩放)下的特性。通过将图像从传统的笛卡尔坐标系转换到对数极坐标系,图像的旋转变换被转化为沿角度轴的循环平移,而尺度缩放变换则被转化为沿对数半径轴的线性平移。这种特性使得系统能够通过互相关检测,在对数极坐标域中精确识别攻击参数,为数字水印检测和图像配准提供鲁棒性支持。
功能特性
- 坐标系映射转换:支持将图像从笛卡尔坐标空间精细映射至对数极坐标空间,并提供逆变换接口以恢复原始图像。
- 几何攻击模拟:系统内置攻击模块,可自定义组合旋转角度和缩放因子,用于测试特征提取的稳定性。
- 高精度插值算法:算法底层实现了双线性插值(Bilinear Interpolation),有效解决了坐标转换过程中像素非整数坐标点处的预测问题,确保变换质量。
- 特征偏移量检测:利用规一化互相关(Normalized Cross-Correlation)算法,在对数极坐标域内自动检测图像受攻击后产生的位移,反映旋转角度与缩放比例的关系。
- 自适应测试环境:系统具备自建测试图案(合成图)功能,在缺少外部图片资源时可自动生成包含丰富几何边缘和色块的测试数据。
使用方法
- 运行脚本:在 MATLAB 环境中直接运行主函数。
- 参数自定义:可通过修改主函数中的变量来调整实验设置:
* 修改攻击参数
angle_attack(旋转度数)和
scale_attack(缩放比例)。
* 调整采样分辨率
n_rho(对数半径采样数)和
n_theta(角度采样数)。
- 结果查看:系统将自动弹出可视化画布,显示原始图、对数极坐标特征图、逆变换恢复图、受攻击后的图像及其对应的对数极坐标域变化。
- 分析结论:命令行窗口将实时输出变换前后的尺寸对比、检测到的垂直偏移量(对应旋转)以及水平偏移量(对应缩放)。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 工具箱支持:需要安装 Image Processing Toolbox(用于图像读取、标准旋转及缩放函数)。
- 依赖项:系统核心功能通过自带的子函数实现,无需额外的第三方库。
核心实现逻辑与算法说明
1. 对数极坐标正变换逻辑
系统首先确定变换中心(通常为图像中心)和最大采样半径。通过生成对数半径轴和角度轴的线性步进网格,计算出对应的笛卡尔采样坐标。其数学核心在于:
- 半径方向采用指数映射:R = exp(rho)
- 角度方向采用弧度映射:Theta = [0, 2pi)
利用生成的网格坐标在原图中使用双线性插值算法提取像素值,从而构造出对数极坐标图像。
2. 对数极坐标逆变换逻辑
逆变换(ILPT)通过反向映射实现。系统遍历原始笛卡尔网格的每一个像素点,计算其相对于中心的距离(r)和角度(atan2)。随后将 r 值通过对数运算转换为对数极坐标域的索引,将角度值归一化到网格范围。最后,通过在对数极坐标特征图中进行二次插值采样,将图像还原至笛卡尔空间。
3. 双线性插值算法实现细节
为了在非整数像素点位置获取准确的像素值,本项目手动实现了插值算法:
- 邻域选取:提取待采样点周围的四个相邻像素点。
- 权重分配:根据目标点与邻域像素的距离距离分配权重,公式综合了水平和垂直方向的分量。
- 边界保护:内置合法性掩码(valid_mask),对超出图像边界的采样点自动补零或跳过,防止索引越界报错。
4. 模拟攻击与鲁棒性分析
- 攻击模拟:系统对图像执行指定角度的旋转和缩放。为了保证对比的公平性,攻击后的图像会被重新调整或裁剪至原画布大小。
- 偏移检测:受到攻击的图像在对数极坐标域内会发生平移。通过
normxcorr2 函数对“原始 LPT 特图”与“攻击后 LPT 特图”进行互相关计算,寻找相关系数矩阵中的峰值位置。峰值相对于矩阵中心的位移即代表了图像遭受的几何形变量。
5. 采样中心与边界处理
在变换过程中,系统严格限制了最大采样半径(max_radius),以确保采样范围不超出原图边界。同时,在逆变换恢复时,超过最大采样半径的区域会被自动置为背景色(0),确保恢复图像的干净度和准确性。