'Computer Vision'에 해당되는 글 4건

  1. 2011.09.06 OpenCV 2.3 Computer vision (3)
  2. 2011.09.05 OpenCV 2.3 Computer vision (1) 2
  3. 2009.02.16 Rob Hess의 SIFT [1] 1
  4. 2009.01.03 파노라마 구성하기
Computer Vision2011. 9. 6. 10:22
Creating a GUI application using QT

앞절에서는 Qt의 기본적인 내용만 정리한 것이고 , 이번에는 Qt와 OpenCV를 연결하여 좀더 Qt의  GUI를 사용하는 것을 테스트 합니다.   Graphic 관련 데이터를 처리하는데 O/S마다 종속성도 존재하고 귀찮은 GUI를 일일이 만들기도 그렇고 할때 딱 좋은 것이 이 Qt + OpenCV 조합입니다. 필요한 함수는 다 있으므로 이것을 이용해서 알고리듬을 만들어서 테스트 해보고 필요한 부분만 들어 내에서 H/W로 변경하면 됩니다.

이 OpenCV조합을 SystemC로 연결시켜서 테스트 할 수 있고 또 SystemC 조합을 다시 SDL로 연결시켜서 해볼 수 있기 때문에 이런것을 한번 알아 두면 두고두고 조합하면서 써먹을 수 있습니다. - 쉽게 말하면 아주 편하다는 의미입니다. 


이번에는 Create Project에서 QT GUI를 선택합니다.

 
프로젝트 이름은 원하는것으로 정하고 만들면 아래와 같이 만들어집니다.

 
위에서 중요한 것이  GUI 어플을 위한 Form입니다.
Visual base의 Form과 비슷한데 하여튼  GUI Template로 생각하면 됩니다.
GUI Template를 아래와 같이 만듭니다.

 
Push Button을 두개 넣어 두고 이름을 위와 같이 합니다.
버튼의 정식 이름은 오른쪽에 조그마한 창에 나오는데 이 버튼의 이름을
PB_OpenImage와 PB_Process로 정합니다.

 
이제 이벤트를 추가하면 됩니다.
이벤트는 버튼이 Push되었을때 즉  Click되었을때를 추가하면 됩니다.

 QT에서는  Event를 처리하는 개념을  Slot 을 추가한다고 합니다.
Slot을 추가하기 위해서는 마우스의 버튼 혹은 콘트롤 버튼과 함께 클릭하면 아래와 같은 Pop Up 매뉴가 나옵니다.
여기서  Slot 추가 매뉴 Go to Slot을 선택합니다.


 그럼 아래 창이 나타나는데 여기서 clicked를 추가합니다.

 
그럼 코드에 아래와 같이 나옵니다.

void MainWindow::on_PB_OpenImage_clicked()
{
    
}

같은 방법으로 Process도 만듭니다.

시작시에 말했듯이 이 프로그램은 Image를 읽어들여서 작업하는 프로그램입니다. 이미지를 읽어들여서 저장하기 위해서는 별도의 변수가 필요합니다. 엄밀하게는 이미지를 저장할 공간을 필요로 합니다.

다음과 같이 이미지를 저장할 변수를 추가합니다.


private 공간에 cv::Mat image를 추가합니다.
각각의 버튼이 눌려졌을때의 함수는 아래와 같이 추가를 합니다.

#include <QFileDialog>
...
 
void
MainWindow::on_PB_OpenImage_clicked()
{
    QString filename = QFileDialog::getOpenFileName( this, tr("Open Image") , "." , tr("Image Files (*.png *.jpg * jpeg *.bmp)")) ;
    image = cv::imread(filename.toAscii().data());
    cv::namedWindow("Original Image");
    cv::imshow("Original Image", image);
}

 
그리고 컴파일을 하면 아래와 같이 실행됩니다.
- project 파일에 옵션 추가하는 것은 2번째 글을 참고하시기 바랍니다.

 
  OpenImage를 눌러서 파일 다이얼로그를 띄우고 잘 처리하면 됩니다.

  Process에 대한 함수는 아래와 같이 추가합니다.

void MainWindow::on_PB_Process_clicked()
{
 cv::flip(image , image , 1);
 cv::namedWindow("Output Image");
 cv::imshow("Output Image", image);
}
 

