摘要
本文为“遥感图像处理实践”课程报告。
程序源代码中包含使用C++实现的直方图均衡,直方图匹配,中值滤波,双边滤波,拉普拉斯锐化,傅里叶变换,频域高通滤波,周期条带噪声去除,光谱空间主成分变换(PCA),基于RGB-HSI变换的图像拉伸。
详细实习报告和完整源代码见文章末尾
一. 概要设计
1.1 数据流图
1.2 函数调用图
二. 图像处理算法
2.1直方图均衡
C++实现直方图均衡,附源代码
运行结果
2.2 直方图匹配
2.2.1 界面设计
2.2.2 运行结果
待处理图像:
参考图像:
处理结果:
2.3 中值滤波
2.3.1 界面设计
2.3.2 测试
使用5*5窗口测试
2.4 双边滤波
2.4.1 界面设计
2.4.2 测试
使用上图中的参数测试
可见在滤波的同时还保持了边缘。(帽子上比较明显)
2.5 拉普拉斯锐化
2.5.1 测试结果
2.6 二维离散傅里叶变换
https://blog.csdn.net/qq_20115319/article/details/114021525
2.7 频域高通滤波
2.7.1 算法设计
编写了底层的傅里叶变换函数,在频率域高通滤波函数即可直接调用傅里叶变换和傅里叶反变换。使用函数指针的方式调用三种滤波器,耦合性低,可扩充性强。
2.7.2 窗口界面设计
2.7.3 测试结果
理想高通滤波结果(截止频率=30)
Butterworth滤波结果(截止频率=30)
高斯高通滤波(截止频率=30)
2.7.4结果讨论
解释振铃现象在不同滤波器(理想高通滤波器、butterworth高通滤波器与高斯高通滤波器)的现象及原因。
对于辛格函数sinc而言,经过傅里叶变换之后的函数形式为窗函数(理想低通滤波器)形式。
因此凡具有接近窗函数的滤波器,IFT之后,其空域函数形式多少接近sinc函数。sinc是进行图像滤波的主要因素,两边的余波将对图像产生振铃现象。
理想型滤波会出现振铃,可以看出空域滤波函数图像外围有剧烈震荡。1阶巴特沃斯没有“振铃“,随着阶数增大,振铃现象越发明显。程序中的butterworth滤波取阶数n=2,可以看出空域函数外围部分出现震荡。
2.8 遥感影像周期条带噪声去除
2.8.1 流程图
2.9 高光谱影像PCA变换
2.9.1 函数调用图
2.9.3 界面设计
2.9.4 测试结果
先选择让程序自动根据方差贡献率>=85%来确定P值,此处程序自动计算得到P值为2。
主成分影像:
可见rsdiplib显示能力有限。在ENVI中使其前三个主成分作为RGB显示为下图:
反变换结果显示如图所示:
2.10 基于RBG-HSI变换的图像拉伸
2.10.1 处理结果
- 对亮度进行拉伸(降低)
- 对色调进行拉伸(增加)
- 对饱和度进行拉伸(降低)
完整源代码及实习报告获取
在github搜索
/cugfzx/Remote-sensing-image-processing-application-based-on-RSDIPLib