
简介这份《南师大遥感数字图像处理复习题》面向遥感、测绘与地理信息相关专业的本科生及考研备考者用于梳理课程重点、检验概念掌握程度。内容以名词解释、简答与填空三类题型组织覆盖数字图像与像素定义、离散与连续两种处理观点、辐射校正与几何纠正、图像增强与信息提取、电磁波谱与分辨率、元数据与HDF、GeoTIFF存储格式等核心考点并附有参考答案便于对照自测与查漏补缺。资源包共1个doc文件约272KB轻量易携带可直接打印或导入笔记软件反复翻阅。目前已有67人学习适合在期末复习或考研冲刺阶段快速过一遍知识框架也可作为课堂笔记的补充索引帮助读者定位薄弱环节、强化对遥感数字图像处理基本概念与处理流程的理解。1. 遥感数字图像处理复习题到底在考什么从一份 .doc 说起如果你手里正躺着一份「遥感数字图像处理复习题.doc」大概率你面对的不是一个知识点而是一整条从辐射定标到分类精度评价的技术链。遥感数字图像处理这门课的特点是概念多、公式碎、流程长复习题往往把辐射校正、几何校正、图像增强、图像变换、分类与精度评价揉在一起考。很多人翻车不是因为不会而是因为把「处理流程的先后顺序」记反了——比如先做几何校正再做辐射校正或者把监督分类和非监督分类的适用场景搞混。这份复习题真正要你掌握的是每个环节的输入输出、参数含义和误差来源。适合正在备考的学生也适合刚入行、需要把课本概念和工程实现对齐的从业者。2. 辐射校正与几何校正复习题里最容易混的两条线2.1 辐射校正考的是什么从 DN 值到表观反射率复习题里出现「辐射校正」时通常不是让你背定义而是让你判断某个场景该用哪种校正。常见考点包括辐射定标、大气校正、太阳高度角和日地距离校正。核心逻辑是传感器记录的 DN 值不是物理量必须转成辐射亮度或表观反射率才能跨时间、跨传感器比较。常见做法是先把 DN 值转成辐射亮度再转成表观反射率。公式里有两个容易记错的参数太阳辐照度和太阳天顶角余弦。复习题常在这里设坑比如给出太阳高度角而不是天顶角或者把日地距离校正因子写反。下面用 Python 演示一个最小计算流程假设你已经从元数据里读到了增益和偏移import numpy as np # 假设 DN 矩阵增益 gain 和偏移 offset 来自元数据 dn np.array([[120, 135], [110, 150]], dtypefloat) gain 0.002 # 辐射定标增益 offset -5.0 # 辐射定标偏移 # 第一步DN 转辐射亮度 radiance dn * gain offset # 第二步辐射亮度转表观反射率 # d 为日地距离校正因子ESUN 为太阳辐照度theta 为太阳天顶角 d 1.0 ESUN 1000.0 theta np.deg2rad(30.0) # 天顶角 30 度 reflectance (np.pi * radiance * d**2) / (ESUN * np.cos(theta)) print(reflectance)逻辑说明先做线性定标再做反射率转换。参数说明gain和offset必须来自对应波段的元数据不能混用theta是天顶角如果元数据给的是高度角要用 90 度减去它d是日地距离校正因子复习题里常给 1 或具体日期对应的值。如果这一步算错后面所有分类和指数计算都会偏。2.2 几何校正的复习重点控制点、重采样和 RMS 误差几何校正的复习题通常围绕三个问题选多少控制点、用什么重采样方法、RMS 误差控制在多少。控制点数量没有绝对标准但常见经验是多项式次数加 1 再乘以 2 以上。一次多项式至少 3 个点实际至少 6 个二次多项式至少 6 个实际至少 12 个。重采样方法有三种最近邻、双线性、三次卷积。最近邻不改变像元值适合分类图双线性平滑适合连续数据三次卷积更锐利但计算量大。复习题常问「分类结果图应该用哪种重采样」答案是最近邻因为不能引入新类别。RMS 误差是衡量几何校正精度的指标一般要求小于 0.5 个像元。如果超过 1 个像元说明控制点选取有问题常见原因是控制点分布不均或误匹配。下面用 Python 演示如何计算 RMS 误差import numpy as np # 假设有 4 个控制点source 是原图坐标target 是参考图坐标 source np.array([[10, 20], [30, 40], [50, 60], [70, 80]], dtypefloat) target np.array([[11, 21], [29, 41], [51, 59], [69, 81]], dtypefloat) # 计算每个点的残差 residuals target - source # 计算 RMS 误差 rms np.sqrt(np.mean(residuals**2)) print(fRMS 误差: {rms:.3f} 像元)逻辑说明残差是目标坐标减原坐标RMS 是残差平方均值的平方根。参数说明控制点要覆盖图像四角和中部不能全挤在一侧如果 RMS 偏大先检查控制点是否选在同名地物上再考虑增加多项式次数。2.3 复习题里辐射和几何的先后顺序常见考题是「先做辐射校正还是几何校正」。答案取决于目的如果要做光谱分析或指数计算先做辐射校正如果要做变化检测或配准先做几何校正。但实际工程里很多流程是几何校正后再做辐射校正因为重采样会改变像元值。复习题里如果问「为什么」要答重采样会引入新像元值先做辐射校正再重采样会导致光谱失真。3. 图像增强与变换复习题里的参数和适用场景3.1 直方图均衡化的复习要点为什么有时会翻车直方图均衡化是图像增强的经典考点。复习题常问均衡化后直方图变成什么样、适合什么图像、有什么缺点。答案是均衡化后直方图近似均匀分布适合对比度低的图像缺点是可能过度增强噪声或者让原本不连续的区域变得突兀。常见坑是对已经高对比度的图像做均衡化结果反而变差。复习题里如果给出一幅直方图集中在中间窄范围的图像均衡化是合适的如果直方图已经覆盖全范围均衡化意义不大。下面用 Python 演示直方图均衡化import numpy as np def histogram_equalization(image): # 计算直方图 hist, bins np.histogram(image.flatten(), bins256, range(0, 255)) # 计算累积分布函数 cdf hist.cumsum() cdf_normalized cdf * 255 / cdf[-1] # 映射 equalized np.interp(image.flatten(), bins[:-1], cdf_normalized) return equalized.reshape(image.shape).astype(np.uint8) # 假设 image 是 0-255 的灰度图 image np.array([[50, 60], [70, 80]], dtypenp.uint8) result histogram_equalization(image) print(result)逻辑说明先统计直方图再算累积分布最后按累积分布映射。参数说明bins256对应 8 位图像如果图像是 16 位要调整bins和range。注意均衡化后像元值会变不能用于定量分析。3.2 主成分变换的复习重点特征值和累计贡献率主成分变换PCA是图像变换的常考点。复习题通常问前几个主成分保留多少信息、特征值怎么排序、累计贡献率怎么算。核心是特征值从大到小排序累计贡献率是前 k 个特征值之和除以总和。一般保留累计贡献率 85% 到 95% 的主成分。常见坑是把 PCA 用于分类时直接取前三个主成分可能丢失小类别信息。复习题里如果问「PCA 后为什么分类精度下降」答案可能是小类别信息集中在后面的主成分里。下面用 Python 演示 PCA 累计贡献率计算import numpy as np # 假设有 4 个波段的图像数据每行一个像元 data np.array([[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7]], dtypefloat) # 中心化 data_centered data - np.mean(data, axis0) # 计算协方差矩阵 cov_matrix np.cov(data_centered, rowvarFalse) # 计算特征值和特征向量 eigenvalues, eigenvectors np.linalg.eig(cov_matrix) # 排序 idx np.argsort(eigenvalues)[::-1] eigenvalues eigenvalues[idx] # 累计贡献率 cumulative np.cumsum(eigenvalues) / np.sum(eigenvalues) print(f累计贡献率: {cumulative})逻辑说明先中心化再算协方差矩阵再求特征值。参数说明rowvarFalse表示每列是一个变量累计贡献率超过 0.9 时对应主成分数量就是建议保留数。如果复习题给的是相关系数矩阵要先标准化。3.3 波段运算和指数计算NDVI 的复习陷阱NDVI 是复习题里出现频率最高的指数。公式是近红外减红除以近红外加红。常见坑有三个一是用错波段二是没做辐射校正直接算三是分母为零。复习题里如果问「NDVI 范围」答案是 -1 到 1但实际水体常为负植被为正。下面用 Python 演示 NDVI 计算import numpy as np # 假设 red 和 nir 是已经辐射校正后的反射率 red np.array([[0.1, 0.2], [0.15, 0.25]], dtypefloat) nir np.array([[0.4, 0.5], [0.45, 0.55]], dtypefloat) # 避免分母为零 denominator nir red denominator[denominator 0] 1e-10 ndvi (nir - red) / denominator print(ndvi)逻辑说明先加分母保护再算 NDVI。参数说明red和nir必须是反射率不能是 DN 值如果复习题给的是 DN 值要先做辐射定标。NDVI 对大气影响敏感如果没做大气校正结果只能定性看。4. 分类与精度评价复习题里最容易丢分的环节4.1 监督分类和非监督分类的复习对比复习题常问监督分类和非监督分类的区别、各自适用场景。监督分类需要训练样本精度高但费人工非监督分类不需要样本但类别含义要事后解释。常见算法监督用最大似然、支持向量机、随机森林非监督用 K-means、ISODATA。常见坑是监督分类的训练样本必须来自已知类别不能随便选。复习题里如果问「为什么监督分类精度下降」答案可能是训练样本不纯或数量不足。下面用 Python 演示一个最小 K-means 分类import numpy as np from sklearn.cluster import KMeans # 假设有 6 个像元每个像元 2 个波段 data np.array([[1, 2], [1, 3], [10, 11], [10, 12], [20, 21], [20, 22]], dtypefloat) # K-means 分类k3 kmeans KMeans(n_clusters3, random_state0).fit(data) labels kmeans.labels_ print(labels)逻辑说明K-means 按距离聚类n_clusters是类别数。参数说明random_state固定随机种子保证可复现实际分类前要标准化波段否则量纲大的波段会主导距离。4.2 混淆矩阵和 Kappa 系数的复习计算精度评价是复习题必考。混淆矩阵的行是真实类别列是预测类别。总体精度是正确分类数除以总数。Kappa 系数是衡量一致性公式是总体精度减随机一致性除以1 减随机一致性。常见坑是把混淆矩阵行列写反或者 Kappa 系数算错。复习题里如果给出一张表要先确认行列含义。下面用 Python 演示混淆矩阵和 Kappa 计算import numpy as np # 假设混淆矩阵行是真实列是预测 confusion np.array([[50, 5], [10, 35]], dtypefloat) # 总体精度 total np.sum(confusion) correct np.trace(confusion) overall_accuracy correct / total # Kappa 系数 row_sum np.sum(confusion, axis1) col_sum np.sum(confusion, axis0) random_accuracy np.sum(row_sum * col_sum) / (total**2) kappa (overall_accuracy - random_accuracy) / (1 - random_accuracy) print(f总体精度: {overall_accuracy:.3f}, Kappa: {kappa:.3f})逻辑说明trace是对角线之和即正确分类数。参数说明row_sum和col_sum分别是真实和预测的边际和Kappa 大于 0.8 表示一致性很好0.6 到 0.8 表示中等。4.3 分类后处理的复习要点众数滤波和类别合并分类后处理常考众数滤波和类别合并。众数滤波是用邻域内出现最多的类别替换中心像元去除椒盐噪声。类别合并是把多个小类合并成大类比如把不同作物合并成耕地。常见坑是众数滤波窗口太大会抹掉小类别。复习题里如果问「窗口怎么选」答案是一般 3×3 或 5×5根据噪声程度定。5. 避坑与排查复习题里那些容易记反的细节5.1 现象辐射校正后反射率大于 1原因太阳天顶角用错或者增益偏移量纲不对。解决检查元数据里天顶角单位是度还是弧度增益是否要除以 10000。5.2 现象几何校正后图像有黑边原因重采样时超出原图范围。解决设置输出范围时裁剪到重叠区或者用背景值填充。5.3 现象NDVI 出现异常高值原因近红外和红波段没做辐射校正或者波段对应错。解决先确认波段顺序再做定标和大气校正。5.4 现象监督分类精度虚高原因训练样本和验证样本重叠。解决训练样本和验证样本必须独立选取最好用不同区域。5.5 现象Kappa 系数为负原因混淆矩阵行列写反或者预测结果比随机还差。解决检查矩阵方向确认预测类别和真实类别对应。6. 把复习题变成可复现的代码笔记一个最小闭环复习题最大的价值不是背答案而是把每个知识点变成可运行的代码。我一般会建一个remote_sensing_review目录按章节放脚本radiometric.py、geometric.py、enhancement.py、classification.py、accuracy.py。每个脚本只做一件事输入用模拟数据输出打印关键指标。下面是一个最小闭环的目录结构remote_sensing_review/ ├── radiometric.py # 辐射校正 ├── geometric.py # 几何校正 RMS ├── enhancement.py # 直方图均衡化 ├── pca.py # 主成分累计贡献率 ├── ndvi.py # NDVI 计算 ├── classification.py # K-means 分类 └── accuracy.py # 混淆矩阵和 Kappa每个脚本都按「输入模拟数据 → 计算 → 打印结果」写方便复习时快速验证。比如accuracy.py里可以加一个断言确保 Kappa 在 -1 到 1 之间assert -1 kappa 1, Kappa 系数超出范围检查混淆矩阵参数验证是复习题里最容易被忽略的。我习惯在每个脚本末尾加一个if __name__ __main__:块把关键参数打印出来比如辐射校正里的theta、几何校正里的rms、分类里的n_clusters。这样复习时一眼就能看到参数和结果的关系。还有一个技巧把复习题里的选择题改写成代码里的条件判断。比如「先辐射校正还是先几何校正」可以写成def correct_order(purpose): if purpose spectral_analysis: return 先辐射校正 elif purpose change_detection: return 先几何校正 else: return 先几何校正再辐射校正这样复习不再是背而是推。我当年复习时最大的教训是只看不写考试时公式记混后来把每个考点都写成十行代码反而记得牢。希望帮到你。本文还有配套的精品资源点击获取