위의 코드는 읽어들인  image를 flip시키는 것입니다.

컴파일과 실행하면 아래와 같이 나옵니다.



주) 항상 함수 하나 추가해보고 테스트 해보는 식으로 하는 것이 나중에 디버깅이 쉬워집니다.

이제 좀더 다음 단계로  다이얼로그 박스에 결과를 내보내는 것을 해보겠습니다.

먼저 Qt에서는 그래픽 데이터를 Label로 출력할 수 있으므로 Dialog에 label을 추가 합니다.



그리고 코드를 다음과 같이 수정합니다.


void MainWindow::on_PB_Process_clicked()
{
 cv::flip(image , image , 1);
 // cv::namedWindow("Output Image");
 // cv::imshow("Output Image", image);

 // Qt Image
 QImage img = QImage (( const unsigned char *) (image.data) , image.cols , image.rows, QImage::Format_RGB888);

// display on label
 ui->label->setPixmap( QPixmap::fromImage(img));
 ui->label->resize(ui->label->pixmap()->size());

}

  이제 실행하면 됩니다.

  

'Computer Vision' 카테고리의 다른 글

3D Noise Reduction algorithm test  (0) 2011.10.05
OpenCV 2.3 Computer vision (4)  (4) 2011.09.14
OpenCV 2.3 Computer vision (2)  (0) 2011.09.05
OpenCV 2.3 Computer vision (1)  (2) 2011.09.05
OpenCV 2.1 맥에서 빌드하기  (0) 2010.09.04
Posted by GUNDAM_IM
Computer Vision2011. 9. 5. 13:18
오래간만에 보는 전공 (?) 서적인 OpenCV 2 Computer vision application programming cookbook입니다.

Embedded 혹은 non windows 개발을 위해서 QT와 windows에서는 Visual studio에서 차례로 설명합니다.
내용은 어려운것이 없으니 쉽게 술술 읽어가면서 해볼 수있습니다.

OpenCV를 다운 받을 수 있는 홈페이지는 아래와 같습니다.
http://opencv.willowgarage.com/wiki/

최근에는 Android 버전으로도 Release되고 있는데 BETA입니다.
- 안정성에서는 확인한적이 없습니다.

QT를 다운 받을 수 있는 사이트는 아래와 같습니다.
qt.nokia.com

그리고 OpenCV 현재 버전은 2.3입니다. 2011년 7월에 Release되었습니다.

(MAC인 관계로.. ) QT도 설치하고 OpenCV도 설치합니다.

QT는 설치가 쉬운데 다운받아서 Pkg install만 하면 됩니다. 그럼 아래와 같은 창을 볼 수 있습니다.



OpenCV의 컴파일 및 설치
- OSX 기준

cmake를 사용하면 되는데 일단 소스 코드 폴더에서 cmake를 치면 다음과 같은 메시지를 마지막에 볼 수 있습니다.

Generators

The following generators are available on this platform:
  Unix Makefiles              = Generates standard UNIX makefiles.
  Xcode                       = Generate Xcode project files.
  CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
  Eclipse CDT4 - Unix Makefiles
                              = Generates Eclipse CDT 4.0 project files.
  KDevelop3                   = Generates KDevelop 3 project files.
  KDevelop3 - Unix Makefiles  = Generates KDevelop 3 project files.
...

위의 것을 기준으로 보면 Unix Makefiles와 XCode등을 해 볼 수 있습니다.
일단 Unix Makefile을 기준으로 한다면 아래와 같습니다.

cmake -G "Unix Makefiles"
 로 하면 makefile이 만들어집니다.

 이후에 
make all
make install
을 하여서 컴파일 및 설치를 완료 합니다.
 

같은 방법으로, XCode를 사용해서 하면 쉽게 컴파일을 할 수 있습니다.

cmake -G Xcode

로 하면 

OpenCV.xcodeproj

파일이 만들어 집니다. 이걸 XCode에서 불러들여서 컴파일하면 됩니다.

그리고,
인텔 IPP나 TBB등을 사용하면 빨라지겠지만 지금은 그냥 Pass
나중에 좀더 빠른게 필요해지면 그때 검토하고 지금은 쉽게 쉽게 갑니다.

