전체 글 102

[Effective C++]항목 23~25 : 클래스에 대한 비멤버 함수

항목 23 : 비멤버 비프렌드로 제공가능한 함수는 그렇게 만들자 public 함수 a,b,c를 가지고 있는 클래스 widget이 있다고 하자. 이때 클래스에 d라는 함수를 추가한다고 하자. d는 자체적인 private접근없이 a,b,c를 차례로 호출하는 기능만을 가지는 함수이다. 즉 유틸함수에 가까운 함수이다. 이때 d라는 함수를 멤버 함수로 만들 수도 있겠지만 그보단 외부에서 호출하는 비멤버 비프렌드 util함수로 선언하는 것이 좋다. d(widget& w)로 위젯을 받아 위젯의 a,b,c를 순서대로 호출하면 된다. 마치 절차지향처럼 말이다. 모순적이게도 이러한 함수 구현 방식이 클래스의 캡슐화를 향상 시킨다. 이게 무슨 소리일까? 역할군이 확실히 나누어진 객체지향 작업에서 클래스 제작자가 클래스의 내..

[Effective C++]항목 18~22 : 클래스 설계 기초

항목 18 : 실수가 일어날 수 없는 인터페이스를 제공하자. 매개변수 실수 방지 일,월,년을 매개변수로 받는 멤버 함수를 만든다고하자. 세가지 매개변수가 모두 int라면 사용자가 어느나라 사람이느냐에 따라서 일월년의 순서가 헷갈릴 수 있다. 따라서 일,월,년에 해당하는 클래스를 각각 만들고 이를 매개변수로 받는 등으로 하여 헷갈리는 상황을 방지할 수 있다.자원 해제 실수 방지동적할당한 자원을 포인터만 그대로 돌려주는 함수는 좋지 못하다. 사용자에게 할당해제 책임을 맡기게 되기 때문이다. 이를 막기 위해선 스마트 포인터등에 담아서 리턴해주는 것이 좋다. 추가로 단순 할당해제가 아닌 추가적인 자원 해제가 필요하다면 스마트 포인터의 삭제자를 활용하면 된다. 스마트 포인터의 추가적인 이점은 자원의 할당과 해제가..

[일반물리학1][4장]일과 에너지

계 우선 계라는 것이 뭔지 알아보자. 계는 물리학에서 물리에 의해 영향을 받는 범위, 묶음 등으로 생각할 수 있다. 다음과 같은 것들이 계가 될 수 있다. 하나의 물체또는 입자 물체 또는 입자의 집합 공간의 일부 영역 이들은 시간에 따라 크기와 형태가 변할 수도 있다. 한 계를 논할 때 경계와 환경이라는 것을 생각할 수 있다.계의 경계는 계에 대한 가상의 면으로 계와 계를 제외한 우주를 경계짓는 부분이다.어떤 계에 대한 환경은 그 계를 제외한 바깥 우주를 이야기한다. 일 어떠한 물체가 어떠한 요인에 의해 일정한 힘 F가 특정 시간동안 가해졌다고 하자. 이때 해당 힘이 그 시간동안 물체에 한 일은 F ⋅ Δr 이다. 여기서 Δr은 물체가 그 시간동안 이동한 거리 벡터이다. 만약 힘과 이동 방향의 방향이 같..

[일반물리학1][3장]저항력

저항력 공기나 물등 어떠한 매질안에서 움직이는 물체는 저항을 받는다. 저항력은 물체의 크기나 속력등의 요소에 영향을 받아 결정된다. 매질의 계에서 물체의 속력으로 보는 것이 편하다. 가만히 서있는 사람이 움직이는 공기, 즉 바람에 저항력을 받아 밀려나는것이 예시이다. 저항력의 방향은 운동방향의 반대이다. 저항력 모델1 : 속력 비례 가장 간단한 저항력 모델이다. R = -bv여기서 b는 물체의 크기나 형태, 매질등에 의해 정해지는 상수이다.이는 물에서 아주 천천히 움직이는 물체나 공기에서 움직이는 아주 작은 먼지같은 물체또는 입자에 대해 적절한 모델이다. 저항력 모델2 : 속력^2 비례 공기중에서 빠르게 움직이는 물체에 대해 적절한 모델이다. R= 1/2 * DpAv^2 (방향은 운동의 반대 방향) 여기..

[컴퓨터비전개론][6장]Transformations

