Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何使滑动窗口成为双精度值?_Image_Matlab_Filtering - Fatal编程技术网

Image 如何使滑动窗口成为双精度值?

Image 如何使滑动窗口成为双精度值?,image,matlab,filtering,Image,Matlab,Filtering,MATLAB的nlfilter和imfilter函数要求邻域具有整数值,例如[63]。但是,我需要使用双精度窗口(例如[63.615 63.615])或换句话说,1英亩移动窗口来运行焦点计算。在MATLAB中进行这些计算时,是否可以指定包含双精度值的邻域 因为(在我有限的理解中)nlfilter和imfilter是块操作。重新缩放输入数据,并将其转换为整数。 然后您可以将答案转换回float。但是,对于imfilter和nlfilter来说,数据可能太大,至少速度会慢一些 没有低于采样率的信息。

MATLAB的
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);