Windows용도 Visual Studio에서 컴파일이 가능합니다.


Sample Program 빌드
테스트를 위해서 samples 폴더에서 하나를 빌드해 봅니다.
dft.cpp를 가지고 빌드합니다.

g++을 사용하며 아래와 같이 빌드합니다.

g++ -o dft.elf dft.cpp -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_ml -lopencv_imgproc 

실행은 아래와 같습니다.
./dft.elf stuff.jpg




이 책의 소스 코드는 PacktLib에서 다운 받을 수 있습니다.




 

'Computer Vision' 카테고리의 다른 글

OpenCV 2.3 Computer vision (3)  (0) 2011.09.06
OpenCV 2.3 Computer vision (2)  (0) 2011.09.05
OpenCV 2.1 맥에서 빌드하기  (0) 2010.09.04
SURF Lib  (3) 2010.06.22
Rob Hess의 SIFT [8]  (7) 2009.06.21
Posted by GUNDAM_IM
Computer Vision2009. 2. 16. 14:59

Rob HessSIFT


1. 살펴 보기


SIFTScale ... 을 의미하는 것이고...자세한 내용은 다음에 기회되는 대로 정리해서 올리도록 하겠습니다.



인터넷에 찾아보면 여러가지 버전의 구현된 코드를 찾아볼 수 있습니다.

귀찮게도 C로 되어 있는것 보단 MATLAB이나 C#같은 것으로 되어 있어서 상당히 귀찬습니다.


이번에 발견하여 분석한 코드는 Rob Hess의 코드이며, C로 되어 있습니다. 


Rob Hess는 오래곤 주립대학의 컴퓨터 공학과 박사과정 학생으로 컴퓨터 비젼을 전공으로 하고 있습니다.

홈 페이지는 이곳에 있습니다.


http://web.engr.oregonstate.edu/~hess/index.html


홈페이지에 보면 몇가지 알고리듬을 공부하고 올려놓았지만, 가장 관심이 가는것은  SIFT입니다.


최신 버전은 2009년 1월에 1.1.1을 만들었습니다. 이전 버전과 바뀐 부분은


라이브러리를 정적으로 만들 수 있도록 Makefile을 수정한 부분과,

Visual C를 VC2005에서 컴파일 되도록 하였다는 부분

그외에 API들을 수정하여서 버그들을 정리했다고합니다.


소스 코드는 리눅스 버전과 윈도우즈 버전의 코드를 가지고 있고 각각 이 곳에서 받을 수 있습니다.


리눅스 버전 : TAR.GZ

윈도우즈 버전 : ZIP


이 SIFT 버전은 OpenCV 에 기반하고 있으며  RANSAC 은 GNU Scientific Lib에 기반하고 있습니다.

이제 아래 그램을 보면 SIFT가 무엇을 하는 지에 대해서 알 수 있습니다



    

사용자 삽입 이미지 사용자 삽입 이미지

왼쪽의 카드를 오른쪽의 그림 더미에서 찾아내는 것입니다.

아래 그림을 다시 보면


    

사용자 삽입 이미지 사용자 삽입 이미지


이 되어서 원하는 이미지가 있는 위치를 정확하게 찾아 낼 수 있습니다.


1. 코드의 컴파일


컴파일을 할려면 Visual C++에서 먼저 컴파일을 하였습니다.

우선 VC Project 를 로드하여 컴파일을 하면 다음과 같이 에러가 발생합니다.


LINK : fatal error LNK1104: cannot open file 'cvd.lib'


해당 라이브러리를 찾을 수 없다는 의미이고,

이 라이브러리는 opencv debug lib을 의미합니다.



2. OpenCV 설치



2.1 다운로드 및 설치


OpenCV를 다운로드 합니다.


Source Forge에서 다운로드 합니다.

아래 사이트에서 다운 받을 수 있습니다.


http://sourceforge.net/projects/opencvlibrary


여기서 윈도우즈 버전을 다운받아서 설치합니다. 실행 파일로 되어 있으므로 그렇게 어렵지는 않을듯 합니다.

설치 중간에 환경 변수 세팅을 물어보므로, 그때 YES라고 해서 설치를 합니다.


