분류 전체보기 (41) 썸네일형 리스트형 편광(Polarization) 편광이란? 편광(Polarization)은 말 그대로 빛을 분극화(Polarization) 시키는 것입니다. 분극화란 극성을 분리시키는 것을 의미하는데, 이러한 말이 나온 이유는 빛(광)에 극성(방향성)이 있기 때문입니다. 광은 전기장과 전기장에 직각으로 구성된 자기장으로 이루어져 있습니다. 그리고 이러한 광의 극성 중 원하는 극성만을 구별(Polarize OR Filter)하여 특정한 극성의 광 성분만을 수신하기로 하는 것이 바로 '편광'입니다. 다음은 편광의 예시입니다. 왼쪽 이미지는 편광 필터를 적용하기 전의 이미지, 오른쪽 이미지는 편광 필터를 적용한 후의 이미지입니다. 이 이미지를 촬상 하는 데에 있어 목적은 물의 난반사(특정 각도로 들어오는 빛)를 제거하는 것이었고, 그것을 위해서 편광 필터를.. [머신 비전]프레임 그래버 (Frame Grabber) 프레임 그래버(Frame Grabber)란? 프레임 그래버(Frame Grabber)는 카메라로부터 받은 비디오 신호를 영상 데이터로 변환시켜 주는 영상 캡처 장치이다. 즉 하드웨어의 아날로그 신호를 디지털로 바꾸어 PC가 처리할 수 있도록 하는 보드를 뜻한다. 프레임 그래버가 어떤 모습인지 상상하기 어렵다면 컴퓨터의 그래픽 카드를 생각하면 된다. 현재까지의 프레임 그래버 역시 PC 혹은 시스템과 연결되는 경우가 많기 때문에 기본적인 모습도 메인보드나 그래픽 카드와 같은 PC부품과 크게 다르지 않다. Line Scan Camera, Area Scan Camera Line Scan Camera란? Linescan Camera(라인스캔카메라)는 우리가 흔히 쓰는 스캐너와 같다고 보면 된다. 한 줄로 길게 찍는 카메라다. 가장 이해하기 쉬운 예시로, 사무실에 있는 복사기를 예로 들 수 있다. 복사기에 종이를 올려놓고 복사 버튼을 누르면, 직선 형태의 빛이 일정한 속도로 끝에서 끝으로 움직이는 모습을 본적 있을 것이다. 라인 스캔 카메라도 동일하게 동작한다. 카메라 혹은 물체가 일정한 속도로 움직이면서 대상을 스캔하여 영상 데이터를 얻는 것이 원리이다. 그런데 속도가 빠를수록 노출시간이 짧아지면서 광량이 부족해지므로, 라인스캔 시스템에서 조명은 필수이며 가장 중요한 요소이다. Linescan Camera(라인스캔카메라)는 아래 상황에 적합하다. 1. 시료가 멈추지 않고.. 카메라 캘리브레이션(camera calibration) 카메라의 파라미터(parameters)를 추정하는 과정을 카메라 캘리브레이션이라고 한다. 실세계의 3D 점과 캘리브레이션된 카메라로 캡처한 이미지의 해당 2D 투영(픽셀)간의 정확한 관계를 결정하는데 필요한, 카메라에 대한 모든 정보(파라미터 또는 계수)를 의미한다. 일반적으로 이것은 두 종류의 파라미터를 복구하는 것을 의미한다. 1. 카메라/렌즈 시스템의 내부 파라미터(Internal parameters). 예: 초점 거리(focal length), 광학 중심(optical center), 렌즈의 방사 왜곡 계수(radial distortion coefficients of the lens). 2. 외부 파라미터(External parameters): 이것은 일부 세계 좌표계에 대한 카메라의 방향(회전 .. [C++]포인터 개념, 사용 예시, 포인터 연산자 포인터란 C++에서 포인터란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부른다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장하는 데 사용 된다. int n = 100; // 변수의 선언 int *ptr = &n; // 포인터의 선언 사용된 변수와 포인터가 메모리에서 어떻게 저장되는지를 보여주는 그림이다. 포인터 연산자 C++에서 포인터와 연관되어 사용되는 연산자는 다음과 같다. 1. 주소 연산자(&) 주소 연산자는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다. '&'기호는 앰퍼샌드(ampersand)라고 읽으며, 번지 연산자라고도 불림 2. 참조 연산자(*) 참조 연산자는 포인터의 이름이나 주소 앞에 사용하여, 포인터에 저장.. [C++]Call by value, Call by reference 함수의 호출 방법은 대표적으로 Call by value(값에 의한 호출)와 Call by reference(참조에 의한 호출)가 있다. 함수 호출이란 말 그대로 정의된 함수를 호출하는 것으로 함수에 정의한 매개변수의 형태에 따라 Call by value 혹은 Call by reference인지 결정된다. Call by value Call by value란 함수 호출 시 넘기는 인자의 값이 매개변수에 복사돼서 함수 내에서 매개변수에 직접적인 데이터 조작을 가해도 인자에 영향을 주지 않는 것이다. 여기서 값이란 주소 값이 아닌 그 자체로 유의미한 데이터로 생각하면 된다. 여기 두 변수의 값을 바꾸는 Swap 함수가 있다. a와 b는 각각 10과 20으로 초기화했고 함수는 인자로 받은 두 값을 바꾸는 작업을 .. [C++]메모리 구조 데이터, 스택, 힙 Data 영역 코드에서 선언한 전역변수 또는 static 변수 등등이 저장된 공간이다.전역변수/ static 값을 참조한 코드는 컴파일하고 나면 Data 영역의 주소값을 가르키도록 바뀐다. 실행 중도에 전역변수가 변경 될 수 있으니 이 영역은 Read-Write로 지정돼있다. 단, 초기화 되지 않는 전역 변수는 BSS영역에 할당된다. Stack 영역 (1) 매개변수, 지역변수 - 함수 (2) 함수호출 할당, 함수 호출끝 해제 (3) 공간이 작다(보통 1MB) (4) 크기가 컴파일 타임에 정해짐 자료구조로 많이 알려진 Stack은 프로세스의 메모리 공간을 관리하기 위한 알고리즘 중 하나이다. 이 영역은 함수 안에서 선언된 지역변수, 매개변수, 리턴값, 돌아올 주소 등등이 저장되고 함수 호출시 기록하고 종료.. [C++] const 위치의 의미와 사용 방법 C++ 에서 const는 "상수"를 뜻한다. 따라서 C++에서도 그 대상을 변경하지 않는 "상수"를 의미함 C++ 에서의 const는 위치에 따라 의미하는 바가 완전히 달라진다. Const 변수 const 비-멤버 변수 const int num = 1; // 일반적인 표현 int const num = 1; // 위와 같은 의미 num = 2; // Compile Error 위의 두 방식 모두 같은 뜻으로 num은 변할 수 없는 상수가 되는 것을 의미한다. JAVA에서 배운 const와 같다고 보면 된다. const 멤버 변수 const 변수는 반드시 선언 시 초기화를 해야 하며 초기화 하지 않으면 컴파일 에러가 발생 그래서 class의 멤버 변수를 const로 선언 시에는 반드시 초기화 리스트(Initi.. 이전 1 2 3 4 ··· 6 다음