opencv
-
[OpenCV] Webcam 2개 연결 시, No space left on device 에러가 날 때Tech/Development 2013. 10. 10. 00:18
Stereo Matching 등을 하기 위해 카메라를 2개 연결해서 사용할 때가 있는데, 만약 라즈베리파이 등 자그마한(!) 임베디드 보드에서 구현한다면 다음과 같은 에러를 만날 수도 있다. libv4l2: error tuning on stream: No space left on device VIDIOC_STREAMON: No space left on device 이러한 에러가 발생하는 이유는 Webcam의 resolution, framerate, protocol을 USB 2.0으로 전송하기에는 너무 느리기 때문이다! 요즘 USB 3.0이 지원되기 시작하지만 아직까지 USB Webcam은 대부분 2.0 기반이며, 이러한 Webcam은 USB 3.0 포트에 연결하더라도 2.0으로 동작하게 된다. 640x4..
-
[OpenCV] Webcam을 이용해서 SIFT 매칭 예제Tech/Development 2013. 9. 14. 01:05
이전에 OpenCV를 이용해서 간단히 웹캠을 화면에 출력하는 코드 템플릿을 올렸다. 그런데, 포스팅이 심심하다는 생각이 들어서 얼굴 인식을 넣어서 포스팅을 한번 더 했었다. 2013/09/12 - [Research/Vision] - [OpenCV] OpenCV를 이용해 기본적인 Webcam 출력하기 2013/09/13 - [Research/Vision] - [OpenCV] Webcam을 이용해서 얼굴을 인식하는 간단한 예제 기왕 한 김에 이번엔 SIFT도 포스팅해야겠다고 생각했다. OpenCV에 라이브러리로 들어가 있으니 아주 쉽게 사용할 수 있다. 많이들 쓰는 lena를 DB로 써서 웹캠과 매칭되는 걸 테스트해보았다. 역시 명불허전이다. 대충 들고 있어도 매칭이 잘 된다. /* * @file ocv_c..
-
[OpenCV] Webcam을 이용해서 얼굴을 인식하는 간단한 예제Tech/Development 2013. 9. 13. 22:03
이전에 OpenCV를 이용해서 간단히 webcam에 접근하는 예제를 포스팅 한 적이 있는데, 기왕 웹캠을 띄웠으니 얼굴 인식도 추가해보기로 했다. 추가적으로 구현하는 것이 아니라 OpenCV에서 제공하는 함수를 가져다 쓰기만 하면 된다. /* * @file ocv_cam_face.cc * @brief Face detection using OpenCV with Webcam * @author http://thinkpiece.tistory.com */ #include "opencv/cv.h" #include "opencv/highgui.h" #include int main(int argc, char *argv[]) { // ------------------------------------------------..
-
[OpenCV] 리눅스에서 컴파일하기Tech/Development 2013. 9. 12. 12:04
우리나라에서는 대부분 windows를 사용하다보니 자연스럽게 c/c++관련 과제를 하더라도 Visual Studio를 사용하게 된다. 이런 IDE툴을 쓰다가 linux console에서 처음 작업하게되면 compile/link 시에 라이브러리 등을 어떻게 전달해야할지 깜깜해진다. 왠지 관련 라이브러리 이름을 다 써줘야할 것 같고... 하지만 pkg-config를 이용하면 얘가 알아서 다 해준다. OpenCV 역시 설치 시 pkg-config 정보를 제공하기 때문에, pkg-config를 이용하면 손쉽게 compile/link할 수 있다. 어쩌면 Visual Studio 에서 OpenCV를 사용하기위해 library 추가하는 과정보다 더 쉽다? 귀찮은 과정들...2011/11/28 - [Research/C..
-
[OpenCV] 기본적인 Webcam 출력하기Tech/Development 2013. 9. 12. 10:42
OpenCV를 이용하면 V4L 등을 사용하지 않고도 아주 간단하게 Webcam 영상을 출력할 수 있다. OpenCV가 2.x 버젼대에 접어들면서 cv namespace를 통해 자료구조를 깔끔하게 정리하려고 노력 중인데 아직까지는 1.x 대에 사용하던 IplImage 등 여러가지 인터페이스가 혼재되어 사용되는 현실이긴 하다. OpenCV 2.x 방식으로 Webcam을 출력하는 예제를 간단히 작성해보면 아래와 같다. /* * @file ocv_cam_basic.cc * @brief OpenCV Webcam * @author http://thinkpiece.tistory.com */ #include "opencv/cv.h" #include "opencv/highgui.h" #include int main(in..
-
[OpenCV] cv::Mat 컬러 이미지에서 색순서는 BGR이 기본값!Tech/Development 2012. 8. 21. 14:03
OpenCV를 이용하면 이미지 입출력 뿐만 아니라 영상처리 전반에 관련한 함수를 쉽게 사용할 수 있다는 장점이 있다. 하지만 나의 경우에는 이전에 작성한 라이브러리를 사용하기 위해서 주로 OpenCV의 imread()를 이용하여 cv::Mat를 얻은 뒤, Mat의 data array에 직접 접근하여 처리할 때가 많다. 이 때, OpenCV에서 color image는 한 픽셀에 대해서 (B,G,R) 순서로 저장되어 있다! 흔히 일반적으로 생각하는 RGB 순으로 저장되어 있는 게 아니므로 주의하자.
-
[C/C++] OpenCV 2.3.1 + Visual Studio 2010 + TBBTech/Vision 2011. 11. 28. 13:53
이전에 OpenCV 2.3.0을 Visual Studio 2010에서 64비트 버젼용으로 사용 중이었는데, project를 이전하면서 OpenCV 2.3.1로 버젼을 업그레이드 시키고 32비트 버젼으로 바꾸었다. 그런데 이전과 달리 돌아가지 않는데, 그 이유는 TBB라는 라이브러리를 참고하고 있기 때문이었다. 즉, OpenCV 2.3.1을 Visual Studio 2010에서 사용하고자 할 때, TBB도 설치해야 한다. TBB란? Intel Threading Building Blocks for Open Source. C++ program에서 Multi-core를 사용할 경우, parallel한 수행을 위한 라이브러리가 구성되어 있다. http://threadingbuildingblocks.org/에서 다..
-
[OpenCV] Visual Studio 2010에서 OpenCV 2.3 Setting 하기Tech/Vision 2011. 7. 11. 16:36
최근에 OpenCV 2.3 Superpack이 공개되면서 Visual Studio Project Setting이 바뀌었다. 특이한 점은 Visual Studio 2008, 2010에 해당하는 라이브러리가 미리 컴파일된 버젼으로 제공된다. 따라서 Environment Setting 시에 현재 본인이 가지고 있는 컴파일러에 맞추어 Setting을 해야한다. OpenCV 2.3 superpack에는 mingw, vc9, vc10 3가지 버젼이 제공되고 있다. Visual Studio 2010 에서 OpenCV 2.3을 사용하고자 한다면 아래 순서대로 하자. OpenCV로 작성한 Application 실행 시, 프로그램은 OpenCV의 함수들을 실행하기 위해서 DLL을 찾으려 한다. 따라서, OpenCV가 설치..