설치가 끝나면 View Documents를 보게 됩니다.


C:\Program Files\OpenCV\docs\index.htm


링크이므로 틈틈히 찾아보면 정보를 얻을 수 있습니다.


2.2 디버깅 라이브러리 만들기



설치된 코드는 실행 코드이다. 개발시에는 디버깅용 코드가 필요하므로 디버깅 버전의 라이브러리를 만드러야 한다.


c:\Program Files\OpenCV\_make


폴더에 가서 opencv.dsw를 클릭합니다.


그러면 버전문제에 대한 문의 다이얼로그가 나타난다. 모두 YES라고 선택하면 된다.

그러면 다음과 같은 창이 나타난다.


사용자 삽입 이미지


그럼 이제 BUILD->Batch Build를 선택하면 다음과 같은 창이 나타난다.


사용자 삽입 이미지


그럼 win32 ReleaseWin 32 Debug를 모두 선태한다.

이후에 Build를 눌러서 라이브러리를 모두 컴파일 한다.



경고도 나타나지만 무시하고 진행하면 컴파일이 완료된다.


2.3 라이브러리 오류 수정


실제로 깨끗하게 완료된것이 아니다.


ompiling...

cvbgfg_acmmm2003.cpp

.\cvbgfg_acmmm2003.cpp(464) : error C2039: 'foreground_regions' : is not a member of 'CvFGDStatModel'

        c:\Program Files\OpenCV\cvaux\include\cvaux.h(1301) : see declaration of 'CvFGDStatModel'

.\cvbgfg_acmmm2003.cpp(470) : error C2039: 'foreground_regions' : is not a member of 'CvFGDStatModel'

        c:\Program Files\OpenCV\cvaux\include\cvaux.h(1301) : see declaration of 'CvFGDStatModel'

cvbgfg_gaussmix.cpp

.\cvbgfg_gaussmix.cpp(348) : error C2039: 'foreground_regions' : is not a member of 'CvGaussBGModel'

        c:\Program Files\OpenCV\cvaux\include\cvaux.h(1365) : see declaration of 'CvGaussBGModel'

Generating Code...


과 같이 오류가 발생합니다. 이전 버전에도 있던 오류인데 아직도 살아있다는게 놀라울 따름입니다.

하여튼 수정합니다.


cvaux.h : 1159 행 부근을 보면


#define CV_BG_STAT_MODEL_FIELDS()                                                   \

    int             type; /*type of BG model*/                                      \

    CvReleaseBGStatModel release;                                                   \

    CvUpdateBGStatModel update;                                                     \

    IplImage*       background;   /*8UC3 reference background image*/               \

    IplImage*       foreground;   /*8UC1 foreground image*/                         \

    IplImage**      layers;       /*8UC3 reference background image, can be null */ \

    int             layer_count;  /* can be zero */                                 \

    CvMemStorage*   storage;      /*storage for 밼oreground_regions?/              \

    CvSeq*          foreground_regions /*foreground object contours*

/


이 있습니다. 여기서


    CvMemStorage*   storage;      /*storage for 밼oreground_regions?/              \



    CvMemStorage*   storage;      /*storage for 밼oreground_regions*/              \


으로 바꿉니다.


이번에는 잘 진행합니다.


2.4 라이브러리 오류 수정


컴파일 끝에 2개가 컴파일이 안되었다고 나옵니다.

나온것을 보면


   Creating library ..\..\lib/highgui.lib and object ..\..\lib/highgui.exp

cvcap.obj : error LNK2019: unresolved external symbol "struct CvCapture * __cdecl cvCreateCameraCapture_DShow(int)" (?cvCreateCameraCapture_DShow@@YAPAUCvCapture@@H@Z) referenced in function _cvCreateCameraCapture

..\..\bin/highgui110.dll : fatal error LNK1120: 1 unresolved externals

Build log was saved at "file://c:\Program Files\OpenCV\_temp\highgui_Release\BuildLog.htm"

highgui - 2 error(s), 0 warning(s)

------ Build started: Project: highgui, Configuration: Debug Win32 ------

Linking...

   Creating library ..\..\lib/highguid.lib and object ..\..\lib/highguid.exp

