첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ 가우시안-라플라시안 영교차 에지 회선 적용하기

----------------------------------------------------------------------------------------------------

#region 가우시안-라플라시안 영교차 에지 회선 적용하기 - ConvolveGaussianLaplacianZeroCrossingEdge(sourceArray)

 

/// <summary>

/// 가우시안-라플라시안 영교차 에지 회선 적용하기

/// </summary>

/// <param name="sourceArray">소스 배열</param>

/// <returns>가우시안-라플라시안 영교차 에지 회선 적용 배열</returns>

public int[,] ConvolveGaussianLaplacianZeroCrossingEdge(int[,] sourceArray)

{

    int       sourceWidth                = sourceArray.GetUpperBound(1) + 1;

    int       sourceHeight               = sourceArray.GetUpperBound(0) + 1;

    double[,] gaussianLaplacianMaskArray =

    {

        { 0.0, 0.0, 3.0,   2.0,   2.0,   2.0, 3.0, 0.0, 0.0 },

        { 0.0, 2.0, 3.0,   5.0,   5.0,   5.0, 3.0, 2.0, 0.0 },

        { 3.0, 3.0, 5.0,   3.0,   0.0,   3.0, 5.0, 3.0, 3.0 },

        { 2.0, 5.0, 3.0, -12.0, -23.0, -12.0, 3.0, 5.0, 2.0 },

        { 2.0, 5.0, 0.0, -23.0, -40.0, -23.0, 0.0, 5.0, 2.0 },

        { 2.0, 5.0, 3.0, -12.0, -23.0, -12.0, 3.0, 5.0, 2.0 },

        { 3.0, 3.0, 5.0,   3.0,   0.0,   3.0, 5.0, 3.0, 3.0 },

        { 0.0, 2.0, 3.0,   5.0,   5.0,   5.0, 3.0, 2.0, 0.0 },

        { 0.0, 0.0, 3.0,   2.0,   2.0,   2.0, 3.0, 0.0, 0.0 }

    };

 

    // "NO BIAS 에지 회선 적용하기" 참조

    int[,] gaussianLaplacianArray = ConvolveEdgeNoBias(sourceArray, gaussianLaplacianMaskArray);

 

    int[,] resultArray = ConvolveZeroCrossingEdge(gaussianLaplacianArray, 3, 3); // "영교차 에지 회선 적용하기" 참조

 

    return resultArray;

}

 

#endregion

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker

댓글을 달아 주세요