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