C++ 模糊高斯算法是什么样子的?有实施的例子吗?

C++ 模糊高斯算法是什么样子的?有实施的例子吗?,c++,algorithm,image-processing,gaussian,C++,Algorithm,Image Processing,Gaussian,我有一个位图图像上下文,想让它看起来模糊。所以我能想到的最好的方法是高斯算法,但我不知道这种高斯模糊算法是什么样子的?你知道这方面的好教程或例子吗?如果完全是手工操作,而没有过多地使用特定于语言的API,那么语言就没有那么重要了。也就是说,在cocoa中,幸运的家伙不需要考虑它,他们只需要使用已经存在的图像过滤器。但是我在cocoa touch(objective-c,iPhone OS)中没有类似的东西。除了主题的一些标准信息之外,还有一个样本矩阵。除了主题的一些标准信息之外,还有一个样本矩阵

我有一个位图图像上下文,想让它看起来模糊。所以我能想到的最好的方法是高斯算法,但我不知道这种高斯模糊算法是什么样子的?你知道这方面的好教程或例子吗?如果完全是手工操作,而没有过多地使用特定于语言的API,那么语言就没有那么重要了。也就是说,在cocoa中,幸运的家伙不需要考虑它,他们只需要使用已经存在的图像过滤器。但是我在cocoa touch(objective-c,iPhone OS)中没有类似的东西。

除了主题的一些标准信息之外,还有一个样本矩阵。

除了主题的一些标准信息之外,还有一个样本矩阵。

图像处理的最佳位置是。您可以在那里获得matlab代码。
并且应该消除任何关于手工操作的疑问

如果你不想学太多东西,那就学吧

”正是您所需要的

从上述链接复制的代码:

import ImageFilter

def filterBlur(im):

    im1 = im.filter(ImageFilter.BLUR)

    im1.save("BLUR" + ext)

filterBlur(im1)

图像处理的最佳场所是。您可以在那里获得matlab代码。
并且应该消除任何关于手工操作的疑问

如果你不想学太多东西,那就学吧

”正是您所需要的

从上述链接复制的代码:

import ImageFilter

def filterBlur(im):

    im1 = im.filter(ImageFilter.BLUR)

    im1.save("BLUR" + ext)

filterBlur(im1)

这其实很简单。您有一个过滤器模式(也称为过滤器内核)——一个带有系数的(小)矩形数组——只需计算图像和模式的大小

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


最后请注意,使用傅里叶变换计算卷积有更快的方法,但是这个简单的版本应该足以进行第一次测试。

这实际上非常简单。您有一个过滤器模式(也称为过滤器内核)——一个带有系数的(小)矩形数组——只需计算图像和模式的大小

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


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

PIL真的在iPhone上运行吗?(我没有iPhone,我只是好奇)我不知道。我也没有iPhone-双音是客观c。我不确定python的东西,但我想说不,它不在那里运行。如果我错了,请纠正我。PIL真的在iPhone上运行吗?(我没有iPhone,我只是好奇)我不知道。我也没有iPhone-双音是客观c。我不确定python的东西,但我想说不,它不在那里运行。如果我错了,请纠正我。有没有办法将这个7*7矩阵移植到cocoa touch CALayer变换矩阵的4*4矩阵中?没有。变换矩阵用于进行坐标变换(平移、旋转等)。它与卷积矩阵(用于将像素值混合在一起)没有关系。有没有办法将这个7*7矩阵移植到cocoa touch CALayer变换矩阵的4*4矩阵中?没有。变换矩阵用于进行坐标变换(平移、旋转等)。它与卷积矩阵(用于将像素值混合在一起)无关。我遵循此示例,但我通过以下方式访问像素图像:
pImg[I*iWidth+j]=currentPixel
,其中
I
j
是嵌套for循环中的变量。然后,我如何使用读取像素的方式更改行
newValue+=OldImage[x-PatternWidth/2+I,y-PatternHeight/2+j]*Pattern[I,j]
NewImage[x,y]=newValue
?我遵循这个示例,但我以以下方式访问我的像素图像:
pImg[I*iWidth+j]=currentPixel
其中
i
j
是嵌套for循环中的变量。然后,我如何使用读取像素的方式更改行
newValue+=OldImage[x-PatternWidth/2+I,y-PatternHeight/2+j]*Pattern[I,j]
NewImage[x,y]=newValue