'opencv on ubuntu'에 해당되는 글 2건

  1. 2012.02.04 우분투에서 openCV 카메라 영상받기 예제
  2. 2012.02.04 우분투에서 openCV 설치하기
Programming/openCV2012.02.04 22:32

$ cat opencv.c
/**
 * Display video from webcam and detect faces
 */
#include <stdio.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
 
CvHaarClassifierCascade *cascade;
CvMemStorage            *storage;
 
void detectFaces( IplImage *img );
 
int main( int argc, char** argv )
{
    CvCapture *capture;
    IplImage  *frame;
    int       key;
    char      *filename = "haarcascade_frontalface_alt.xml";
 
    /* load the classifier
       note that I put the file in the same directory with
       this code */
    cascade = ( CvHaarClassifierCascade* )cvLoad( filename, 0, 0, 0 );
 
    /* setup memory buffer; needed by the face detector */
    storage = cvCreateMemStorage( 0 );
 
    /* initialize camera */
    capture = cvCaptureFromCAM( 0 );
 
    /* always check */
    assert( cascade && storage && capture );
 
    /* create a window */
    cvNamedWindow( "video", 1 );
 
    while( key != 'q' ) {
        /* get a frame */
        frame = cvQueryFrame( capture );
 
        /* always check */
        if( !frame ) break;
 
        /* 'fix' frame */
//      cvFlip( frame, frame, -1 );
        frame->origin = 0;
 
        /* detect faces and display video */
        detectFaces( frame );
 
        /* quit if user press 'q' */
        key = cvWaitKey( 10 );
    }
 
    /* free memory */
    cvReleaseCapture( &capture );
    cvDestroyWindow( "video" );
    cvReleaseHaarClassifierCascade( &cascade );
    cvReleaseMemStorage( &storage );
 
    return 0;
}
 
void detectFaces( IplImage *img )
{
    int i;
 
    /* detect faces */
    CvSeq *faces = cvHaarDetectObjects(
            img,
            cascade,
            storage,
            1.1,
            3,
            0 /*CV_HAAR_DO_CANNY_PRUNNING*/,
            cvSize( 40, 40 ) );
 
    /* for each face found, draw a red box */
    for( i = 0 ; i < ( faces ? faces->total : 0 ) ; i++ ) {
        CvRect *r = ( CvRect* )cvGetSeqElem( faces, i );
        cvRectangle( img,
                     cvPoint( r->x, r->y ),
                     cvPoint( r->x + r->width, r->y + r->height ),
                     CV_RGB( 255, 0, 0 ), 1, 8, 0 );
    }
 
    /* display video */
    cvShowImage( "video", img );
} 

[링크 :  http://nashruddin.com/OpenCV_Face_Detection]
[링크 : http://opencv.willowgarage.com/wiki/FaceDetection]  

$ gcc opencv.c -o opencv -lcv -lhighgui
$ ./opencv  

인식이 좀 느려서 잘은 모르겠지만 뒤집히면 얼굴을 인식하진 못한다. 
(컴퓨터가 느려서 캡쳐하다가 밀림 ^^; 아무튼 인식하면 저렇게 빨간색 박스가 쳐진다.)
(화면색이 이런건 IR 카메라로 개조한 녀석이라.. OTL)

위에서 cvFlip() 함수를 주석처리 하면 상하 반전이 되지 않고 제대로 나온다.
[링크 : http://nashruddin.com/OpenCV_Examples_Part_2]


 

[링크 : http://www.mediafire.com/?01434w7wwe1db11] haarcascade_frontalface_alt.xml 파일
 
신고

'Programming > openCV' 카테고리의 다른 글

Cmake로 openCV 컴파일 설정 및 설치하기  (0) 2012.02.12
ubuntu opencv 패키지 버전 정보  (0) 2012.02.12
우분투에서 openCV 카메라 영상받기 예제  (0) 2012.02.04
우분투에서 openCV 설치하기  (0) 2012.02.04
openCV  (0) 2012.02.04
openCV OCR 예제  (0) 2011.07.17
Posted by 구차니

댓글을 달아 주세요

Programming/openCV2012.02.04 21:19
2012년 2월 에 포함된 녀석은 opencv 2.0 버전 같은데
별도로 opencvlibrary에서 받는게 나으려나?
[링크 : http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.3.1/]

$ apt-cache search opencv
libcv-dev - development files for libcv
libcv4 - computer vision library
libcvaux-dev - development files for libcvaux
libcvaux4 - computer vision extension library
libhighgui-dev - development files for libhighgui
libhighgui4 - computer vision GUI library
opencv-doc - OpenCV documentation and examples
python-opencv - Python bindings for the computer vision library
harpia - Image Processing/Computer Vision Automatic Prgm. Tool 

$ sudo apt-get install libhighgui-dev


[링크 : http://jaehwacho.springnote.com/pages/5657783]
신고

'Programming > openCV' 카테고리의 다른 글

Cmake로 openCV 컴파일 설정 및 설치하기  (0) 2012.02.12
ubuntu opencv 패키지 버전 정보  (0) 2012.02.12
우분투에서 openCV 카메라 영상받기 예제  (0) 2012.02.04
우분투에서 openCV 설치하기  (0) 2012.02.04
openCV  (0) 2012.02.04
openCV OCR 예제  (0) 2011.07.17
Posted by 구차니

댓글을 달아 주세요