cvcap.obj : error LNK2019: unresolved external symbol "struct CvCapture * __cdecl cvCreateCameraCapture_DShow(int)" (?cvCreateCameraCapture_DShow@@YAPAUCvCapture@@H@Z) referenced in function _cvCreateCameraCapture

..\..\bin/highgui110d.dll : fatal error LNK1120: 1 unresolved externals

Build log was saved at "file://c:\Program Files\OpenCV\_temp\highgui_Debug\BuildLog.htm"


으로 되어 있습니다.


이것은 cvcap_dshow.cpp 파일이 highgui project에 포함되어 있지 않아서 생긴 오류이다.

src에 이것을 추가합니다.


사용자 삽입 이미지

위의 그림처럼 추가하면 됩니다.


그래도 오류가 발생하는데 일단 라이브러리를 추가합니다.


C:\Program Files\OpenCV\otherlibs\_graphics\lib


그리고 다시 컴파일을 하면 역쉬 에러가 나옵니다.


cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: void __thiscall videoInput::stopDevice(int)" (?stopDevice@videoInput@@QAEXH@Z) referenced in function "public: virtual void __thiscall CvCaptureCAM_DShow::close(void)" (?close@CvCaptureCAM_DShow@@UAEXXZ)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: bool __thiscall videoInput::isDeviceSetup(int)" (?isDeviceSetup@videoInput@@QAE_NH@Z) referenced in function "public: virtual bool __thiscall CvCaptureCAM_DShow::open(int)" (?open@CvCaptureCAM_DShow@@UAE_NH@Z)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: bool __thiscall videoInput::setupDevice(int)" (?setupDevice@videoInput@@QAE_NH@Z) referenced in function "public: virtual bool __thiscall CvCaptureCAM_DShow::open(int)" (?open@CvCaptureCAM_DShow@@UAE_NH@Z)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: bool __thiscall videoInput::getPixels(int,unsigned char *,bool,bool)" (?getPixels@videoInput@@QAE_NHPAE_N1@Z) referenced in function "public: virtual struct _IplImage * __thiscall CvCaptureCAM_DShow::retrieveFrame(void)" (?retrieveFrame@CvCaptureCAM_DShow@@UAEPAU_IplImage@@XZ)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: int __thiscall videoInput::getHeight(int)" (?getHeight@videoInput@@QAEHH@Z) referenced in function "public: virtual struct _IplImage * __thiscall CvCaptureCAM_DShow::retrieveFrame(void)" (?retrieveFrame@CvCaptureCAM_DShow@@UAEPAU_IplImage@@XZ)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: int __thiscall videoInput::getWidth(int)" (?getWidth@videoInput@@QAEHH@Z) referenced in function "public: virtual struct _IplImage * __thiscall CvCaptureCAM_DShow::retrieveFrame(void)" (?retrieveFrame@CvCaptureCAM_DShow@@UAEPAU_IplImage@@XZ)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: bool __thiscall videoInput::setupDevice(int,int,int)" (?setupDevice@videoInput@@QAE_NHHH@Z) referenced in function "public: virtual bool __thiscall CvCaptureCAM_DShow::setProperty(int,double)" (?setProperty@CvCaptureCAM_DShow@@UAE_NHN@Z)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: static void __cdecl videoInput::setVerbose(bool)" (?setVerbose@videoInput@@SAX_N@Z) referenced in function "public: __thiscall SuppressVideoInputMessages::SuppressVideoInputMessages(void)" (??0SuppressVideoInputMessages@@QAE@XZ)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: __thiscall videoInput::videoInput(void)" (??0videoInput@@QAE@XZ) referenced in function "void __cdecl `dynamic initializer for 'protected: static class videoInput CvCaptureCAM_DShow::VI''(void)" (??__E?VI@CvCaptureCAM_DShow@@1VvideoInput@@A@@YAXXZ)

cvcap_dshow.obj : error LNK2019: unresolved external symbol "public: __thiscall videoInput::~videoInput(void)" (??1videoInput@@QAE@XZ) referenced in function "void __cdecl `dynamic atexit destructor for 'protected: static class videoInput CvCaptureCAM_DShow::VI''(void)" (??__F?VI@CvCaptureCAM_DShow@@1VvideoInput@@A@@YAXXZ)

