公司新闻

亮度差参与权重后平滑为什么更容易保留边缘:机制分析第18例

2026-11-15 1

普通邻域平均把附近像素按相同程度混合,明暗边界可能因此变软。若亮度相差越大的邻居权重越低,就能构造一种更重视同类亮度的局部平滑方法。

先明确输入与规则

本例一维十二像素,每个位置只看左右两格内实际存在的像素。普通结果取邻域平均;加权结果给邻居j权重一除以(一加位置距离)再除以(一加亮度差绝对值),亮度差相对于当前中心计算。最终除以权重和,所有输出同时由原输入计算。

本例的独立记录

十二个原始亮度为[5, 5, 8, 6, 8, 5, 23, 19, 19, 21, 23, 22]。所有输出均由这同一份输入计算。

中心位置 | 邻域编号 | 原始权重 | 普通平均 | 加权结果 0 | [0, 1, 2] | ['1', '1/2', '1/12'] | 6.000000 | 5.157895 1 | [0, 1, 2, 3] | ['1/2', '1', '1/8', '1/6'] | 6.000000 | 5.302326 2 | [0, 1, 2, 3, 4] | ['1/12', '1/8', '1', '1/6', '1/3'] | 6.400000 | 7.439024 3 | [1, 2, 3, 4, 5] | ['1/6', '1/6', '1', '1/6', '1/6'] | 6.400000 | 6.200000 4 | [2, 3, 4, 5, 6] | ['1/3', '1/6', '1', '1/8', '1/48'] | 10.000000 | 7.759494 5 | [3, 4, 5, 6, 7] | ['1/6', '1/8', '1', '1/38', '1/45'] | 12.200000 | 5.989746 6 | [4, 5, 6, 7, 8] | ['1/48', '1/38', '1', '1/10', '1/15'] | 14.800000 | 21.803071 7 | [5, 6, 7, 8, 9] | ['1/45', '1/10', '1', '1/2', '1/9'] | 17.400000 | 19.179487 8 | [6, 7, 8, 9, 10] | ['1/15', '1/2', '1', '1/6', '1/15'] | 21.000000 | 19.481481 9 | [7, 8, 9, 10, 11] | ['1/9', '1/6', '1', '1/6', '1/6'] | 20.800000 | 20.965517 10 | [8, 9, 10, 11] | ['1/15', '1/6', '1', '1/4'] | 21.250000 | 22.426966 11 | [9, 10, 11] | ['1/6', '1/4', '1'] | 22.000000 | 22.058824

记录中的编号只用来区分本例对象,不应与大小排名或另一组记录的身份混淆。先核对单位和边界,再跟随中间值检查结果。空结果、零值与尚未确定是不同状态;分数保留精确含义,显示小数只为方便阅读。

怎样复算

中心像素权重为一,分母始终为正。归一化后的输出必定位于参与像素的最小值与最大值之间。边界不补零、不循环,而是只取仍在数组内的邻居,不能与另一种边界规则混用。

比较普通平均与加权结果在明暗分界附近的数值,观察跨边界像素的影响。不要边算边覆盖原数组,否则后面的中心会读到已经被平滑过的邻居,得到另一种迭代操作,而非本例的一次并行输出。

适用条件与限制

这是明确定义的教学权重,并不声称等于某个软件的默认滤镜。它仍可能改变细节,亮度差大的噪点也可能保留下来。是否适合实际贴图,需要结合纹理用途,不能仅凭边缘更清楚就判定一切更好。

练习时可以一次只改变一个条件,比较差异从哪个步骤开始。若自己的结果不同,先核对是否采用同样的规则,再定位第一个不一致的中间状态,不要只修改最终答案。输入与运算过程需要一起保存,才能判断结论究竟适用于哪一个具体场景。