陈童的博客's Archivers

From everyinch on 2013-09-18 21:47:01

国外互动项目1 -- AS边缘检测互动



ConvolutionFilter类实现了图像矩阵卷积。构造函数如下:
public ConvolutionFilter(matrixX:Number, matrixY:Number, matrix:Array, [divisor:Number], [bias:Number], [preserveAlpha:Boolean], [clamp:Boolean], [color:Number], [alpha:Number])
这里matrix即为要与图像进行卷积操作的矩阵,一般称为模板。matrixX和matrixY指明模板的大小。以3*3的模板为例。
运算的公式可以这样表示(对于每个颜色通道):
dst (x, y) = ((src (x-1, y-1) * a0 + src(x, y-1) * a1....src(x, y+1) * a7 + src (x+1,y+1) * a8) / divisor) + bias
a0—a8分别为matrix[0]—matrix[8]
可以简单理解为:一个3*3大小的模板覆盖在图像上,并在图像上移动。模板中心位置(matrix[4])处图像的像素值为模板下9个像素值与模板各个元素值的加权求和(这里的求和是分别对每个a、r、g、b每个通道进行求和),再除以一个系数divisor防止图像过饱和。最终加上偏移量bias

<img src="http://www.everyinch.net/wp-content/uploads/2013/09/as1-620x466.jpg" alt="as1" width="620" height="466" class="alignnone size-medium wp-image-2329" />

查看完整版本: 国外互动项目1 -- AS边缘检测互动

Tags: Box2D, 边缘检测


©陈童的博客