Convolution 는 회선기법으로써 입력픽셀과 그 주위의 이웃한 픽셀들을 가중평균(weighted average) 하여 처리하는 기법으로 플래시에서도 ConvolutionFilter 를 지원한다. 다른 필터에 비해 사용빈도에 있어서 떨어지지만 잘만 사용한다면 플래시에서도 포토샵에서 지원하는 여러 효과들의 필터 효과를 낼 수 있을것이다..
인접픽셀들을 이용하기 때문에 나타낼 수 있는 효과는 대부분 이미지의 경계부분(edge) 변형으로 생기는 embossing,blur,sharpen,accented-edge 같은 효과들이다.
convolution 필터는 9개의 파라미터가 존재하는데 일반적으로 아래와 같이 4개를 사용하여 제어를 한다.
ConvolutionFilter(matrixX:Number=0, matrixY:Number=0,matrix:Array=null,divisor:Number=1.0) 여기서 가장 중요한 부분이 matrix 라는 배열 파라미터인데 일반적으로 3x3 행렬을 사용한다. 0 0 0 0 1 0 => [ 0,0,0, 0,1,0, 0,0,0] 형렬표기방법은 좌측과 같이 열단위로 끊어서 작성한다. 0 0 0 <default> matrix 는 중앙에 있는 값(1)을 기준으로 대칭형태로 사용한다. 이는 인접픽셀과의 가중치 계산을 위한 비율과도 무관하지 않다. 또한 모든 matirx 의 요소 값의 합이 1을 기준으로 크게되면 전체적인 이미지의 밝기(brightness)가 증가하게 되고, 반대로 1보다 작게 되면 밝기가 감소하게 된다. 위에서 볼수 있듯이 matrix 값의 총합이 1이 아닐경우 원본값에서 이미지 밝기에서 차이가 난다. 이런 뜻하지 않은 이미지 밝기의 변화로 인해 의도했던 이미지 효과가 묻혀버리게 되는 일이 발생하는데 이런걸 방지하기 위해 divisor 를 사용하여 값을 조정해준다. divisor 은 convolution 필터의 4번째 파라미터로서 결과값에 대한 강도를 낮춰주게 된다. matrix 전체의 총합을 divisor 로 나눈값이 1을 기준으로 설정될수 있는 밝기로 생각하면 된다. ConvolutionFilter(3,3,[0, 0, 0, 0, 1, 0, 0, 0, 0]) ConvolutionFilter(3,3,[0, 0, 0, 0, 3, 0, 0, 0, 0],3) 따라서 위 두개의 필터값은 같은 효과를 나타낸다. <embossing>embossing 의 matrix 는 양수의 중앙값을 기준으로 좌우의 값의 부호가 반대인 좌우대칭형태 a d -c -2 -1 0 b e -b ==> -1 1 1 ==> new ConvolutionFilter(3,3, [-2, -1, 0, -1, 1, 1, 0, 1, 2]) c -d -a 0 1 2 <sharpening>sharpening 의 matrix 는 양수의 중앙값을 기준으로 상하대칭형태 a b c 0 -1 0 d e d ==> -1 5 -1 ==> new ConvolutionFilter(3,3, [0, -1, 0, -1, 5, -1, 0, -1, 0]) c b a 0 -1 0 <accented-edge>accented-edge 의 matrix 는 sharpening 과 비슷한 형태로 음수의 중앙값을 기준으로 상하대칭형태 a b c 0 1 0 d e d ==> 1 -3 1 ==> new ConvolutionFilter(3,3, [0, 1, 0, 1, -3, 1, 0, 1, 0]) c b a 0 1 0 위 모든 효과는 중앙값(e) 을 조정하여 효과의 강도를 조정할 수 있다. download sample files...
|