0

我有一个位图图像上下文,想让它看起来模糊。所以我能想到的最好的事情是高斯算法,但我对这种高斯模糊算法的样子不太了解?你知道这方面的好教程或例子吗?语言没有那么重要,如果它是手工完成的,而不使用太多特定于语言的 API。即在可可中,幸运的人不需要考虑它,他们只需使用已经存在的 Imagefilter。但是我在可可触摸(objective-c,iPhone OS)中没有这样的东西。

4

3 回答 3

4

这其实很简单。您有一个过滤器模式(也称为过滤器内核) - 一个带有系数的(小)矩形阵列 - 并且只需计算图像和模式的卷积

for y = 1 to ImageHeight
  for x = 1 to ImageWidth
    newValue = 0
    for j = 1 to PatternHeight
      for i = 1 to PatternWidth
        newValue += OldImage[x-PatternWidth/2+i,y-PatternHeight/2+j] * Pattern[i,j]
    NewImage[x,y] = newValue

该模式只是二维的高斯曲线或您喜欢的任何其他过滤器模式。您必须注意图像的边缘,因为过滤器图案将部分位于图像之外。您可以假设这些像素是黑色的,或者使用图像的镜像版本,或者任何看起来合理的东西。

最后一点,使用傅里叶变换计算卷积有更快的方法,但这个简单的版本应该足以满足第一次测试的需要。

于 2009-08-25T08:44:42.510 回答
1

除了有关该主题的一些标准信息外, Wikipedia 文章还有一个示例矩阵。

于 2009-08-25T08:31:41.243 回答
1

图像处理的最佳位置是THIS。你可以在那里得到matlab代码。这个 Wolfram 演示应该可以消除任何关于手工操作的疑虑

如果您不想学习太多东西,请学习PIL(Python Imaging Library)

这里”正是您所需要的。

从上面的链接复制的代码:

import ImageFilter

def filterBlur(im):

    im1 = im.filter(ImageFilter.BLUR)

    im1.save("BLUR" + ext)

filterBlur(im1)
于 2009-08-25T08:37:02.947 回答