차근차근/C

이클립스 | C/C++ | opeCV | Tesseract OCR => 1

예쁜꽃이피었으면 2015. 3. 10. 16:42

openCV 한글 wiki project

https://sites.google.com/site/opencvwikiproject/table-of-contents/opencv-tutorials/introduction-to-opencv/using-opencv-with-eclipse-plugin-cdt


windows에서 pkg구성방법

http://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows

mingw 64bit 다운 받은 곳

http://iamaman.tistory.com/888


cmake 다운 받은 곳

http://www.cmake.org/download/

http://tdm-gcc.tdragon.net/download



기존 VS2010에서 c/c++ 과 opencv를 사용하던 중 tesseract ocr를 추가해야 했는데

이클립스에서 해보기로 했다.

(환경설정 진행 중 될지 안 될지 모르겠다.) 

+ 이미 opencv가 설치되어 있다.


1. 이클립스에서 c/c++실행하기

- 방법 1) 자바환경의 이클립스에서 c/c++환경 설정

- 방법 2) c/c++ 개발자용 이클립스를 따로 설치


나는 1번 . 기존의 이클립스 (자바환경) 실행

- help -> install new software

- add 눌러서 이름 아무거나 주고 

- https://eclipse.org/cdt/downloads.php 여기 가서 자신과 맞는 주소 복사.

- 나는 http://download.eclipse.org/tools/cdt/releases/kepler

- 이렇게 해서 나온 것들 다 설치해줬다.

- 이클립스 화면에서 c/c++이 안보이면 우측 상단에 'java','java EE'등이 적혀 있는 곳에 보면 
  " Open Perspective " 눌러서 c/c++ 버튼을 만들어 준다.

 

=> 이클립스에서 c/c++소스코드를 작성할 수 있다.

그러나 빌드시킬 수 없다.

MinGW만 설치해도 되는지 32bit만해야 되는지 64bit로 해야 하는지. cmake가 필요한지는 모르겠다.

그래서 나는 이렇게 함.


2. c/c+소스코드 빌드 시키기

2.1 mingw 64bit 다운 받았다 (모두 설치하면 빌드 path는 자동으로 설정됨.) http://iamaman.tistory.com/888 <- 방법


pkg? 를 하려면 아래 파일들을 추가해줘야 한다고 한다. 뭔진 모르지만 일단 했음

http://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows

http://again4you.tistory.com/33


2.2 cmake를 관리자권한으로 실행

where is the source code : C:/opencv/sources

-> 설치한 opencv가 2.4.8이상이면 sources폴더까지 http://darkpgmr.tistory.com/102

where to build the binaries : C:/opencv/release

-> 빌드해서 파일놓은 곳. release는 내가 만든 폴더이다.


"configure" 버튼 누른다 

MinGW Makefiles / use default native compilers

끝나면 ( configuring done라고 뜨면) "Generate" 버튼 누른다.

generating done이라고 뜨면 끝난 것. (더 이상 cmake는 사용하지 않는다.)


2.3

cmd창을 열고 cd C:\opencv\release 입력 후 엔터

makegw32-make라고 쓰고 엔터 . (64라고 적어야 했을까...)

100%되면 C:/opencv/release/bin을 환경변수 path에 추가


3. 이클립스에서 file - new - c++ prohect

프로젝트명 적고 executable에서 helloworld c++project 선택

오른쪽에서 MinGW GCC선택 <- 이거 안보이면 재부팅해보길. path설정 후 아직 적용 안 될 걸 수도 있다.

includes된 GCC파일이랑 c++파일 보이면 빌드 - 실행

console창에 hello world 뜨면

이클립스에서 c/c++사용 가능



3. opencv 연동

https://sites.google.com/site/opencvwikiproject/table-of-contents/opencv-tutorials/introduction-to-opencv/using-opencv-with-eclipse-plugin-cdt

위에서 만들어 둔 프로젝트에 cpp파일을 수정하든지 해서 새로 만든다.

3.1 프로젝트 우클릭 - properties

c/c++ build - settings - tool setting 탭


3.2

gcc c++ compiler 에서 includes. include paths(-l)에서

opencv 설치 경로 설정 

C:\opencv

혹시 몰라서 밑에 두 곳도 추가

C:\opencv\build\include

C:\TDM-GCC-64\bin


3.3

Mingw c++ linker -> libraries

libraries(-l)

opencv_core

opencv_imgproc

opencv_highgui

opencv_ml

opencv_video

opencv_features2d

opencv_calib3d

