我正在实施Box过滤器,我想知道是否应该允许 过滤掩模尺寸,如3 X 5或其他,宽度不同 比高度。
到目前为止,我只实现了屏幕大小为3x3或5x5的过滤器。 允许宽度与高度不同是否有效?我想我可以 允许用户指定这样的面具,但如果他得到了奇怪的结果,那就是他的 故障?
由于
答案 0 :(得分:0)
是的,它是有效的。
过滤器在不同维度上可能有所不同。如果您使用的镜头在中心周围不均匀,也可能在光学系统中发生这种情况。
答案 1 :(得分:0)
盒式过滤器传统上实现为N x N
,但您可以将其更改为您喜欢的任何内容。
只是旁注,OpenCV让你create your own filters with cv::filter2D()
,但该功能不允许你创建非二次滤波器。但是,cv::blur()
是一个盒式过滤器,让您传递N x M
个尺寸。
答案 2 :(得分:0)
请注意,如果您的应用程序需要对具有不同大小的多个盒式过滤器的相同图像重复进行盒式过滤,则首先计算给定图像的积分(即O)会更有效(N),在像素数N中),然后从积分计算每个滤波器的输出(再次在O(N)中)。对于m个滤波器,无论盒子大小如何,都可以得到m * O(N)算法。如果你使用几个大盒子过滤,这通常是一个很大的性能胜利。
有关OpenCV实现的信息,请参阅here。