메뉴 건너뛰기

OBG

Programming

Library
2012.10.14 23:31

[OpenCV] 얼굴 인식 예제

MoA
조회 수 1536 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

if( m_pImage ) cvReleaseImage( &m_pImage );

m_pImage = cvLoadImage("somePicture.jpg", CV_LOAD_IMAGE_COLOR);
double scale = 1.3;

CvMemStorage* storage = cvCreateMemStorage(0); 

// 영상 준비 
// 
IplImage* gray = cvCreateImage( cvSize(m_pImage->width,m_pImage->height), 8, 1 ); 
IplImage* small_img = cvCreateImage(
cvSize( cvRound(m_pImage->width/scale), cvRound(m_pImage->height/scale)), 8, 1 
); 
cvCvtColor( m_pImage, gray, CV_BGR2GRAY ); 
cvResize( gray, small_img, CV_INTER_LINEAR ); 
cvEqualizeHist( small_img, small_img );

// 객체 검출 
// 
cvClearMemStorage( storage ); 
CvSeq* objects = cvHaarDetectObjects(
small_img, 
m_pCascade, 
storage,
1.1, 
2, 
0  /*CV_HAAR_DO_CANNY_PRUNING*/, 
cvSize(30, 30)
);

// 객체를 찾고 박스를 그린다.
// 
for( int i = 0 ; i < (objects ? objects->total : 0) ; i++ ) 
{
CvRect* r = (CvRect*)cvGetSeqElem( objects, i );
CvPoint center;
int radius;
center.x = cvRound((r->x + r->width*0.5)*scale);
center.y = cvRound((r->y + r->height*0.5)*scale);
radius = cvRound((r->width + r->height)*0.25*scale);
cvCircle( m_pImage, center, radius, cvScalar(255, 0, 0), 3, 8, 0 );


cvReleaseImage( &gray ); 
cvReleaseImage( &small_img ); 
cvReleaseMemStorage( &storage );

Invalidate(FALSE);

 

위 소스를 적당히 이용하여 새로운 창으로 이미지를 띄우든 (cvNameWindow()) static control에 띄우든(CvvImage class) 한다.

 

결과

 

FaceDetect - Secret.png

 

리본만도 못한 불쌍한 송지은 ㅋㅋㅋ

 

참고 : Learning OpenCV 제대로 배우기

?

  1. Programming 게시판 관련

  2. CreateThread와 AfxBeginThread의 차이

  3. [농장게임 만들기] 1. Nubcake Farms 게임 소개

  4. [OpenCV] 얼굴 인식 예제

  5. MFC 클래스 멤버함수 설명서

  6. [게임 만들기] 강좌 진행 예정

  7. unsigned char <-> 유니코드(unicode) 및, string 변환 매크로 - USES_CONVERSION

  8. 워게임 사이트 정리

  9. MFC기반의 CSocket 사용 방법과 예제

  10. CFile을 이용한 저장/불러오기

  11. OpenCV 이용한 템플릿 매칭

  12. CDockablePane 버튼 비활성화 문제

  13. 리스트 컨트롤에 체크박스 추가

  14. Machine Learning for Video Games

  15. MFC 클래스간 통신

  16. Thread에서 Dialog의 UpdateData()사용하는 방법

  17. CPaneDialog 초기화 (OnInitDialog)

  18. 다이얼로그 resize 시 child control의 그래픽 깨짐 해결

  19. 컨텍스트 스위칭 (Context Switching)

  20. [첫게임 만들기] 7. 게임 정보 표시

  21. [첫게임 만들기] 3. Bunny를 회전시키자

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 15 Next
/ 15
위로