1. 얼굴이 포함된 2장의 컬러 이미지 파일을 열어서 얼굴 부분만 첫 번째, 두 번째 윈도우 창에 각각 보인다.
2. 얼굴 영역에 모폴로지를 적용하여 노이즈를 제거한 후 세 번째, 네 번째 윈도우 창에 각각 보인다.
3. 세 번째 얼굴에서 네 번째 얼굴로 서서히 변하는 이미지를 다섯 번째 윈도우 창에 보인다.
- Screen Shot
- Source Code
- Description
1. 얼굴이 포함된 컬러 이미지 파일을 열어서 첫 번째 윈도우 창에 보인다.
2. 컬러 이미지에서 얼굴 부분은 컬러로, 나머지 부분은 그레이로 하여 두 번째 창에 보인다.
- Screen Shot
- Description
1. 이미지 파일을 열어서 첫 번째 윈도우 창에 보인다.
2. 첫 번째 윈도우에서 마우스 클릭을 두 번하면 두 개의 마우스 커서 좌표를 각각 사각형의 왼쪽 위 좌표, 오른쪽 아래 좌표로 하여 사각형 영역을 설정하고, 이 영역의 이미지만 r, g, b 평균을 하여 두 번째 윈도우 창에 보인다.
3. 이 때, 두 번째 창에는 선택된 영역의 크기만큼만 보여야 한다.
- Screen Shot
/**********************************/
/* 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
/* 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));
}
소스 그냥보기(클릭)
SP3 네번째 과제, C#으로 구현한 아주아주아주 간단한 그림판.
기능은 선 그리기(실선, 점선, 파선), 도형 그리기(원, 채워진 원, 사각형, 채워진 사각형),
선 색 바꾸기, 선 두께 바꾸기.
자잘한 버그 수정하고 파일로 저장하는 기능 등 추가하고 Windows 내장 그림판 정도의
기능을 구현해보자.
근데.....언제??? -_-;;;
암튼...소스는 매우매우매우 스파게티같으니....베낄려면 베끼시고...
근데 지금 봐도 소스 정말 더럽다;;