- Description
 1. 얼굴이 포함된 2장의 컬러 이미지 파일을 열어서 얼굴 부분만 첫 번째, 두 번째 윈도우 창에 각각 보인다.
 2. 얼굴 영역에 모폴로지를 적용하여 노이즈를 제거한 후 세 번째, 네 번째 윈도우 창에 각각 보인다.
 3. 세 번째 얼굴에서 네 번째 얼굴로 서서히 변하는 이미지를 다섯 번째 윈도우 창에 보인다.


- Screen Shot

Source Image 1

Source Image2


Source Image에서 얼굴부분 윤곽만 따낸 Image


위에서 따낸 얼굴 Image에 Morphology를 적용해서 노이즈를 제거한 Image


실제로 Weighted Sum을 수행 한 뒤 생성된 Morphing Image


- Source Code

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka

- Description

 1. 얼굴이 포함된 컬러 이미지 파일을 열어서 첫 번째 윈도우 창에 보인다.
 2. 컬러 이미지에서 얼굴 부분은 컬러로, 나머지 부분은 그레이로 하여 두 번째 창에 보인다.


- Screen Shot

원본 소스 이미지

컬러공간 변환(RGB to HSV)과 이미지연산, Threshold를 적용해서 얼굴부분 색만 추출한 이미지


- Source Code


- Visual Studio 6.0 Project File

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka

- Description

 1. 이미지 파일을 열어서 첫 번째 윈도우 창에 보인다.
 2. 첫 번째 윈도우에서 마우스 클릭을 두 번하면 두 개의 마우스 커서 좌표를 각각 사각형의 왼쪽 위 좌표, 오른쪽 아래 좌표로 하여 사각형 영역을 설정하고, 이 영역의 이미지만 r, g, b 평균을 하여 두 번째 윈도우 창에 보인다.
 3. 이 때, 두 번째 창에는 선택된 영역의 크기만큼만 보여야 한다.


- Screen Shot



- Source Code



- Visual Studio 6.0 Project File


- 비교 : http://ryuisaka.com/334 (cvGetReal2D와 cvSetReal2D 함수를 사용한 버전)
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka
선배들이 쉽다고 하는게 이해가 안갔는데, 막상 만들어놓고 보니 쉽긴 쉽다.
다만, 각 Color Space 별 특징이나 다른점 등을 이해하는게 어려운 듯.
역시나 이번껏도 막상 만들어놓고 제대로 만든건지 의문이다...
책 주문해놨으니, 오면 좀 제대로 봐야지...-_-;;


- 프로그램 작동 동영상


- 소스코드
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka

/**********************************/

/*      Numerical Analysis Homework #2     */

/*      Department of Computer Science     */

/*      2003721181, Lee Seong woo          */

/**********************************/

#include <stdio.h>

#include <math.h>


#define CAPACITY 10


double func(double p);


int main(void)

{

        double p[CAPACITY];

        int i = 1;

        double tolerance = 0.0005;   // Tolerance - 오차 한계 값

        p[0] = 1.0; p[1] = 2.0;


        printf("-------------------------------------n");

        printf("n            pn              f(pn)   n");

        printf("-------------------------------------n");


        // p[i] 값과값 차이의 절대값이 Tolerance보다 작을 때 프로그램 종료

        while(fabs(p[i] - p[i - 1]) >= tolerance)

        {

                i++;

                p[i] = p[i-1] - (func(p[i-1]) * (p[i-1] - p[i-2])) / (func(p[i-1]) - func(p[i-2]));

                printf("%dt%.10ft%.10fn", i, p[i], func(p[i]));

        }

        printf("-------------------------------------n");


        return 0;

}


// 해를 구하기 위한 함수

double func(double p)

{

        return pow(p, 3) + 4 * pow(p, 2) - 10;

}


----
2007/09/20 - [놀이] - [과제] Numerical Analysis - C로 구현한 Bisection Method

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka
/**************************************/

/*      Numerical Analysis Homework #1       */

/*      Department of Computer Science       */

/*      2003721181, Lee Seong woo              */

/**************************************/

#include <stdio.h>

#include <math.h>


double logB(double x, double base);

double func(double p);

int getIterations(double tolerance, double startPoint, double endPoint);


int main(void)