opencv_objdetect

opencv_contrib

opencv_legacy

opencv_flann


=>C:\opencv\build\x64\vc10\lib 에 가면 이 파일들이 없다.

그래서 기존 파일을 복사해서 뒷부분에 버전이랑 d가 붙어 있다면 d를 지워서 파일을 만들었다.

include 잘됨.

ex) opencv_core249d.lib   -> opencv_core.lib

 

3.4

gcc c++ linker -> libraries

library search path(-l)

opencv 라이브러리 경로

C:\opencv\build\x64\vc10\lib 라고 하긴 했는데

vs2010에서는 이렇게 했었지만 이클립스에서도 똑같이 하는 건지 모르겠다.



3.5 빌드시 기타 사항

#opencv 헤더 include안 된다고 할 때

ex ) <cv.h>   -> <opencv/cv.h> (조금 더 자세한 경로를 써준다. 못찾으니까)


#logger.h에 

fopen_s(&stream,name,"w"); 가 잘못되었다고 할 때

-> 아마 vs2010을 사용하면서 수정했던 부분인 것 같다. (fopen -> fopen_s)

그래서 다시 fopen으로 돌려줬다. 이렇게 stream = fopen(name,"w");

* vs2010에서 opencv실행하다가 에러나면 opencv 새로 하나 더 받아서 따로 include해서 써야 할 듯.


#





http://www.eclpeople.com/compiling-the-code-with-opencv-2-4-10-in-eclipse-qq-AUvBUPE8ivICeoL1jMYi.php

딱 내 상황인데.. 할 수 없단다  이제 와서 어떻게 하나.


이거 따라해야 하나보다. 

일단 소스 오류는 없음 실행이 안돼서 그렇지.


V2: Eclipse (plugin CDT) 에서 CMake+OpenCV 사용하기



당신이 helloworld.cpp 라는 파일을 foo 디렉토리에 가지고 있거나 새로 만들었다고 할 때:
#include <cv.h>
#include <highgui.h>
int main ( int argc, char **argv )
{
  cvNamedWindow( "My Window", 1 );
  IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 );
  CvFont font;
  double hScale = 1.0;
  double vScale = 1.0;
  int lineWidth = 1;
  cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,
              hScale, vScale, 0, lineWidth );
  cvPutText( img, "Hello World!", cvPoint( 200, 400 ), &font,
             cvScalar( 255, 255, 0 ) );
  cvShowImage( "My Window", img );
  cvWaitKey();
  return 0;
}
  1. foo 아래에 build 드렉토리를 만들고 디렉토리 안으로 이동.
  2. CmakeLists.txt 파일을 만든다:
PROJECT( helloworld_proj )
FIND_PACKAGE( OpenCV REQUIRED )
ADD_EXECUTABLE( helloworld helloworld.cxx )
TARGET_LINK_LIBRARIES( helloworld ${OpenCV_LIBS} )
  1. 실행: cmake-gui .. opencv 가 어디에 빌드될지 정확하게 입력하자.
  2. configure 클릭 한 후 generate 클릭. 모든게 다 잘 완료되었다면, cmake-gui 종료
  3. make -j4 실행(``-j4`` 는 옵션으로, 컴파일러에 4 개의 스레드를 이용해서 빌드하라고 알려주는 것이다). 잘 빌드가 되었는지 확인.
  4. Eclipse 실행. Put the workspace in some directory but not in foo or foo\\build
  5. Right click in the Project Explorer section. Select Import And then open the C/C++ filter. ChooseExisting Code as a Makefile Project``
  6. Name your project, say helloworld. Browse to the Existing Code location foo\\build (where you ran your cmake-gui from). Select Linux GCC in the “Toolchain for Indexer Settings” and press Finish.
  7. Right click in the Project Explorer section. Select Properties. Under C/C++ Build, set the build directory: from something like ${workspace_loc:/helloworld} to${workspace_loc:/helloworld}/build since that’s where you are building to.
  • You can also optionally modify the Build command: from make to something like makeVERBOSE=1 -j4 which tells the compiler to produce detailed symbol files for debugging and also to compile in 4 parallel threads.
  1. Done!


반응형

'차근차근 > C' 카테고리의 다른 글

vs2013 , mysql ,c ,crud  (0) 2015.07.08
VB2013이랑 mysql연동  (0) 2015.07.08
zero array  (0) 2015.02.27
win8 | vs2010 | tesseract-3.01 | leptonica-1.71  (0) 2015.02.24
GIMP실행하기  (0) 2015.01.02