이미지 워핑과 모핑
|
|
- 나은 인
- 5 years ago
- Views:
Transcription
1 제 6 장영상워핑과모핑
2 학습목표 다음기하학적처리의개념을설명할수있고프로그램을작성할수있다 영상워핑 영상모핑 영상처리 2
3 영상워핑 (Warpng) 픽셀의위치를이동하는기하학적처리 회전, 이동, 확대 / 축소등의기하학적처리와의차이점 픽셀별로이동정도가다름 고무종이위에그려진영상을임의로구부리는효과를낼수있음 영상처리 3
4 영상워핑 (Warpng) 사용예 인공위성이나우주선에서보내온일그러진영상을복원하는데처음사용 TV 나영화에서물체, 동물, 배우의모습을변형하는데사용 미아의성장모습을생성 영상처리 4
5 영상워핑 영상처리 5
6 영상워핑 입력영상과출력영상의대응관계기술 제어선, 제어점, 그물망, 다각형등다양한방법이있음 < 제어선 > < 제어점 > 영상처리 6
7 제어선을이용한워핑 출력영상의픽셀 V 에대응되는입력영상의픽셀 V 을찾아서픽셀값복사 수직교차점이제어선내부에존재 Q V C C 위치 변위 P 입력영상 출력영상 영상처리 7
8 제어선을이용한워핑 수직교차점이제어선외부에존재 C 입력영상 C 출력영상 영상처리 8
9 제어선을이용한워핑 제어선이여러개인경우 제어선은영상내의모든화소들에영향을미침 각제어선에대한가중치고려 가중치 = 제어선의길이 p (a+ 픽셀과제어선의거리 ) b p : 선의길이에대한가중치 (0 p 1) a : 0 으로나누는것을방지 b : 거리의증가에대한가중치의감소율 (0.5 b 2.0) 영상처리 9
10 제어선을이용한영상워핑알고리즘 warpng() { 출력영상의각픽셀 V(,) 에대하여 { t = 0 // 방향변위의합을나타내는변수를초기화한다 t = 0 // 방향변위의합을나타내는변수를초기화한다 totalweght = 0 // 가중치의합을나타내는변수를초기화한다각제어선 L 에대하여 { V 와 L 의수직교차점의위치 u 를계산한다. V 와 L 의수직변위 h 를계산한다 u 와 h 를이용하여입력영상에서의대응위치 V (, ) 을구한다. V 와 L 사이의거리를 d 를계산한다. weght = (( 제어선의길이 p )/(a+d)) b t = t + ( -) * weght t = t + ( -) * weght totalweght = totalweght + weght } X = + t / totalweght Y = + t / totalweght 입력영상의 V (X,Y) 픽셀의값을출력영상의 V(,) 픽셀에복사한다. } } 영상처리 10
11 제어선을이용한워핑 수직교차점의위치계산 Q( +1, +1 ) C( c, c ) L P(, ) u V(, ) 영상처리 11
12 제어선을이용한워핑 수직교차점의위치계산 u 는수직교차점의위치에따라다음과같은범위의값을가짐 u < 0 : P 바깥에위치 0 <= u <= 1 : 제어선내부에위치 u > 1 : Q 외부에위치 u 값의계산 u ( )( 1 ) ( )( ( 1 ) ( 1 ) ) 영상처리 12
13 제어선을이용한워핑 제어선으로부터의변위계산 픽셀을지나면서제어선과수직으로교차하는점과픽셀사이의변위 변위 (h) 의값 변위 < 0 : 픽셀이제어선아래쪽에있음 변위 = 0 : 픽셀이제어선에있음 변위 > 0 : 픽셀이제어선위쪽에있음 Q Q V h h P P V (a) h > 0 인경우 (b) h < 0 인경우 영상처리 13
14 영상처리 14 제어선을이용한워핑제어선으로부터의변위계산 ) ( ) ( ) )( ( ) )( ( h
15 영상처리 15 제어선을이용한워핑입력영상에서대응픽셀위치계산 ), ( ') ', ( ' 1 ' 1 과 2 ' 1 2 ' 1 ' 1 ' 1 2 ' 1 2 ' 1 ' 1 ' 1 ') ( ') ( ') ( ') ( ' ' ') ( ') ( ') ( ') ( ' ' h u h u : 제어선 L 의양끝점좌표
16 제어선을이용한워핑 픽셀과제어선의거리계산 (a) 수직교차점이제어선내부에있는경우 (b) 수직교차점이제어선외부에있는경우 영상처리 16
17 영상처리 17 제어선을이용한워핑픽셀과제어선사이의거리계산 ) ( ) ( ) ( ) ( u u u h d
18 영상처리 18 제어선을이용한워핑제어선의가중치계산 ) (0.001 ) ( ) ( ) ( d d a weght b p 제어선길이
19 제어선을이용한워핑 입력영상대응픽셀의변위누적 t t t t ( ' ) weght ( ' ) weght totalwegh t totalwegh t weght 영상처리 19
20 제어선을이용한워핑 입력영상의대응픽셀위치계산 t X totalwegh t Y t totalwegh t 영상처리 20
21 모핑 (Morphng) 두개의서로다른입력영상에대하여한영상을다른영상으로변환 영상처리 21
22 모핑의단계 모핑은워핑과합병의두단계로구성 영상처리 22
23 두영상사이의대응관계기술 모핑을위해서는두영상사이의대응위치를기술해야함 영상처리 23
24 워핑 중간프레임에대한제어선생성 두입력영상의제어선으로부터보간법을사용하여생성 영상처리 24
25 영상처리 25 워핑 K 번째중간프레임에대한제어선계산식 ) ( ) ( ) ( ) ( / u u u u N k u q q p p N : 전체프레임수입력영상 1 입력영상 2 ( 1, 1 ) ( 2, 2 ) ( 3, 3 ) ( 4, 4 ) ( p, p ) ( q, q ) K 번째중간프레임
26 영상처리 26 합병영상합병 ), ( ), ( ) (1 ), ( / 2 1 I u I u O N k u I 1 (,) : 입력영상 1 로부터복사되는픽셀값 I 2 (,) : 입력영상 2 로부터복사되는픽셀값
27 실습
28 워핑 기하학적처리메뉴에워핑연산부메뉴추가 이름 : 워핑 ID : ID_GEOMETRY_WARPING
29 워핑 CImageProVew 클래스에 OnGeometrWarpng() 함수를추가하고편집한다. vod CImageProVew::OnGeometrWarpng() { CImageProDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); } f (pdoc->nputimg == NULL) return; pdoc->geometrwarpng(); vewmode = TWO_IMAGES; Invaldate(FALSE);
30 워핑 CImageProDoc 클래스에 GeometrWarpng() 함수를추가 반환형식 : vod 함수이름 : GeometrWarpng
31 워핑 tpedef struct { nt P; nt P; nt Q; nt Q; } control_lne; #nclude <math.h> vod CImageProDoc::GeometrWarpng() { control_lne source_lnes[23] = {{116,7,207,5},{34,109,90,21},{55,249,30,128},{118,320,65,261}, {123,321,171,321},{179,319,240,264},{247,251,282,135},{281,114,228,8}, {78,106,123,109},{187,115,235,114},{72,142,99,128},{74,150,122,154}, {108,127,123,146},{182,152,213,132},{183,159,229,157},{219,131,240,154}, {80,246,117,212},{127,222,146,223},{154,227,174,221},{228,252,183,213}, {114,255,186,257},{109,258,143,277},{152,278,190,262}};
32 워핑 control_lne dest_lnes[23] = {{120,8,200,6},{12,93,96,16},{74,271,16,110},{126,336,96,290}, {142,337,181,335},{192,335,232,280},{244,259,288,108},{285,92,212,13}, {96,135,136,118},{194,119,223,125},{105,145,124,134},{110,146,138,151}, {131,133,139,146},{188,146,198,134},{189,153,218,146},{204,133,221,140}, {91,268,122,202},{149,206,159,209},{170,209,181,204},{235,265,208,199}, {121,280,205,284},{112,286,160,301},{166,301,214,287}}; double u; // 수직교차점의위치 double h; // 제어선으로부터픽셀의수직변위 double d; // 제어선과픽셀사이의거리 double t, t; // 결과영상픽셀에대응되는입력영상픽셀사이의변위의합 double p, p; // 각제어선에대해계산된입력영상의대응되는픽셀위치 double weght; // 각제어선의가중치 double totalweght; // 가중치의합 double a=0.001; double b=2.0; double p=0.75;
33 워핑 nt 1, 2, 1, 2; nt src_1, src_1, src_2, src_2; double src_lne_length, dest_lne_length; nt num_lnes = 23; nt lne; nt, ; nt source_, source_; nt last_row, last_col; // 제어선의수 last_row = mageheght-1; last_col = magewdth-1;
34 워핑 // 출력영상의각픽셀에대하여 for(=0; <mageheght; ++) { for(=0; <magewdth; ++) { totalweght = 0.0; t = 0.0; t = 0.0; // 각제어선에대하여 for (lne = 0; lne < num_lnes; lne++) { 1 = dest_lnes[lne].p; 1 = dest_lnes[lne].p; 2 = dest_lnes[lne].q; 2 = dest_lnes[lne].q; dest_lne_length = sqrt((double) (2-1)*(2-1)+(2-1)*(2-1));
35 워핑 // 수직교차점의위치및픽셀의수직변위계산 u = (double) ((-1)*(2-1)+(-1)*(2-1)) / (double) ((2-1)*(2-1)+(2-1)*(2-1)); h = (double) ((-1)*(2-1)-(-1)*(2-1)) / dest_lne_length; // 제어선과픽셀사이의거리계산 f (u < 0 ) d = sqrt((double) (-1) * (-1) + (-1) * (-1)); else f (u > 1) d = sqrt((double) (-2) * (-2) + (-2) * (-2)); else d = fabs(h); src_1 = source_lnes[lne].p; src_1 = source_lnes[lne].p; src_2 = source_lnes[lne].q; src_2 = source_lnes[lne].q; src_lne_length=sqrt((double) (src_2-src_1)*(src_2-src_1)+ (src_2-src_1)*(src_2-src_1));
36 워핑 } // 입력영상에서의대응픽셀위치계산 p = src_1+u*(src_2 - src_1) - h * (src_2 - src_1) / src_lne_length; p = src_1+u*(src_2 - src_1) + h * (src_2 - src_1) / src_lne_length; // 제어선에대한가중치계산 weght = pow((pow((double)(dest_lne_length),p) / (a + d)), b); // 대응픽셀과의변위계산 t += (p - ) * weght; t += (p - ) * weght; totalweght += weght;
37 워핑 source_ = + (nt) (t / totalweght + 0.5); source_ = + (nt) (t / totalweght + 0.5); // 영상의경계를벗어나는지검사 f (source_ < 0) source_ = 0; f (source_ > last_col) source_ = last_col; f (source_ < 0) source_ = 0; f (source_ > last_row) source_ = last_row; } } } resultimg[][] = nputimg[source_][source_];
38 워핑 Warp.pgm 파일을열어서워핑을적용
39 모핑 기하학적처리메뉴에모핑부메뉴추가 Capton : 모핑 ID : ID_GEOMETRY_MORPHING
40 모핑 CImageProVew 클래스에 OnGeometrMorphng() 함수추가 vod CImageProVew::OnGeometrMorphng() { CImageProDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); } pdoc->geometrmorphng(); vewmode = MORPHING; Invaldate(FALSE);
41 모핑 CImageProVew.cpp 파일의위부분에 MORPHING 상수에대한정의를추가 -- 추가하기전 #defne TWO_IMAGES 1 #defne THREE_IMAGES 2 #defne TWO_IMAGES_SCALED 4 -- 추가한다음 #defne TWO_IMAGES 1 #defne THREE_IMAGES 2 #defne TWO_IMAGES_SCALED 4 #defne MORPHING 8
42 모핑 CImageProDoc 클래스의정의에모핑과정에서생성되는중간프레임을저장하기위한변수 morphedimg 를선언 // Attrbutes publc: unsgned char **nputimg; // 입력영상의기억장소에대한포인터변수 unsgned char **nputimg2; // 입력영상의기억장소에대한포인터변수 unsgned char **resultimg; // 출력영상의기억장소에대한포인터변수 nt magewdth; // 영상의가로크기 nt mageheght; // 영상의세로크기 nt depth; // 1 = 흑백영상, 3 = 컬러영상 nt gimagewdth; // 크기가변한결과영상의가로크기 nt gimageheght; // 크기가변한결과영상의세로크기 unsgned char **gresultimg; // 크기가변한결과영상에대한포인터변수 // 모핑결과저장을위해새로이추가되는코드 unsgned char **morphedimg[10];
43 모핑 CImageProDoc 클래스에 GeometrMorphng() 함수를추가 반환형식 : vod 함수이름 : GeometrMorphng
44 모핑 #defne NUM_FRAMES 10 vod CImageProDoc::GeometrMorphng() { control_lne source_lnes[23] = {{116,7,207,5},{34,109,90,21},{55,249,30,128},{118,320,65,261}, {123,321,171,321},{179,319,240,264},{247,251,282,135},{281,114,228,8}, {78,106,123,109},{187,115,235,114},{72,142,99,128},{74,150,122,154}, {108,127,123,146},{182,152,213,132},{183,159,229,157},{219,131,240,154}, {80,246,117,212},{127,222,146,223},{154,227,174,221},{228,252,183,213}, {114,255,186,257},{109,258,143,277},{152,278,190,262}}; control_lne dest_lnes[23] = {{120,8,200,6},{12,93,96,16},{74,271,16,110},{126,336,96,290}, {142,337,181,335},{192,335,232,280},{244,259,288,108},{285,92,212,13}, {96,135,136,118},{194,119,223,125},{105,145,124,134},{110,146,138,151}, {131,133,139,146},{188,146,198,134},{189,153,218,146},{204,133,221,140}, {91,268,122,202},{149,206,159,209},{170,209,181,204},{235,265,208,199}, {121,280,205,284},{112,286,160,301},{166,301,214,287}};
45 모핑 double u; // 수직교차점의위치 double h; // 제어선으로부터픽셀의수직변위 double d; // 제어선과픽셀사이의거리 double t, t; // 결과영상픽셀에대응되는입력영상픽셀사이의변위의합 double p, p; // 각제어선에대해계산된입력영상의대응되는픽셀위치 double weght; // 각제어선의가중치 double totalweght; // 가중치의합 double a=0.001, b=2.0, p=0.75; unsgned char **warpedimg; unsgned char **warpedimg2; nt frame; double fweght; control_lne warp_lnes[23]; double t2, t2, p2, p2; nt dest_1, dest_1, dest_2, dest_2, source_2, source_2; nt 1, 2, 1, 2, src_1, src_1, src_2, src_2; double src_lne_length, dest_lne_length; nt, j; nt num_lnes = 23; // 제어선의수 nt lne,,, source_, source_, last_row, last_col;
46 모핑 // 두입력영상을읽어들임 LoadTwoImages(); // 중간프레임의워핑결과를저장을위한기억장소할당 warpedimg = (unsgned char **) malloc(mageheght * szeof(unsgned char *)); for ( = 0; < mageheght; ++) { warpedimg[] = (unsgned char *) malloc(magewdth * depth); } warpedimg2 = (unsgned char **) malloc(mageheght * szeof(unsgned char *)); for ( = 0; < mageheght; ++) { warpedimg2[] = (unsgned char *) malloc(magewdth * depth); }
47 모핑 for ( = 0; < NUM_FRAMES; ++) { morphedimg[]=(unsgned char **) malloc(mageheght*szeof(unsgned char *)); for (j = 0; j < mageheght; j++) { morphedimg[][j] = (unsgned char *) malloc(magewdth * depth); } } last_row = mageheght-1; last_col = magewdth-1;
48 모핑 // 각중간프레임에대하여 for(frame=1; frame <= NUM_FRAMES; frame++) { // 중간프레임에대한가중치계산 fweght = (double)(frame) / NUM_FRAMES; // 중간프레임에대한제어선계산 for(lne=0; lne<num_lnes; lne++) { warp_lnes[lne].p = (nt) (source_lnes[lne].p + (dest_lnes[lne].p - source_lnes[lne].p)*fweght); warp_lnes[lne].p =(nt) (source_lnes[lne].p + (dest_lnes[lne].p - source_lnes[lne].p)*fweght); warp_lnes[lne].q = (nt) (source_lnes[lne].q + (dest_lnes[lne].q - source_lnes[lne].q)*fweght); warp_lnes[lne].q = (nt) (source_lnes[lne].q + (dest_lnes[lne].q - source_lnes[lne].q)*fweght); }
49 모핑 // 출력영상의각픽셀에대하여 for(=0; <mageheght; ++) { for(=0; <magewdth; ++) { totalweght = 0.0; t = 0.0; t = 0.0; t2 = 0.0; t2 = 0.0; // 각제어선에대하여 for (lne = 0; lne < num_lnes; lne++) { 1 = warp_lnes[lne].p; 1 = warp_lnes[lne].p; 2 = warp_lnes[lne].q; 2 = warp_lnes[lne].q; dest_lne_length = sqrt((double) (2-1)*(2-1)+(2-1)*(2-1));
50 모핑 // 수직교차점의위치및픽셀의수직변위계산 u = (double) ((-1)*(2-1)+(-1)*(2-1))/ (double) ((2-1)*(2-1)+(2-1)*(2-1)); h = (double) ((-1)*(2-1)-(-1)*(2-1))/ dest_lne_length; // 제어선과픽셀사이의거리계산 f (u < 0 ) d = sqrt((double) (-1) * (-1) + (-1) * (-1)); else f (u > 1) d = sqrt((double) (-2) * (-2) + (-2) * (-2)); else d = fabs(h); src_1 = source_lnes[lne].p; src_1 = source_lnes[lne].p; src_2 = source_lnes[lne].q; src_2 = source_lnes[lne].q; src_lne_length = sqrt((double) (src_2-src_1)*(src_2-src_1) + (src_2-src_1)*(src_2-src_1));
51 모핑 dest_1 = dest_lnes[lne].p; dest_1 = dest_lnes[lne].p; dest_2 = dest_lnes[lne].q; dest_2 = dest_lnes[lne].q; dest_lne_length = sqrt((double) (dest_2-dest_1)*(dest_2-dest_1) + (dest_2-dest_1)*(dest_2-dest_1)); // 입력영상 1 에서의대응픽셀위치계산 p = src_1 + u * (src_2 - src_1) - h * (src_2 - src_1) / src_lne_length; p = src_1 + u * (src_2 - src_1) + h * (src_2 - src_1) / src_lne_length; // 입력영상 2 에서의대응픽셀위치계산 p2 = dest_1 + u * (dest_2 - dest_1) - h * (dest_2 - dest_1) / dest_lne_length; p2 = dest_1 + u * (dest_2 - dest_1) + h * (dest_2 - dest_1) / dest_lne_length;
52 모핑 // 제어선에대한가중치계산 weght = pow((pow((double)(dest_lne_length),p) / (a + d)), b); // 입력영상 1 의대응픽셀과의변위계산 t += (p - ) * weght; t += (p - ) * weght; // 입력영상 2 의대응픽셀과의변위계산 t2 += (p2 - ) * weght; t2 += (p2 - ) * weght; } totalweght += weght;
53 모핑 // 입력영상 1 의대응픽셀위치계산 source_ = + (nt) (t / totalweght + 0.5); source_ = + (nt) (t / totalweght + 0.5); // 입력영상 2 의대응픽셀위치계산 source_2 = + (nt) (t2 / totalweght + 0.5); source_2 = + (nt) (t2 / totalweght + 0.5); // 영상의경계를벗어나는지검사 f (source_ < 0) source_ = 0; f (source_ > last_col) source_ = last_col; f (source_ < 0) source_ = 0; f (source_ > last_row) source_ = last_row; f (source_2 < 0) source_2 = 0; f (source_2 > last_col) source_2 = last_col; f (source_2 < 0) source_2 = 0; f (source_2 > last_row) source_2 = last_row;
54 모핑 } } // 워핑결과저장 warpedimg[][] = nputimg[source_][source_]; warpedimg2[][] = nputimg2[source_2][source_2]; } // 모핑결과합병 for(=0; <mageheght; ++) for(=0; <magewdth; ++) { nt val = (nt) ((1.0 - fweght) * warpedimg[][] + fweght * warpedimg2[][]); f (val < 0) val = 0; f (val > 255) val = 255; morphedimg[frame-1][][] = val; } }
55 모핑 OnDraw() 함수를수정 vod CImageProVew::OnDraw(CDC* pdc) { CImageProDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); f (pdoc->nputimg == NULL) return; f (pdoc->depth == 1) { for(nt =0; < pdoc->mageheght; ++) // 입력영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(,, RGB(pDoc->nputImg[][], pdoc->nputimg[][], pdoc->nputimg[][]));
56 모핑 f (vewmode == THREE_IMAGES) { for(nt =0; < pdoc->mageheght; ++) // 두번째입력영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth+30,, RGB(pDoc->nputImg2[][], pdoc->nputimg2[][], pdoc->nputimg2[][])); for(nt =0; < pdoc->mageheght; ++) // 결과영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth*2+60,, RGB(pDoc->resultImg[][], pdoc->resultimg[][], pdoc->resultimg[][])); }
57 모핑 else f (vewmode == TWO_IMAGES_SCALED) { for(nt =0; < pdoc->gimageheght; ++) // 크기가변한결과영상출력 for(nt =0; < pdoc->gimagewdth; ++) pdc->setpel(+pdoc->magewdth+30,, RGB(pDoc->gResultImg[][], pdoc->gresultimg[][], pdoc->gresultimg[][])); }
58 모핑 else f (vewmode == MORPHING) { for(nt =0; < pdoc->mageheght; ++) // 두번째입력영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth+30,, RGB(pDoc->nputImg2[][], pdoc->nputimg2[][], pdoc->nputimg2[][])); for (nt = 0; < 10; ++) for(nt =0; < pdoc->mageheght; ++) // 모핑결과출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth*2+60,, RGB(pDoc->morphedImg[][][], pdoc->morphedimg[][][], pdoc->morphedimg[][][])); }
59 모핑 else { for(nt =0; < pdoc->mageheght; ++) // 결과영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth+30,, RGB(pDoc->resultImg[][], pdoc->resultimg[][], pdoc->resultimg[][])); } } else f (pdoc->depth == 3) { for(nt =0; < pdoc->mageheght; ++) // 입력영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(,, RGB(pDoc->nputImg[][3*], pdoc->nputimg[][3*+1], pdoc->nputimg[][3*+2]));
60 모핑 f (vewmode == THREE_IMAGES) { for(nt =0; < pdoc->mageheght; ++) // 두번째입력영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth+30,, RGB(pDoc->nputImg2[][3*], pdoc->nputimg2[][3*+1], pdoc->nputimg2[][3*+2])); for(nt =0; < pdoc->mageheght; ++) // 결과영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth*2+60,, RGB(pDoc->resultImg[][3*], pdoc->resultimg[][3*+1], pdoc->resultimg[][3*+2])); }
61 모핑 } } else f (vewmode == TWO_IMAGES_SCALED) { for(nt =0; < pdoc->gimageheght; ++) // 크기가변한결과영상출력 for(nt =0; < pdoc->gimagewdth; ++) pdc->setpel(+pdoc->magewdth+30,, RGB(pDoc->gResultImg[][3*], pdoc->gresultimg[][3*+1], pdoc->gresultimg[][3*+2])); } else { for(nt =0; < pdoc->mageheght; ++) // 결과영상출력 for(nt =0; < pdoc->magewdth; ++) pdc->setpel(+pdoc->magewdth+30,, RGB(pDoc->resultImg[][3*], pdoc->resultimg[][3*+1], pdoc->resultimg[][3*+2])); }
62 모핑 프로그램을컴파일하고모핑실행 두입력영상선택 첫번째 : "morph_src.pgm, 두번째 : morph_dest.pgm"
Chapter 03 영역기반처리 2장의픽셀기반처리에서는각픽셀의값을처리할때주위픽셀의값은전혀고려하지않고단지현재의픽셀값만을참조하였다. 이에반해영역기반처리는입력픽셀과그주위픽셀값을고려하여출력픽셀의값을결정한다. 영역기반처리는영상을흐리게하거나, 영상을선명하게하거나, 영상의경계선을검
er 03 Ch 영역 기반 처리 3.1 회선 3.2 영상 흐리게 하기 3.3 영상의 선명화 3.4 경계선 검출 3.5 잡음 제거 3.6 컬러 영상에 대한 처리 3.7 실습 t ap Chapter 03 영역기반처리 2장의픽셀기반처리에서는각픽셀의값을처리할때주위픽셀의값은전혀고려하지않고단지현재의픽셀값만을참조하였다. 이에반해영역기반처리는입력픽셀과그주위픽셀값을고려하여출력픽셀의값을결정한다.
More informationPowerPoint 프레젠테이션
이동, 대칭, 회전, 워핑 09 장기하학적변환 영상의이동기하학적변환 영상의대칭기하학적변환 영상의회전기하학적변환 영상의워핑기하학적변환 한빛미디어 ( 주 ) 학습목표 9 장. 이동, 대칭, 회전, 워핑기하학적변환 이동의기하학적변환을공부한다. 대칭기하학적변환을공부한다. 회전기하학적변환의원리를학습한다. 회전기하학적변환에고려할사항을소개한다. 워핑을이해하고수행방법과응용분야를소개한다.
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More information<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>
제목 : 미디어정보처리프로그래밍실습모음 일시 : 2002. 6. 15 작성자 : 성용철학번 : 한남대학교정보통신멀티미디어공학부 ( 전자정보통신전공 ) 미디어정보처리프로그래밍실습숙제설명 1.256 X 256 grayscale 의디스플레이프로그램 Resource View 의 menu item 에서 Display 밑에 Raw gray 라마든다음에그림과같이 ID 와
More information105È£4fš
의 자선단체들이 사랑과 자비를 베푼 덕택에 국제 사회에서 훠모사가 존경받는 위치에 섰으며 국가간 에 상호우애를 다지는 데 큰 기여를 했다고 치하했 다. 칭하이 무상사 국제협회는 구호물자를 터키 지 터키 지진 피해자들을 위한 구호물자 전달식 진 피해자들에게 전달하는데 협조해 준 중국 항공의 훠모사 항공화물 센터 매니저인 제임스 류 씨, 골든 파운데이션 여행사의
More informationuntitled
int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>
#include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More information3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터
- Part2-3 3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터 3.1 포인터란 ü ü ü. ü. ü. ü ( ) ? 3.1 ü. ü C ( ).? ü ü PART2-4 ü ( ) PART3-4 3.2 포인터변수의선언과사용 3.2 포인터 변수의 선언과 사용 (1/8) 포인터 변수의
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information히스토그램구하기 사전준비 : 히스토그램을저장할메모리가필요함 필요한메모리개수 à 전체영상의픽셀은그값이 0 ~ 255이므로 256 개의메모리필요함 영상을구성하는픽셀의개수는매우크므로메모리형식은 unsigned long으로해야함 ( unsigned 란 +/- 를고려하지않는다는
디지털영상처리 실습 : 히스토그램 방송영상미디어과 히스토그램 (Histogram) 히스토그램이란? n 디지털영상을구성하는화소는명도값을나타내는데어떤명도값을가진픽셀수가몇개있는가를나타내는함수 n 화소의명도값은 0~255 인데각명도값에해당하는화소의수를나타내는함수 히스토그램구하는방법 4 4 3 3 픽셀갯수 6 5 4 4 3 3 4 1 2 3 2
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More information윈도우시스템프로그래밍
데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More information프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음
프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y
More informationPowerPoint 프레젠테이션
03 모델변환과시점변환 01 기하변환 02 계층구조 Modeling 03 Camera 시점변환 기하변환 (Geometric Transformation) 1. 이동 (Translation) 2. 회전 (Rotation) 3. 크기조절 (Scale) 4. 전단 (Shear) 5. 복합변환 6. 반사변환 7. 구조변형변환 2 기하변환 (Geometric Transformation)
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More informationMicrosoft PowerPoint - Java7.pptx
HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)
More informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
More information영상 처리 프로그래밍 By Visual C++
디지털영상처리 6 6 장화질향상기법 영상반전하기 밝기와명암비조절 감마보정 히스토그램분석 히스토그램균등화 6.1. 영상반전하기 영상반전 영상내의모든픽셀값을하나하나반전시키는것 g( x, y) 255 f ( x, y) 255 f ( x, y) g( x, y) : 입력영상 : 출력영상 출력그레이스케일값 255 - k 0 k 255 입력그레이스케일값 - 2 - 6.1.
More informationMicrosoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600
균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at
More informationPowerPoint Presentation
컴퓨터프로그래밍 Computer Programming 08 포인터기초 목차 1. 포인터변수와선언 2. 간접연산자 * 와포인터연산 3. 포인터형변환과다중포인터 컴퓨터프로그래밍 (Computer Programming) - 08 포인터기초 3 1. 포인터변수와선언 주소개념 주소 address 메모리공간은 8비트인 1 바이트마다순차적인고유한번호 메모리주소는저장장소인변수이름과함께기억장소를참조하는또다른방법
More informationfprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0
병렬계산을이용한열방정식풀기. 1. 처음 병렬계산을하기전에 C 언어를이용하여명시적유한차분법으로하나의열방정식을풀어본 다. 먼저 C 로열방정식을이해한다음초기조건만다르게하여클러스터로여러개의열방 정식을풀어보자. 2. C 를이용한명시적유한차분법으로열방적식풀기 열방정식을풀기위한자세한이론은앞서다룬 Finite-Difference method 을보기로하고 바로식 (1.10)
More informationPowerPoint 프레젠테이션
07 영역처리를장ㅎㅎ이용한에지검출 에지검출의개요 에지검출기 1차미분을이용한에지검출 2차미분을이용한에지검출 한빛미디어 ( 주 ) 7 장. 영역처리를이용한에지검출 학습목표 에지의개념을학습한다. 이동과차분을기본으로한에지검출기를학습한다. 미분과에지의관련성을소개한다. 1차미분회선마스크를이용한에지검출기를학습한다. 2차미분회선마스크를이용한에지검출기를학습한다. 2 에지 (edge)
More information<4D F736F F F696E74202D204347C3E2BCAEBCF6BEF D325FC4C4C7BBC5CDB1D7B7A1C7C8BDBA20B1E2BABBBFE4BCD22E >
목차 1 점그리기 2 선그리기 3 다각형그리기 이병래교수 / 방송대컴퓨터과학과 점그리기 OpenGL - 꼭짓점지정 점 glverte* 함수 하나의좌표로표현되는기하요소 void glverte*( 좌표 ); 3 차원그래픽스에서는기본적으로,, z의세좌표축으로표현되는 3차원직교좌표계를사용하여점의좌표를표현함 와 축으로표현되는 2차원평면은 z축의값이 0인 3차원좌표로볼수있음
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More information1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할
15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More informationMicrosoft PowerPoint - IP11.pptx
열한번째강의카메라 1/43 1/16 Review 2/43 2/16 평균값 중간값 Review 3/43 3/16 캐니에지추출 void cvcanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size = 3); aperture_size = 3 aperture_size
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information歯Lecture2.PDF
VISUAL C++/MFC Lecture 2? Update Visual C ++/MFC Graphic Library OpenGL? Frame OpenGL 3D Graphic library coding CLecture1View? OpenGL MFC coding Visual C++ Project Settings Link Tap Opengl32lib, Glu32lib,
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationMicrosoft PowerPoint - Chapter 6.ppt
6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)
More information윤성우의 열혈 TCP/IP 소켓 프로그래밍
C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More informationMicrosoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information중간고사
중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More informationPowerPoint 프레젠테이션
03 장 영상처리를위한 Visual C++ 디지털영상파일포맷 MFC AppWizard[exe] 를이용한 MFC 프로젝트작성 MFC 를이용한영상처리입. 출력프로그램작성 MFC 를이용한영상축소 MFC 를이용한영상확대 MFC 를이용한양자화영상처리 한빛미디어 ( 주 ) 학습목표 3 장. 영상처리를위한 Visual C++ 영상처리에사용되는 RAW 파일포맷을이해한다.
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More information쉽게 풀어쓴 C 프로그래밍
제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More information8장.ppt
8 장이미지워핑과모핑 개요 이미지워핑 wrping : 특정규칙에의한영상의재추출 resmpling stretch n imge in seerl dierent directions originll sed b NASA to strighten imges retrned b stellites rbber sheet nlog 영상을늘이거나크기를조절하는기하학적처리 순수한스케일링과달리크기변화의정도가영상전체에대해균일하지않다.
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More information제4장 기본 의미구조 (Basic Semantics)
제 4 장블록및유효범위 Reading Chap. 5 숙대창병모 1 4.1 변수선언및유효범위 숙대창병모 2 변수선언과유효범위 변수선언 Declaration before Use! 대부분의언어에서변수는사용전에먼저선언해야한다. 변수의유효범위 (scope) 선언된변수가유효한 ( 사용될수있는 ) 프로그램내의범위 / 영역 변수이름뿐아니라함수등다른이름도생각해야한다. 정적유효범위
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More information03_queue
Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,
More information; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i
; struct point p; printf("0이아닌점의좌표를입력하시오 : "); scanf("%d %d", &p.x, &p.y); if (p.x > 0 && p.y > 0) printf("1사분면에있다.\n"); if (p.x < 0 && p.y > 0) printf("2사분면에있다.\n"); if (p.x < 0 && p.y < 0) printf("3사분면에있다.\n");
More informationChap 6: Graphs
그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]
More informationMicrosoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationPowerPoint 프레젠테이션
오픈소스소프트웨어개발입문 (CP33992) 포인터 부산대학교공과대학정보컴퓨터공학부 학습목표 포인터선언과간접참조를통한포인터사용방법을알수있다. 함수의인수전달에서포인터의역할및사용방법을알수있다. 포인터를통한배열원소의참조방법에대해알수있다. 포인터의가감연산을통한다양한활용법을알수있다. 포인터를이용한문자열처리에대해알수있다. void 포인터, 함수포인터의사용방법을알수있다.
More informationMicrosoft Word - PLC제어응용-2차시.doc
과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,
More information<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>
2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue
More information구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
More informationMicrosoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt
포인터 1 포인터란? 포인터 메모리의주소를가지고있는변수 메모리주소 100번지 101번지 102번지 103번지 int theage (4 byte) 변수의크기에따라 주로 byte 단위 주소연산자 : & 변수의주소를반환 메모리 2 #include list 8.1 int main() using namespace std; unsigned short
More information윈도우시스템프로그래밍
데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More information컴파일러
YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More information슬라이드 1
2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)
More informationMicrosoft PowerPoint - additional06.ppt [호환 모드]
보조자료 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park 복습 : Const 키워드왜사용? C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; //
More information멀티미디어시스템특강5
멀티미디어시스템특강 5 강 강의자료 2 장 -4 : 영상기하학적처리 수업목표및내용 q 영상의기하학적처리에대하여이해한다. q 영상보간법 (iterpoatio) q 영상의확대축소 q 영상의회전 q 영상미러링 q 실습 4: 영상기하학적변환실습 2/50 영상의기하학적변환개요 [ 영상의기본적인기하학적변환 ] 3/50 영상의기하학적변환개요 기하학적처리 임의의기하학적변환에의해화소들의배치를변경하는처리영상내에서화소들을움직이거나화소들을생성
More informationMicrosoft PowerPoint - es-arduino-lecture-03
임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습
More informationPowerPoint 프레젠테이션
11 곡선과곡면 01 Spline 곡선 02 Spline 곡면 03 Subdivision 곡면 C n 연속성 C 0 연속성 C 1 연속성 2 C 2 연속성 01 Spline 곡선 1. Cardinal Spline Curve 2. Hermite Spline Curve 3. Bezier Spline Curve 4. Catmull-Rom Spline Curve 5.
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More information쉽게 풀어쓴 C 프로그래밍
제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using
More informationPowerPoint 프레젠테이션
05 장히스토그램을이용한화소점처리 디지털영상의히스토그램 산술연산을이용한히스토그램에서의이동 히스토그램스트레칭 히스토그램평활화 히스토그램명세화 한빛미디어 ( 주 ) 학습목표 5 장. 히스토그램을이용한화소점처리 디지털영상의히스토그램을이해한다. 산술연산으로히스토그램에서명도와명암대비를조정하는방법을이해한다. 히스토그램스트레칭기법의원리와효과를학습한다. 히스토그램평활화의기본원리를익히고,
More information1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a
6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;
More information슬라이드 1
13장직렬화 김성영교수 금오공과대학교 컴퓨터공학부 도큐먼트 / 뷰구조 (1) 도큐먼트와뷰 디스크에저장된파일데이터를읽는경우 도큐먼트객체 뷰객체 파일 사용자 읽기 화면표시 2 도큐먼트 / 뷰구조 (2) 도큐먼트와뷰 사용자가데이터를입력하는경우 도큐먼트객체 뷰객체 파일 사용자 저장 입력 3 도큐먼트 / 뷰구조 (3) 도큐먼트와뷰 입력된데이터를디스크파일에저장하는경우
More information03장.스택.key
---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():
More information다음제시문을읽고물음에답하시오. 가 < 표 1> 은남아메리카국가연합에소속된 12개국의면적과인구의통계자료이다. 여기에나타나는 24개의숫자자료중첫번째자리의숫자가 1로시작하는항목은모두 8개이고, 2로시작하는항목은총 5개로첫번째자리의숫자가 8이나 9로시작하는항목보다훨씬자주나타나
본문제에대한지적소유권은동국대학교에있습니다. 본교의서면허락없이무단으로출판, 게재, 사용할수없습니다. 동국대학교 2014 학년도신입생모집수시 1 차논술고사문제지 ( 자연계 ) 지원학부 ( 과 ) : 수험번호 : 성명 : 답안작성시유의사항 각문제의답안은배부된답안지에표시된문제지번호에맞춰작성하시오. 각문제마다정해진글자수 ( 분량 ) 는띄어쓰기를포함한것이며, 지정된글자수
More informationMicrosoft PowerPoint - 07-Data Manipulation.pptx
Digital 3D Anthropometry 7. Data Analysis Sungmin Kim SEOUL NATIONAL UNIVERSITY Body 기본정보표시 Introduction 스케일조절하기 단면형상추출 단면정보관리 3D 단면형상표시 2 기본정보표시및스케일조절 UI 및핸들러구성 void fastcall TMainForm::BeginNewProject1Click(TObject
More informationMicrosoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]
Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google
More information