{

        double a = 1.0, b = 2.0, tolerance = 0.0005;

        int i, repeat;

       

        // 주어진 Tolerance를 이용해서 필요한 반복횟수를 구함

        repeat = getIterations(tolerance, a, b);

       

        printf("---------------------------------------------------------------------n");

        printf("n            an              bn              pn             f(pn)n");

        printf("---------------------------------------------------------------------n");

        for(i = 0; i < repeat; i++)

        {

                if(func(a) * func(a + ((b - a) / 2)) < 0)

                {

                        printf("%dt%.10ft%.10ft%.10ft%.10fn",

                              i + 1, a, b, a + ((b - a) / 2), func(a + ((b - a) / 2)));

                        b = a + ((b - a) / 2);

                }

                else

                {

                        printf("%dt%.10ft%.10ft%.10ft%.10fn",

                              i + 1, a, b, a + ((b - a) / 2), func(a + ((b - a) / 2)));

                        a = a + ((b - a) / 2);

                }

        }

        printf("---------------------------------------------------------------------n");


        return 0;

}


// 밑을 임의로 정할 수있는 로그함수

double logB(double x, double base)

{

        return log(x) / log(base);

}


// 해를 구하기 위한 함수

double func(double p)

{

        return pow(p, 3) + 4 * pow(p, 2) - 10;

}


// Tolerance에 따른 반복횟수를 구함

int getIterations(double tolerance, double startPoint, double endPoint)

{

        return ceil(logB((endPoint - startPoint) / tolerance, 2));

}

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka


컴퓨터그래픽스 과제.
아니....명색이 OpenGL을 배우면 3D로 뭔가 멋진걸 만들어오라고 하시지....
왠 점찍고 선 그리고 도형 그리기냐고 -_-;;
별것도 아닌데 개고생 했다;;
관건은 역시나 창 크기가 변화했을 때의 좌표 처리.
그 외에는 순조롭게 풀렸고, 점찍기 구현 다 하고 나니 선 그리기와 도형 그리기는 5분만에
해결됐다.
소스는 첨부해놨으니 베끼고싶으면 베끼고 참고하고싶으면 참고하시길.
아래 그림은 그냥 허전해서 올려놓은것이니까 참고하시고, 그림이 잘 안보이면 클릭해서
보시길;


사용자 삽입 이미지

메인화면. 오른쪽버튼을 누르면 점찍기, 선그리기, 도형그리기 메뉴가 나온다.


사용자 삽입 이미지

점찍기 모드. 별다른거 없다. 그냥 점 찍는다.


사용자 삽입 이미지

선 그리기. 이것도 그냥 선 그린다.


사용자 삽입 이미지

도형그리기. 이것도 물론 도형만 그린다. 원, 사각형 이딴걸 그리는게 아니라 점 찍히는대로 따라가서 그리는거다.




소스 그냥보기(클릭)

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka

사용자 삽입 이미지

SP3 네번째 과제, C#으로 구현한 아주아주아주 간단한 그림판.
기능은 선 그리기(실선, 점선, 파선), 도형 그리기(원, 채워진 원, 사각형, 채워진 사각형),
선 색 바꾸기, 선 두께 바꾸기.
자잘한 버그 수정하고 파일로 저장하는 기능 등 추가하고 Windows 내장 그림판 정도의
기능을 구현해보자.
근데.....언제??? -_-;;;
암튼...소스는 매우매우매우 스파게티같으니....베낄려면 베끼시고...
근데 지금 봐도 소스 정말 더럽다;;

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka

비는 이틀째 내리고 기분은 deep blue....blue....
드디어 OS 과제가 나왔다.
기간은 4주정도?
하지만 실제 제작 가능한 기간은 1~2주 정도밖에 안될듯.
뭔가 감이 올듯 말듯...애매함.
어쨌든 잘 해봐야지.
광운분식에서 밥먹었는데 누가 우산을 가져가버렸다.
선배 씌워주고, 친구 씌워주고.
결국 나는 비 맞고 집에 가게될듯.
뭐야 이거;
힘들다 힘들다 하다 보면 더 힘들어지는것 같다.
하나씩 하나씩 잘 헤쳐나가다 보면 끝이 보이겠지.
내일은 컴퓨터구조 Quiz.
일단 이것부터.

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka

소프트웨어공학 과제때문에 동아리방에 꽤나 늦게까지 있다가 좀 전에 집에 들어왔다.

거의 18시간만에 집에 온건가;

어차피 집에서 과제 했었더라도 이 시간까지(아니, 어쩌면 더 늦게까지) 하고 있었을테니...

텅빈 방안에 음악 틀어놓고 혼자 끙끙대는것 보다는 동아리 사람들과 함께 있는게 더 재밌는것 같다는 생각;

어쨌든 과제는 데드라인에 거의 임박해서 하기땜에;;

그래도 막막했던 소프트웨어공학 과제가 거의 마무리 되어가는구나...

소프트웨어실습3 과제 끝내놓고 잘까나...

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by RyuiSaka