개요 저번 시간에 feature descriptor을 통해 특징점끼리 매칭을 시켜보았다. 이젠 이러한 매칭된 특징점들을 이용하여 이미지를 합쳐야하는데 여기서 사용하는 이미지 Transformations를 알아보자. 이미지 와핑 이미지 필터링이 이미지의 값들을 바꾸는 것이었다면 이미지 와핑은 이미지 함수의 도메인, 즉 픽셀 범위를 조정하는 처리이다. 즉 이미지의 트랜스폼이나 형태를 바꾸는 행위이다. 일단 기본적인 이동, 회전, 스케일은 그래픽스의 트랜스폼과 유사하다. 2차원이동으로 각픽셀에 대해 변환행렬을 적용하면 된다. (그래픽스에서는 주로 도형의 정점들에 트랜스폼을 처리하지만 여기선 각 픽셀에 바로 적용하여 새 이미지를 만들때 사용하는듯 하다. 분야에 따른 적용방식 차이인듯하다. 어찌되었든 근본적으론 ..

[컴퓨터비전개론][5장]feature descriptor

개요 저번 시간에 이미지의 특징점을 찾아내었다. 이번에는 이렇게 찾아낸 특징점을 다른 이미지의 동일한 특징점과 매칭시키기 위해 특징점의 지역적인 고유한 특성을 추출하고 비교하는법을 배워보겠다. 변형 같은 공간의 같은 물체라 하더라도 찍은 각도나 시간에 따라 투영 형태와 색상이 다를 수 있다. 이러한 점때문에 우리가 추출할 특징점의 특성은 다음의 변형들에 크게 영향받지 않아야한다. 1. 크기 2. 회전 3. 위치 4. 색상 이러한 변형들을 견뎌낼 수 있는 특성을 추출해보자. MOPS (Multiscale Oriented PatcheS descriptor) 우리는 이러한 특성으로 해당 점의 주변 사각형이 이루는 그림을 그 특성으로 사용할 것이다. 회전 극복 우선 해당 특징점에서 H의 큰 고유값에 대한 고유 ..

[Effective C++]항목 13~17 : 자원 관리

항목 13 : 자원 관리는 객체로 하자 동적 할당된 메모나, 뮤텍스 잠그기등의 여러 자원들은 할당을 받은 뒤 사용을 끝내고 반드시 해제를 해야한다. 이러한 기능을 우리가 사용하거나 남이 사용하도록 인터페이스를 만들어줄 때는 사용자가 직접 반납을 하도록 하는 것이 아니라 이 자원을 관리하는 객체를 두고 그 객체의 소멸자가 자원을 해제하도록 하는 것이 좋다.대표적인 예시가 스마트 포인터이다. unique_ptr이나 shared_ptr등으로 동적할당된 메모리 또는 포인터를 관리하자. 만약 자신이 동적할당으로 만든 자원의 포인터를 리턴해주는 함수를 만들었다면 로우 포인터가 아닌 스마트포인터에 담아 리턴해주자.이러한 초기화시 자원을 획득하고(받거나 생성) 소멸 시 자원을 해제하는 기법을 RAII라 하며 이러한 객..

[일반물리학1][2장]운동의 법칙

힘 질량m의 물체가 가속도가 a일때 이 물체에는 am의 힘이 적용되고 있다고 말한다.즉 힘 F = am이다.만약 물체에 여러 방향으로의 힘이 동시에 작용한다면 그 벡터들을 모두합쳐진 알짜힘이 최종적으로 작용하게된다.보통 알짜힘은 시그마F로 표현한다. 뉴턴의 제 1법칙 : 관성의 법칙 어떤 물체에 아무런 외부힘이 주어지지 않는다면 물체는 현재의 운동상태를 유지한다. 즉 속도의 변화가 없다. 즉 가속도가 없다. 관측 기준으로 말하면 관성틀(가속도가 없는 관측자)가 어떤 물체를 관측할 때 그 물체에 외부힘이 적용되지 않으면 가속도가 관측되지않는다. 뉴턴의 제 2법칙 : 가속도의 법칙 F = am 뉴턴의 제 3법칙 : 작용과 반작용의 법칙 어떠한 물체가 어떠한 원인(접촉,자기력 등)에 의해 다른 물체에 힘을 가..

[컴퓨터비전개론][4장]feature detection

개요 이미지에는 여러 사물같은 오브젝트들이 존재한다. 컴퓨터비전에서 우리는 이러한 이미지 속 오브젝트들을 구분해내고 싶은데 이럴때 유용하게 사용할 수 있는 것이 특징점이다. 특징점은 쉽게 말해 이미지에서 특징을 잡아 구분해내기 쉬운 특정 오브젝트의 한 점이다. 특이점은 자신을 식별할 수 있는 데이터를 벡터형태로 가지게된다.특이점의 조건은 다음 같은 것들이 있다.1. 한 실체점에 대해 유니크한 값을 가져 식별할 수 있어야한다.2. 한 이미지에서 많은 특이점을 추출할 수 있어야한다.3. 이미지의 색변화나 왜곡에서도 식별할 수 있어야한다.4. 추출 성능이 좋아야한다.대표적인 특이점으로 코너등이 있으며 이를 이용하여 오브젝트의 한 점을 구분해낼 수 있다. 이번장에서는 이러한 특징점, 그중 대표적인 코너를 추출해..

[일반물리학1][1장]기본적인 운동들

밑줄은 벡터를 의미 등가속도 운동 공식 초기위치 p ,초기속도 v에서 등가속도 a로 t초동안 이동 시 위치 = p + vt + (at^2)/2 포물선 운동 p + vt + (gt^2)/2 여기서 g는 높이축으로 -중력가속도를 가지는 벡터(g에 밑줄이 안그인다;) 쉽게 말해 초기위치에서 초기속도가 주어진 후 중력가속도만 계속 적용되는 운동 상태이다. 2차원 등속 원운동 일정한 속력으로 움직이는 원운동, 속도가 아니다. 방향이 바뀐다. v = 등속력 = rw = 2πf r = 반지름 속도 일정한 크기로 원의 접선 방향으로 작용 가속도 (구심 가속도) (ac) 현재 위치에서 원의 중심 방향으로 (v^2)/r = rw^2 크기로 작용, 구심가속도로 불리며 ac로 쓰인다. 이때 구심가속도는 크기와 벡터가 혼용되어..