在这篇博文中,主要想记录一下自己使用c++实现的过程中遇到的一些问题。
1. 模糊核的初始化。这是一个会对结果产生影响的参数,特别是当运动模糊的半径比较大时,结果差异会更大。
所以尽量的在核中心位置初始化。
2. 拟合好的模糊核一般是浮点型数据,这个是要直接用来复原模糊图像的。但是在显示模糊核时,我采用了下面的方法,效果更好。showimage = (kernel-minValue)/maxValue
3. 每层金字塔都需要归一化模糊核。
4. 每层金字塔模糊核归一化之前都需要使模糊核的有效区域平移到图像中心位置。
5. 图像下采样。
a. 下采样的图像大小依赖于每层的缩放比例,这里取了以常数sqrt(0.5)为底的指数,指数从0~n。n是总得层数。n越大表示位于金字塔的层数越高,图像尺寸越小。最底层的金字塔表示原始图像大小。这个缩放比例在计算图像大小时存在一个问题:它是浮点型数据,往往精度会影响计算结果。比如0.1,可能会表示为0.099999999,或者0.10000000001,这在计算后的图像大小会由于极小的误差产生图像大小变化的情况。不同的机器计算结果会不一样。
b. 下采样的方法。大致使用的是取量化后的数据。在量化前,对图像做了卷积运算。卷积核是一个设定好的大小,比如n*n。k=s2*s1,s2等于