전체 글 (16) 썸네일형 리스트형 Baekjoon/1934 - 유클리드 호제법 알고리즘 이용 1. n, m 입력 2. n = 0 이면, m 출력 3. n이 m으로 나누어 떨어지면, n 출력하고 알고리즘 종료 4. n이 m으로 나누어 떨어지지 않으면, n = m%n, m = n 대입하고 다시 3번으로 가서 반복. - 최대공배수 = 두 수의 곱 / 최대공약수 Baekjoon/1753 - 인접 행렬을 이용해 풀자 런타임 에러 발생- int형 20000 x 20000 2차원 행렬로 인해 제한 메모리(128MB)의 초과가 원인이었음.- 따라서, 백터로 바꾸자 해결됨 7. Template matching * Template matching - 탐색 영상 내에서 template(model)을 NCC(Normalized Cross Correlation)으로 찾아 correation 값을 출력하고, 탐색영상에 template boundary를 표시하는 프로그램 학교 과제로 수행했기 때문에 소스 코드 부분은 삭제했습니다. 6. Iterative thresholding / Otsu's thresholding * Iterative thresholding / Otsu's thresholding 5. Morphology * Morphology ▷ structuring element는 길이가 3 pixel인 십자(+)형을 사용▷ dilation / erosion / opening / closing 수행 - 주요 소스코드 /* 팽창 연산 */ void dilation(int width, int height){ int t= width*height;//크기 저장 int *dst;//동적 할당 dst = (int *) malloc (sizeof(int)* t); for(i=0; i 4. boundary following * Boundary following 책에 나온 알고리즘은 다음과 같습니다. 1. 시작점을 정한다. 왼쪽에서 오른 쪽으로 위에서 아래쪽으로 순차적으로 탐색하여 맨 처음 만나는 픽셀을 s로 정한다 2. 경계임을 표시하는 c를 s로 놓는다. 또한 4-이웃으로 탐색 시 왼쪽 픽셀을 b로 놓는다 3. b에서 시작하여 c 위치의 8-이웃들 n1,n2... n8을 시계 방향으로 탐색한다. 4. c= ni, b=ni-1로 놓는다 5. 3으로 돌아가 c가 s와 같아질 때까지 반복한다. 그러나 다음의 방법으로 더 간단하게 구현할 수 있을 것 같아, 이를 이용하였습니다. 3. connected component labelling * Connected component labellingConnected component labelling(연결된 구성요소 레이블링)의 구현 방법은 일반적으로 순차적 방법과 일반적 방법 2가지가 있는데, 그 중 재귀적 방법으로 구현하였습니다. 2. 이진영상의 중심좌표/방향/장축,단축길이 구하기 이진 영상 B[i,j]에 대해서, B[i,j] = 1 if F[i,j] - 주요 소스 코드 pgm파일 읽어오는 소스 및 이진화 하는 소스 생략 for(i=0; i < rows; i++){ for(j=0; j < cols; j++){ if (buffer[i*cols+j] 이전 1 2 다음