2013-03-16 115 views
0

我已经使用矩阵/内核实现了高斯模糊。我有3x3,5x5和7x7。 但是,在Corel PhotoPaint中,可以使用参数范围从0.1到250.0的高斯模糊。对于250的值,它会使图像完全模糊并立即运行。 我尝试了7次7x7模糊应用,但花费了很多时间,图像与Corel的4.0高斯模糊模糊不清。如何使参数化高斯模糊?

如何使我的高斯模糊参数化为像来自Corel的模糊并快速模糊图像?

I am using a bit optimized C code from Rosetta7x7 matrix from Wikipedia

I also used this routine to create 51x51 kernel但结果是用Corel的高斯= 15.0比较的和需要大约30秒(这是比的Corel慢30倍)。

+0

我认为您的模糊算法的代码,伪代码或一般性描述可能会有帮助。如果你的模糊算法是O(N^2),那么我认为有优化要做。 – angelatlarge 2013-03-16 20:31:40

+0

我认为明确模糊参数的含义也很重要。我的印象是,需要两个参数:模糊像素(称为模糊区域或参数“N”)和检查模糊像素新值的平方尺寸(称为“M”)。在你的3x3模糊中,是'N' = 3还是'M' = 3? – angelatlarge 2013-03-16 20:34:41

+0

@angelatlarge我认为我的M是3(与我的内核大小一样),N是400(图像大小约为400x400)。 – Tom 2013-03-16 20:38:24

回答

2

你一定知道2D高斯模糊是一个可分离的变换?

它可以实现为两个单独的1D变换。另外,check this out

+0

是的,但我不确定这样会更快。另外 - 我找不到任何算法描述。到处都是只有2d高斯。 – Tom 2013-03-16 22:08:40

+0

好吧,我发现了所谓的“高斯函数”,它产生了1d内核,看起来这是做这个工作。我之前在看“高斯”,这是不对的。 – Tom 2013-03-16 22:36:51

+1

很高兴能帮到你! – 2013-03-16 22:37:39