CS과목 16

[디지털영상처리] 04. 주파수 도메인 필터

교재:디지털영상처리 제3판 (2013, Rafael C. Gonzalez) 4.1 배경 4.1.1 Fourier 급수와 변환의 간략한 역사 이 분야에서 Fourier의 공헌은 모든 주기 함수는 각각 다른 주파수의 sin과 cos에 각각 다른 계수를곱한 합으로 표현될 수 있음을 제시한 것이다. [이 합을 Fourier series라 부른다.] 함수가 얼마나 복잡한지는 중요하지 않다. 단지 함수가 주기적이고 몇 가지 약한 수학적 조건들을 만족하면 그런 합으로 표현될 수 있다. 주기적이지 않은 (그러나 곡선 아래의 영역은 유한한) 함수들도 가중 함수로 곱해진 sin과 cos들의 적분으로 표현될 수 있다. 이 경우 공식이 Fourier 변환이며, 그 활용도는 많은 이론과 응용 분야들에서 Fourier 급수보다 ..

[디지털영상처리] 03. 밝기 변환과 공간 필터링

교재:디지털영상처리 제3판 (2013, Rafael C. Gonzalez) 3.1 배경 3.1.1 밝기 변환과 공간 필터링의 기초 이 절에서 논의되는 모든 영상 처리 기법들은 단순히 영상의 화소들을 포함하는 평면인 공간 도메인에서 구현된다. 공간 도메인 기법들은 영상의 화소들에 직접 적용한다: g(x, y) = T[f(x, y)]. 여기서 f(x, y)는 입력 영상, g(x, y)는 출력 영상, T는 점 (x, y)의 이웃에 대해 정의된 f에 대한 대한 연산자이다. (x, y)가 영상의 임의의 위치일 때, 이 점을 포함하는 작은 영역이 (x, y)의 이웃이다. 보통, 이웃은 (x, y)를 중심으로 하는 직각 사각형이며 영상보다 훨씬 작은 크기이다. 가장 작은 이웃의 크기는 1x1이다. 이 경우, g가 단..

[디지털영상처리] 02. 디지털 영상 기초

교재:디지털영상처리 제3판 (2013, Rafael C. Gonzalez) 2.3 영상 감지 및 획득 우리가 관심을 갖는 대부분의 영상들은 "조명" 원과, 영상화되는 "장면"의 요소들에 의한 조명 원으로부터의 에너지의 반사 또는 흡수의 결합에 의해 생성된다. 2.3.4 간단한 영상 형성 모델 우리는 영상을 f(x,y) 형태의 2-D 함수로 표기한다. 공간 좌표 (x,y)에서의 f의 값 또는 진폭은 물리적 의미가 영상의 광원에 의해 결정되는 양의 스칼라량이다. 물리적 과정으로부터 영상이 생성될 때, 그 밝기 값들은 물리적 광원에 의해 방사되는 에너지에 비례한다. 그 결과, f(x,y)는 0이 아니고 유한해야 한다. 즉, $0 관찰되는 장면에 입사하는 광원 조명의 양장면의 객체에 의해 반사되는 조명의 양.이..

[디지털영상처리] 01. 소개

교재:디지털영상처리 제3판 (2013, Rafael C. Gonzalez) 1.1 디지털 영상 처리란?  영상은 2차원 함수 f(x, y)로 정의될 수 있으며, 이때 x와 y는 공간(평면)좌표이고, 좌표 쌍 (x, y)에서의 f의 진폭이 그 점에서의 영상의 밝기(intensity) 또는 그레이 레벨이라고 불린다. x, y와 f의 밝기 값들이 모두 유한하고 이산적 수량일 때, 우리는 그 영상을 디지털 영상이라고 부른다. 디지털 영상 처리는 디지털 컴퓨터로 디지털 영상을 처리하는 것을 가리킨다. 디지털 영상은 유한한 수의 요소들로 구성되며, 각 요소는 특정 위치와 값을 가진다. 이 요소들을 화소(picture element, image element, pel, pixel)라고 부른다. 이 책에서 우리가 디지..

[CS과목/자료구조] 12 정렬

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 12.1 정렬이란? 정렬(sorting)은 물건을 크기순으로 오름차순(ascending order)이나 내림차순(descending order)으로 나열하는 것을 의미한다. 정렬은 컴퓨터 공학에서 가장 기본적이고 중요한 알고리즘 중의 하나로 자료 탐색에 있어서 필수적이다. 정렬시켜야 할 대상은 레코드(record)라고 부른다. 레코드는 다시 필드(field)라고 하는 단위로 나누어진다. 여러 필드 중에서 특별히 레코드와 레코드를 식별해 주는 역할을 하는 필드를 키(key)라고 한다. 정렬이란 결국 레코드들을 키값의 순서로 재배열하는 것이다. 모든 경우에 있어서 최상의 성능을 보여주는 최적 알고리즘은 존재하지 않는다. 따라서 이들 중..

