Tech/Development
-
[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..
-
동적 할당 배열보다는 Vector를 쓰자. 속도는 같고 더 안전하다.Tech/Development 2013. 5. 29. 23:47
뭐든지 직접 만들어쓰는 버릇이 있어서 기본적인 data structure도 만들어서 써오곤 했는데, 배열도 마찬가지였다. 되도록이면 new/delete를 통해서 직접 만들어쓰곤 했는데, 아무래도 vector를 이용하면 간단히 해결되는 것도 손이 훨씬 많이 간다. 코드가 복잡해지다보면 한번씩은 메모리 누수를 직접 확인해봐야하기도 하고... 그러다가 어느날, 과연 내가 직접 new/delete를 통해서 하나하나 컨트롤하는 것이 c++에서 제공되는 std::vector를 사용하는 것보다 과연 더 빠를까싶은 생각이 들었다. 사실 처음부터 당연히 더 무겁겠지...생각하고 써오지 않았다. 찾아보니 StackOverflow(http://stackoverflow.com)에는 이미 해당 관련 쓰레드가 있고 실험 결과도 ..
-
[MAC] OS X에서 Python 버젼 업그레이드하기Tech/Development 2013. 5. 17. 13:25
OS X에는 기본적으로 python이 설치되어 있으나, OS X가 출시되는 시점의 python이 설치되어 있기 때문에 상당히 예전에 나온 버젼이 설치되어 있다. 10.7.4의 Lion에는 2.7.1 버젼이, 10.6의 Snow Leopard에는 무려 Python 2.6 버젼이 설치되어 있다! 자신의 Python 버젼을 알고 싶다면 아래와 같이 입력하면 된다. $ /python -V 특히나, Python 3.0 이상버젼부터는 새로운 문법을 많이 지원하는데, 이를 사용하기 위해서는 OS X의 python을 업데이트할 필요가 있다. OS X에는 기본적으로 아래 폴더에 python이 설치되어 있다. /System/Library/Frameworks/Python.framework/Versions/ 먼저, Pytho..
-
Python에서 파일 이름 정확히 입력하기Tech/Development 2013. 3. 8. 17:05
폴더 내 존재하는 모든 파일 이름을 바꿀 일이 있어, 간단히 파이썬 스크립트를 짜볼까해서 건드렸다가.. 예상외에 문제에 부딪혔다. os.listdir 통해서 폴더 내 파일이름은 다 가져올 수 있었는데, 파일 이름 변경을 하려니 없는 파일이라고 예외를 출력한다! oldfilename = pathname + filename newfilename = pathname + format(newname,"05d")+".m2ts") os.rename(oldfilename, newfilename) OSError: [Errno 2] No such file or directory oldfilename, newfilename모두 절대경로를 입력하였는데도, 없다고 한다. 혹시나싶어 print로 출력해봐도 정확한데.. 이럴 때에..
-
[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++] Visual Studio 2010에서 Ctrl+F5로 실행 시, 프로그램 종료 후 Pause 뜨게 하는 방법.Tech/Development 2012. 8. 21. 02:39
윈도우 환경에서 C/C++ 을 작성하다보면 아무래도 Visual Studio를 많이 활용하게 된다. Visual Studio 를 이용하여 Console 프로그램을 작성할 경우, 프로그램이 종료되면 디버그 창도 같이 종료되기 때문에 콘솔 화면에 아무리 많은 글자를 띄우더라도 금방 사라지게 된다. 물론 디버그를 위해서 프로그램 코드의 마지막 라인에 입력을 받는 scanf 등의 함수나 혹은 system pause등을 사용해도 되지만 그렇게 하지 않아도 가능한 방법이 있다. 바로 Control + F5로 실행하는 방법. (아마 이 방법을 사용하였을 때는 Visual Studio 6.0 시절로 생각된다.) 하지만 최근 Visual Studio 2010에서는 Control + F5 를 해도 pause가 나타나지 않..