목록전체 글 (95)
서랍장
#JAVAScript 란? 일단 BOM 에 대해 알아보기 전에 javascript 에 대해 알아보자. javascript는 HTML과 CSS로 만들어진 웹페이지를 동적으로 변경해주는 언어. 경고창을 띄우고, 탭 인터페이스를 만들고, Drag & Drop 기능의 웹 에플리케이션을 만들수 있다. 예전에 Javascript는 원래 많이 인기없는 언어였다. 허나 구글이 지도 서비스를 내 놓자 HTML/CSS 만으로도 플래쉬와 같은 효과를 구현할 수 있다는 것을 증명. 거기에 ajax 열풍이 가세하면서 favascript의 중세는 끝이 난다. 자바스크립트의 재조명과 스티브 잡스의 플래쉬 혐오, HTML5의 등장이 맞물리면서 플래쉬의 입지가 빠르게 줄어들고 있고, 그 빈자리를 빠르게 자바스크립트가 대체하기 시작했다..
재귀적 호출에 대한 개념을 먼저 잡고 넘어가자. 그 이유는 완전 탐색 시에, 해당 호출 방식을 자주 활용하기 때문이다. 재귀함수의 기본적인 이해 재귀함수란: 함수 내에서 자기 자신을 다시 호출하는 함수 : 자신이 수행할 작업을 유사한 형태의 여러 조각으로 쪼갠 뒤 그 중 한 조각을 수행하고, 나머지를 자기 자신을 호출해 실행하는 함수 재귀함수 호출방식 void RecursiveFunction(void) { printf("Recursive function example1 \n"); RecursiveFunction(); } ※ 기저 사례 (base case) ▷ 더 이상 쪼개지지 않는 가장 작은 작업, 즉 최소한의 작업에 도달했을 때 답을 곧장 반환하는 조건문에 포함될 내용 ▷ 기저 사례를 선택할 때는 존재..
그래프를 탐색하는 방법에는 크게 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)이 있다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종을 말하며, 그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말한다. 1. 깊이 우선 탐색 (DFS, Depth-First Search) : 최대한 깊이 내려간 뒤, 더이상 깊이 갈 곳이 없을 경우 옆으로 이동 출처 https://developer-mac.tistory.com/64 💡 깊이 우선 탐색의 개념 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식을 말한다. 예를 들어, 미로찾기를 할 때 ..
Heap이란 힙(Heap)은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리(Complete binary tree)를 기본으로 한 자료구조(tree-based structure)다. 최악의 경우가 생겨도 힙은 완전 이진 트리이므로 항상 O(logN)의 시간에 해결될 수 있도록 해준다. 힙을 이용한다면 최댓값 혹은 최솟값을 O(logN)에 찾을 수 있다. (일반 배열 사용시 O(N)) 최대 힙(Max Heap) / 최소 힙(Min Heap) 최대 힙은 완전 이진트리의 root 부분에 최댓값이 항상 존재하게 되고 최소 힙은 완전 이진트리의 root 부분에 최솟값이 항상 존재하게 된다. 최대 힙의 특성: 임의의 subtree에서 root 가 되는 노드를 잡으면 항상 subtree에서의..
데이터를 담을 테이블을 미리 크게 확보해 놓은 후 입력 받은 데이터를 해시하여 테이블 내의 주소를 계산하고 이 주소에 데이터를 담는 방법으로, 궁극의 탐색 알고리즘이다. 해시 테이블의 성능은 공간을 팔아 얻어낸 것이라고 생각하면 된다. 보통 테이블의 엔트리는 로 나타내며 이 때 value 는 key 로 인한 hash function 의 아웃 풋이다. 해시 테이블은 데이터가 입력되지 않은 여유 공간이 많아야 제 성능을 유지할 수 있다. 허나 해시를 이용하면 특정한 배열의 인덱스나 위치나 위치를 입력하고자 하는 데이터의 값을 이용해 저장하거나 찾을 수 있다. 기존에 사용했던 자료 구조들은 탐색이나 삽입에 선형 시간이 걸리기도 했던 것에 비해, 해시를 이용하면 즉시 저장하거나 찾고자 하는 위치를 참조할 수 있..
◆1. Filters for features 이전에 필터링을 노이즈를 없애거나 줄이는 데에 사용한다고 했었다. 이제 어떻게 필터를 higher-level feature, 즉 의미있는 데이터를 뽑아내는 데에 사용할까에 대해 알아보자. 여기서 의미 있는 데이터란 edge, corner 와 같은 데이터를 의미한다. ◆2. templates matching : 입력 이미지에서 템플릿 이미지의 위치를 찾는 방법이다. template matching 은 template image 와 같은 사이즈의 window 를 가지고 source image의 모든 subimage 들과 비교하면서 유사도가 가장 높은 부분을 찾게 되는데, 크기가 같은 두 이미지 유사도를 구하는 방법 중 하나가 바로 NCC가 되는 것이다. (Norm..
작은 센서를 만들 때, 저녁이라는 시간 때문에 생기는 노이즈와 같은 문제가 생길 수 있다. 즉 이러한 경우 적당한 필터링을 통해 노이즈를 제거해주어야 한다. 이럴 때 쓰이는 필터란 무엇일까에 대해 알아보자. 1. Image? Intensity values (집약정도) 를 사용해 매트릭스 혹은 격자의 형태 로 표현한다. 즉, 이미지는 정수값의 행렬로 표현된다~ 정도만 알아두자. Images as functions : r,g,b 총 세 개의 함수가 내장되어있는 거라고 볼 수 있다. 2. Image 특성 이미지는 제한된 수만큼 픽셀을 보유한다. 픽셀 값→ grayscale은 0~255 → 컬러의 RGB 같은 경우, 각 채널 당 0~255 까지 각 1바이트로 총 3바이트 표현 가능하다. 3. Image 변환 수..
비전에 대해 알아보기 전에 기본적인 선형대수 개념을 매우 간단하게! 잡고 넘어가고자 한다. vector : 방향과 크기(Magnitude) 를 가지는 기본적인 기하학 객체 개념으로 잡고 넘어가면 편할 듯 싶다. vector operations dot product(inner product): 내적으로 벡터를 곱한다, 투영한다 라는 뜻의 연산이다. outer product: 외적으로 이는 왼손좌표계(DirectX), 오른손좌표계(OpenGL) 에 따라 값이 다르게 나올 수 있는데 기본적으로 방향에 따른 법선 벡터를 계산하는 연산이라고 생각하면 될 듯 싶다. vector norm : 선형대수학에서 놈은 벡터의 크기(magnitude) 또는 길이(length)를 측정하는 방법을 의미한다. 1-norm 은 벡터..
물리계층 → Signaling 이전에 말했듯 물리계층에서 중요한 것은 다음 2가지이다. Signal definition : 신호 encoding modulation Interface definition : 전송 매체 이 중에서 interface(전송매체) 중 유선, 무선 및 twisted pair, 동축케이블, 광케이블 등에 대해서 배웠었다. 이제 물리 계층의 Signal definition (신호) 에 대해 알아보자. 물리 계층의 Signal definition 에서 제일 중요한 개념은 encoding과 modulation이다. 즉 데이터의 부호화가 제일 중요한데 이 것에 대해 알아보자. 다음 그림을 보면 알기 쉽다. 일단 인코딩은 data를 digital 화 하는 과정을 이야기 한다. 그에 반해 Mo..
물리계층은 매우 하위 계층으로 실질적으로 데이터를 전송하는 전선 등을 의미하는 계층이다. 이 물리계층에서 중요한 것은 딱 2가지이다. Signal Definition Interface definition 이렇게 이다. 이 중에서 Interface Definition 에 대해서 알아보자. 인터페이스란 Interface 란 데이터가 전송 되는 매체를 의미한다. 이 때 해당 전송 매체는 다음과 같이 분류할 수 있다. Interface 유선 전송매체 Twisted Pair (쌍쇄선) Coaxial Cable (동축케이블) Optical Cable (광섬유) 무선 전송매체 Antennas Terrestrial microwave Satellite microwave Broadcast radio 전송매체 선택 고려사항..