结合此处的代码,重新归纳整理一下算法的流程:
- 输入一幅分辨率的 640 × 480 640\times 480 640×480 的RGB图像,记为 I 0 I_0 I0 ;
- 对 I 0 I_0 I0 高斯平滑,然后再进行 s = 2 s=2 s=2 降采样。即将图像尺寸行和列方向缩减一半(代码中是用 cv::pyrDown 函数一次处理),得到 I 1 I_1 I1 (注:OpenCV实现了用于创建图像金字塔的两个函数 pyrDown 和 pryUp);
- 重复第2步,得到 I 2 , I 3 , I 4 , I 5 , I 6 , I 7 , I 8 I_2, I_3, I_4, I_5, I_6, I_7, I_8 I2,I3,I4,I5,I6,I7,I8 , I 8 I_8 I8 的长宽分别为 I 0 I_0 I0 的 1 / 256 1/256 1/256 (注意 640 和480 都不能被 256 整除,个人觉得输入分辨率应该调整为256的倍数,不过这是小问题) ;
- I 0 ∼ I 8 I_0\sim I_8 I0∼I8 分别有 r r r、 g g g、 b b b 分量,计算每一个 I k I_k Ik 的“扩展颜色” R R R 、 G G