图像处理过滤器



我正在实现Box过滤器,我想知道我是否应该允许滤镜掩模尺寸,如 3 X 5 或其他尺寸,宽度不同比高度。

到目前为止,我只实现了掩码大小为 3x3 或 5x5 的过滤器。允许宽度与高度不同是否有效?我想我可以允许用户指定这样的掩码,但如果他得到奇怪的结果,那就是他的故障?

谢谢

是的,它是有效的。

筛选器在不同的维度上可能不同。如果您使用的镜头在中心周围不均匀,这也可能发生在光学中。

盒子过滤器传统上是实现为N x N,但你可以将其更改为您喜欢的任何内容。

附带说明一下,OpenCV 允许您使用 cv::filter2D() 创建自己的过滤器,但该函数不允许您创建非二次过滤器。但是,cv::blur()哪个是框过滤器,让我们传递N x M大小。

请注意,如果您的应用程序需要使用多个不同大小的盒式过滤器对同一图像进行重复的盒式过滤,则首先计算给定图像的积分(即 O(N),以 N 个像素为单位),然后计算每个过滤器从积分输出(再次以 O(N) 为单位)会更有效。对于 m 过滤器,这给出了一个 m * O(N) 算法,无论框大小如何。如果您使用几个大框进行过滤,这通常是一个很大的性能优势。

有关OpenCV实现,请参见此处。

最新更新