[CS과목/자료구조] 11 그래프 2

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 11.1 최소 비용 신장 트리신장 트리 신장 트리(spanning tree)란 그래프 내의 모든 정점들이 연결되어 있으며 사이클을 포함하지 않는 트리이다. 신장 트리는 그래프에 있는 n개의 정점을 정확히 (n-1)개의 간선으로 연결하게 된다. 신장 트리는 그래프의 최소 연결 부분 그래프가 된다. 최소의 의미는 간선의 수가 가장 적다는 의미히다. 최소 비용 신장 트리 최소 비용 신장 트리(MST: minimum spanning tree)는 신장 트리 중에서 사용된 간선들의 가중치 합이 최소인 신장 트리를 말한다. 이를 구하는 방법으로는 Kruskal과 Prim이 제안한 알고리즘이 대표적으로 사용되고 있다. 11.2 Kruskal의 M..

[CS과목/자료구조] 10 그래프 1

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 10.1 그래프란?그래프의 소개 그래프(graph)는 객체 사이의 연결 관계를 표현할 수 있는 자료 구조다. 그래프 이론(graph theory)은 컴퓨터 학문 분야의 활발한 연구 주제이며 문제 해결을 위한 도구로서 많은 이론과 응용이 존재한다. 우리는 여기서 그래프의 기본적인 알고리즘에 대해서 학습한다. 10.2 그래프의 정의와 용어그래프의 정의 그래프는 정점(vertex)과 간선(edge)들의 유한 집합이라 할 수 있다. 수학적으로는 G = (V, E)와 같이 표현한다. 여기서, V(G)는 그래프 G의 정점들의 집합을, E(G)는 그래프 G의 간선들의 집합을 의미한다. 정점은 여러 가지 특성을 가질 수 있는 객체를 의미하고, 간..

[CS과목/자료구조] 09 우선순위 큐

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 9.1 우선순위 큐 추상 데이터 타입우선순위 큐의 소개 우선순위 큐는 우선순위의 개념을 큐에 도입한 자료구조이다. 보통의 큐는 선입 선출(FIFO)의 원칙에 의하여 먼저 들어온 데이터가 먼저 나가게 된다. 그러나 우선순위 큐(priority queue)에서는 데이터들이 우선순위를 가지고 있고 우선순위가 높은 데이터가 먼저 나가게 된다. 히프(heap)구조가 우선순위 큐를 가장 효율적으로 구현할 수 있다. 우선순위 큐는 2가지로 구분할 수 있는데, 최소 우선순위 큐는 가장 우선순위가 낮은 요소를 먼저 삭제한다. 최대 우선순위 큐는 반대로 가장 우선순위가 높은 요소가 먼저 삭제된다. 9.2 우선순위 큐의 구현 방법히프를 사용하는 방법 ..

[CS과목/자료구조] 08 트리

8.1 트리의 개념 만약 자료가 계층적인 구조(hierarchical structure)를 가지고 있다면 리스트, 스택, 큐 등의 선형 자료 구조(linear data structure)는 더 이상 적합하지 않다. 트리(tree)는 이러한 계층적인 자료를 표현하는데 적합한 자료구조이다. 트리는 인공 지능 문제에서도 사용된다. 대표적인 것이 결정 트리(decision tree)이다. 결정 트리는 인간의 의사 결정 구조를 표현하는 한 가지 방법이다. 이러한 구조를 트리라고 부르는 이유는 마치 실제 트리를 거꾸로 엎어놓은 것 같은 모양을 하고 있기 때문이다. 트리의 용어들 트리의 구성 요소를 노드(node)라 한다. 트리는 한 개 이상의 노드로 이루어진 유한 집합이다. 이들 중 하나의 노드는 루트(root) ..

[CS과목/자료구조] 07 연결 리스트 2

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 7.1 원형 연결 리스트 원형 연결 리스트란 마지막 노드가 첫 번째 노드를 가리키는 리스트이다. 즉 마지막 노드의 링크 필드가 NULL이 아니라 첫 번째 노드 주소가 되는 리스트이다. 원형 연결 리스트가 특히 유용한 경우는 리스트의 끝에 노드를 삽입하는 연산이 단순 연결 리스트보다 효율적일 수 있다는 것이다. 원형 연결 리스트에서 헤드 포인터가 마지막 노드를 가리키고, 첫 번째 노드는 head->link가 가리키고 있으므로, 리스트의 처음과 끝에 노드를 삽입할 수 있다. 원형 리스트의 처음에 삽입ListNode* insert_first(ListNode* head, element data){ ListNode* node = (ListN..