[컴퓨터비전] 필터처리

필터처리, 에지검출 : http://croute.me/156


실제로 필터를 처리해주는 코드-

public void process_filter(double[,] origin, double[,] result, int flag)

{

            int temp_x_top = 0;

            int temp_x_bottom = 0;

            int temp_y_left = 0;

            int temp_y_right = 0;


            setFilter(flag, filter);

 

            for (int x = 0; x <= 255; x++)

            {

                for (int y = 0; y <= 255; y++)

                {                   

                    if (x == 0) temp_x_top = 255;

                    else if (x == 255) temp_x_bottom = 0;

                    else

                    {

                        temp_x_top = x - 1;

                        temp_x_bottom = x + 1;

                    }

 

                    if (y == 0) temp_y_left = 255;

                    else if (y == 255) temp_y_right = 0;

                    else

                    {

                        temp_y_left     = y - 1;

                        temp_y_right    = y + 1;

                    }

                    result[x, y] =  origin[temp_x_top, temp_y_left]     * filter[0, 0]     

+ origin[temp_x_top, y]     * filter[0, 1]      

+ origin[temp_x_top, temp_y_right]      * filter[0, 2] 


origin[x, temp_y_left]              * filter[1, 0]      

+ origin[x, y]              * filter[1, 1]      

+ origin[x, temp_y_right]               * filter[1, 2] 


origin[temp_x_bottom, temp_y_left]  * filter[2, 0]      

+ origin[temp_x_bottom, y]  * filter[2, 1]      

+ origin[temp_x_bottom, temp_y_right]   * filter[2, 2]  ;

                }

            }

        }



저번에 제대로 나오지 않던 부분에 대해서 수정했다.

문제점은...

작은 프로그램이기는 하지만, 메모리좀 아껴본다고 bitmap을 하나로 돌려서 섰더니, 

버튼 하나로 실행했던 샤프닝 필터는 마지막 이미지로 다 복사되 버리는 결과를 초래......... ㅈㅈ...



Posted by croute

댓글을 달아 주세요