..\..\bin/highgui110d.dll : fatal error LNK1120: 10 unresolved externals


과 같이 에러가 발생한다.


소스 파일을 찾아서 잘 보면 모두 VIDEO INPUT을 직접 받을때 사용하는 함수들 입니다. 

현시점에서 외부에서 직접 비디오 입력을 받을 일이 없으므로 그냥 넘어가서


_highgui,h파일에서 다음과 같이 수정한다.


#if _MSC_VER >= 1400 && !defined WIN64

#define HAVE_VIDEOINPUT 1

#endif



#if _MSC_VER >= 1400 && !defined WIN64

#ifdef HAVE_VIDEOINPUT

#  undef HAVE_VIDEOINPUT

#endif


//#define HAVE_VIDEOINPUT 1


#endif


으로 수정해서 막아버리고 컴파일 하면.. 잘 됩니다.




3 OpenCV 환경 설정


할때마다 컴파일 환경을 잡아주는 것이 귀찮으므로 일단 전체 환경 설정을 한번 하여줍니다.


3.1 헤더 파일 폴더의 추가


Tools-> Opetions을 선택하여 나타난 다이얼로그 박스에서 Directories 탭을 선택합니다

Tools->Options을 선택하여 나타난 다이얼로그 박스에서 Projects and Solutions 항목의 VC++ Directories를 선택하면 아래와 같은 창이 됩니다.


사용자 삽입 이미지



Platform에 Win 32를 Show Directories에 Includes files를 선택한 후에

새로운 Header File Folder를 선택합니다.


C:\Program Files\OpenCV\_make

C:\Program Files\OpenCV\cv\include

C:\Program Files\OpenCV\cvaux\include

C:\Program Files\OpenCV\cxcore\include

C:\Program Files\OpenCV\ml\include

C:\Program Files\OpenCV\otherlibs\highgui

C:\Program Files\OpenCV\otherlibs\ffopencv

C:\Program Files\OpenCV\otherlibs\_graphics\include


을 모두 설치합니다.



3.2 라이브러리 폴더 추가


이번에는 라이브러리 폴더를 같은 방법으로 추가합니다.


사용자 삽입 이미지


위의 그림과 같이 Library Files를 선택한 뒤에


C:\Program Files\OpenCV\lib


을 추가합니다.


이렇게 하면 준비가 끝났습니다.


4. 다시 컴파일


SIFT를 다시 컴파일 하면 이번엔 잘 된다.


실행하면 다음과 같은 오류가 나타난다.


사용자 삽입 이미지


이것은 환경 변수에 PATH를 다음것을 추가합니다.


C:\Program Files\OpenCV\bin



5. 다시 실행


이제 SIFT를 다시실행한다.

그럼 아래 그림이 나타난다.


사용자 삽입 이미지


이제 정상적으로 컴파일이 되었다.



아래 그림은 약간 수정한 코드로 만든 이미지입니다.

잘 동작하고 있습니다.

사용자 삽입 이미지





'Computer Vision' 카테고리의 다른 글

Rob Hess의 SIFT [3]  (2) 2009.02.23
Rob Hess의 SIFT [2]  (0) 2009.02.18
MAC에서 OpenCV를 컴파일 하기  (0) 2009.01.06
XcodeでOpenCV開発  (0) 2009.01.03
파노라마 구성하기  (0) 2009.01.03
Posted by GUNDAM_IM
Computer Vision2009. 1. 3. 23:21
최근에 만들고 있는 파노라마 사진 구현하기 입니다.

여러장의 화면을 받아서 하나의 파노라마를 구성하는 것인데요.. 아래 그림은 항공 사진으로 된 그림을 받아들여서 하나의 파노라마로 구성한 것을 보여줍니다.

사용자 삽입 이미지

'Computer Vision' 카테고리의 다른 글

Rob Hess의 SIFT [3]  (2) 2009.02.23
Rob Hess의 SIFT [2]  (0) 2009.02.18
Rob Hess의 SIFT [1]  (1) 2009.02.16
MAC에서 OpenCV를 컴파일 하기  (0) 2009.01.06
XcodeでOpenCV開発  (0) 2009.01.03
Posted by GUNDAM_IM