본문 바로가기

분류 전체보기67

OpenCV 주요 기능 - 3. 이벤트 처리 1. 키보드 이벤트 처리 // 키보드 입력을 처리하는 함수 int waitKey(int delay = 0); delay : 키입력을 기다리는 시간. 지정하지 않거나 0 또는 음수일 경우 무한히 기다림. 반환값이 눌러진 키값(아스키 코드), 눌러진 게 없을 경우 -1이 반환됨. 특수키의 경우) // 특수키의 입력을 처리하는 함수 int waitKeyEx(int delay = 0); 2. 마우스 이벤트 처리 openCV에서 마우스 이벤트를 처리하려면 먼저 마우스 콜백 함수를 등록하고, 이후 마우스 콜백 함수에 마우스 이벤트를 처리하는 코드를 추가해야 함. // 특정 창에 마우스 콜백 함수를 등록할 때 사용하는 함수 void setMouseCallback(const String& winname, MouseCa.. 2020. 2. 13.
OpenCV 주요 기능 - 2. 다양한 그리기 함수 1. 직선 그리기 // 영상 위에 직선을 그리는 함수 void line(InputOutputArray img, Point pt1, Point, pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0); img 영상 위에 pt1부터 pt2까지의 직선을 그림. color로 선 색상을, thickness로 선 두께를, lineType으로 직선을 그리는 방식을 지정함. shift 인자에는 0보다 같거나 큰 정수를 지정. 지정한 크기만큼 직선 좌표 값을 (>>)을 수행한 후 직선 그리기 작업 수행. thickness, lineType, shift 인자는 생략 가능 LineTypes 열거형 상수 LineTypes 열거형 상수.. 2020. 2. 13.
OpenCV 주요 기능 - 1. 카메라와 동영상 파일 다루기(2) 2. 카메라 입력 처리하기 // 카메라 장치 열기 VideoCapture cap;// VideoCapture 기본 생성자를 이용하여 변수 선언 cap.open(0);// 컴퓨터에 연결되어 있는 기본 카메라 사용하기 위해 open() 함수 인자에 0을 지정 VideoCapture(0);// 위의 두 줄 코드를 한 줄로 줄일 수 있음. 카메라 장치가 열리도록 한 뒤, 정상적으로 열렸는지 isOpened() 멤버 함수를 이용하여 확인하는 것이 좋음. isOpened() 멤버 함수가 false를 반환하면 카메라 장치를 사용할 수 없는 상태일 경우 예외 처리 코드 추가 필요 예외 처리 코드 추가시... if (!cap.isOpened()) { cerr frame;// Mat 클래스 객체인 frame 변수에 하나의.. 2020. 2. 13.
OpenCV 주요 기능 - 1. 카메라와 동영상 파일 다루기(1) 1. VideoCapture 클래스 카메라 또는 동영상 파일로부터 정지 영상 프레임을 받아 올 수 있는 클래스 VideoCapture 클래스 멤버 변수는 모두 protected: 모드로 선언되어 있어 사용자가 직접 접근 불가능 // VideoCapture 클래스를 사용한 동영상 파일을 불러오는 기능 VideoCapture::VideoCapture(const String& filename, int apiPreference = CAP_ANY); bool VideoCapture::open(const String& filename, int apiPreference = CAP_ANY); filename 인자에 들어갈 수 있는 것 .avi, .mpg, .mp4 등의 확장자를 갖는 동영상 파일 이름 하나의 동영상 파.. 2020. 2. 13.
OpenCV 주요 클래스 - 4. InputArray와 OutputArray 클래스 1. InputArray 클래스 InputArray 클래스는 다양한 타입을 표현할 수 있는 인터페이스 클래스로 주로 OpenCV 함수의 입력 인자 자료형으로 사용됨. // Mat 객체뿐 아니라 vector 타입의 객체를 한번에 전달받을 수 있게 만드는 함수 Mat _InputArray::getMat(int idx=-1) const; Mat 객체 타입 형태로 변환해서 사용할 수 있게끔 하는 함수 idx에는 참조할 행 번호가 들어감. 음수일 경우 행렬 전체를 참조. 예시 ) void InputArrayOp() { uchar data1[] = { 1, 2, 3, 4, 5, 6 };// uchar 타입의 배열 data1 Mat mat1(2, 3, CV_8UC1, data1);// 2x3, uchar 타입의 da.. 2020. 2. 13.
OpenCV 주요 클래스 - 3. Vec와 Scalar 클래스 1. Vec 클래스 벡터는 같은 자료형을 가진 원소 몇 개로 구성된 데이터 형식임. 클래스 템플릿의 이름 재정의 형식 Vec{b|s|w|i|f|d} 2. Scalar 클래스 벡터의 한 종류 네 개 이하의 채널만을 가질 수 있음. 2020. 2. 13.