Image 如何使滑动窗口成为双精度值?
MATLAB的Image 如何使滑动窗口成为双精度值?,image,matlab,filtering,Image,Matlab,Filtering,MATLAB的nlfilter和imfilter函数要求邻域具有整数值,例如[63]。但是,我需要使用双精度窗口(例如[63.615 63.615])或换句话说,1英亩移动窗口来运行焦点计算。在MATLAB中进行这些计算时,是否可以指定包含双精度值的邻域 因为(在我有限的理解中)nlfilter和imfilter是块操作。重新缩放输入数据,并将其转换为整数。 然后您可以将答案转换回float。但是,对于imfilter和nlfilter来说,数据可能太大,至少速度会慢一些 没有低于采样率的信息。
nlfilter
和imfilter
函数要求邻域具有整数值,例如[63]。但是,我需要使用双精度窗口(例如[63.615 63.615])或换句话说,1英亩移动窗口来运行焦点计算。在MATLAB中进行这些计算时,是否可以指定包含双精度值的邻域 因为(在我有限的理解中)nlfilter
和imfilter
是块操作。重新缩放输入数据,并将其转换为整数。
然后您可以将答案转换回float。但是,对于
imfilter
和nlfilter
来说,数据可能太大,至少速度会慢一些 没有低于采样率的信息。因此,移动过滤器意味着在像素级工作。可以选择在过滤之前对图像进行上采样(在计算负载方面并非没有后果)
它会给出类似(未经测试)的结果:
然后,您可以使用imresize
减少采样I2
imresize
将使用双三次插值对像素值进行插值。现在有一个更为理论化的问题,为什么需要亚像素处理
Window=[63.615 63.615];
upsampeled=imresize(I, 100);
f = @(x) YourFunction(x);
I2 = nlfilter(upsampled,Window*100,f);