• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

'Programming'에 해당되는 글 147건

  • 2013.04.02 Haar Face Detection
  • 2013.04.02 [Function] dialog 에 FPS 표시하기
  • 2013.04.02 [Function] FindContour 덩어리 찾기
  • 2013.04.02 Duglas Puecker 외곽선 근사화
  • 2013.04.02 [Function] Dialog 창에 IplImage 출력하기
  • 2013.04.02 Debug 용 Console 창 생성하기
  • 2013.04.02 [Function] Convex Hull 최외곽선 검출하기 3

Haar Face Detection

Programming/OpenCV 2013. 4. 2. 19:25




HaarDetectObjects 함수를 이용하여 얼굴 검출하는 기능

실행하는 폴더내에 xml 파일이 있어야 거기서 특징점을 가져오고

그 특징에 해당하는 영역을 검출해서 Rectangle을 그려준다

 

 CvHaarClassifierCascade* cascade;
 CvMemStorage*   storage;
 char* filename = "haarcascade_frontalface_alt.xml";
 cascade = (CvHaarClassifierCascade*)cvLoad(filename,0 ,0 ,0);
 storage = cvCreateMemStorage(0);

  CvSeq* faces = cvHaarDetectObjects(image2, cascade, storage, 2.0, 3, 0, cvSize(40,40) );

  for(i=0; i< (faces ? faces->total : 0); i++)
  {
   CvRect* r = (CvRect*) cvGetSeqElem(faces, i);
   cvRectangle(image2, cvPoint(r->x, r->y), cvPoint(r->x + r->width , r->y + r->height), CV_RGB(0, 255, 0), 2, 8, 0);
  }

haarcascade_frontalface_alt.xml

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

cvHoughLines2 함수를 이용한 직선 검출  (0) 2013.04.29
OpenCV 를 이용하여 동영상 재생하기.  (0) 2013.04.26
[Function] FindContour 덩어리 찾기  (0) 2013.04.02
Duglas Puecker 외곽선 근사화  (0) 2013.04.02
[Function] Dialog 창에 IplImage 출력하기  (0) 2013.04.02
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

[Function] dialog 에 FPS 표시하기

Programming/C, C++, MFC 2013. 4. 2. 19:22




1초마다 fps 가 갱신되게 할것인지 매 프레임마다 갱신되게 할 것인지는

if문을 약간만 바꾸면 가능하다

 

//헤더파일에 선언되어야 할 멤버변수

DWORD m_dwFrames;
DWORD m_dwCurrentTime;
DWORD m_dwLastUpdateTime;
DWORD m_dwElapsedTime;
DWORD m_dwSpeechTime;
TCHAR m_szFPS[32];

 

 

//cpp파일에서 실행할 부분
m_dwCurrentTime = GetTickCount(); // Even better to use timeGetTime()
m_dwElapsedTime = m_dwCurrentTime - m_dwLastUpdateTime;
m_dwFrames++;

if(m_dwElapsedTime >= 1000){
 wsprintf(m_szFPS, _T("FPS = %u"), (UINT)(m_dwFrames * 1000.0 / m_dwElapsedTime));
 m_dwFrames = 0;
 m_dwLastUpdateTime = m_dwCurrentTime;
}
  
m_ctrlFps.SetWindowTextA(m_szFPS);
UpdateData(FALSE);

'Programming > C, C++, MFC' 카테고리의 다른 글

#define 에 관한 내용  (0) 2013.06.07
MFC TabControl 사용법  (2) 2013.04.30
MFC Picture Control 에 BMP 파일 출력하기  (1) 2013.04.02
MFC 에서 wav 파일 재생하기  (1) 2013.04.02
Debug 용 Console 창 생성하기  (0) 2013.04.02
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

[Function] FindContour 덩어리 찾기

Programming/OpenCV 2013. 4. 2. 19:21




contour 를 찾는 함수..

여기에 seq 와 storage 의 개념이 아직 부족하다.. 다시 한번 봐야되는데.

 

 CvMemStorage* storage_con = cvCreateMemStorage(0);
 CvSeq* seq = NULL;
 CvSeq* seq_dp = NULL;
 int number_of_contour = cvFindContours(gray, storage_con, &seq, sizeof(CvContour), 2, 2);
  if(number_of_contour !=0)
  {
   cvDrawContours(image, seq_dp, color_ex1, color_in, CV_FILLED, 3);
  }

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

OpenCV 를 이용하여 동영상 재생하기.  (0) 2013.04.26
Haar Face Detection  (0) 2013.04.02
Duglas Puecker 외곽선 근사화  (0) 2013.04.02
[Function] Dialog 창에 IplImage 출력하기  (0) 2013.04.02
[Function] Convex Hull 최외곽선 검출하기  (3) 2013.04.02
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

Duglas Puecker 외곽선 근사화

Programming/OpenCV 2013. 4. 2. 19:19




외각선 근사화 할때 사용되는 함수 cvApproxPoly()

파라미터가 뭐였는지는 기억이안나니... 필요할때 다시 찾도록 하자.

손가락 검출에 사용했었는데 근사화 없이 컨벡스헐 사용하면 손가락 하나에도 점이 너무 많이나온다.

근사화 후에 컨벡스헐을 사용하면 손가락 끝점 하나만 남게되서 손가락 갯수 검출시에 도움이 된다.

 

Contour 찾은후에 실행
storage, seq 에는 contour 정보

seq_dp = cvApproxPoly(seq, sizeof(CvContour), storage_con, CV_POLY_APPROX_DP, 40,2);

seq_dp 에 근사화된 좌표 seq 값 입력됨

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

OpenCV 를 이용하여 동영상 재생하기.  (0) 2013.04.26
Haar Face Detection  (0) 2013.04.02
[Function] FindContour 덩어리 찾기  (0) 2013.04.02
[Function] Dialog 창에 IplImage 출력하기  (0) 2013.04.02
[Function] Convex Hull 최외곽선 검출하기  (3) 2013.04.02
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

[Function] Dialog 창에 IplImage 출력하기

Programming/OpenCV 2013. 4. 2. 19:15




전에 어느분 블로그에서 받은 소스인데 간단하게 위치만 수정해서 사용중이다

void C프로젝트명Dlg::displayIplImage(IplImage* pimageIpl, int ww, int hh)
{
 int w,h;
 int nWidth= pimageIpl->width;
 int nHeight = pimageIpl->height;

 BYTE* pSrcBits = (BYTE*)pimageIpl->imageData;
 BYTE* pBmpBits = (BYTE*)calloc(sizeof(BYTE), nWidth*nHeight*4);

 CClientDC dc(this);
 CDC memDC;
 CBitmap newBmp, *pOldBmp;

 for(h=0; h<nHeight; h++)
 {
  BYTE* pSrc = pSrcBits + pimageIpl->widthStep * h;
  BYTE* pDst = pBmpBits + nWidth * 4 * h;
  for(w=0; w<nWidth; w++)
  {
   *(pDst++) = *(pSrc++);
   *(pDst++) = *(pSrc++);
   *(pDst++) = *(pSrc++);
   *(pDst++) = 0;
  }
 }
 memDC.CreateCompatibleDC(&dc);
 newBmp.CreateCompatibleBitmap(&dc, nWidth, nHeight);
 newBmp.SetBitmapBits(nWidth*nHeight*4, pBmpBits);

 pOldBmp = memDC.SelectObject(&newBmp);
 dc.BitBlt(ww,hh,nWidth, nHeight, &memDC, 0, 0, SRCCOPY);
 memDC.SelectObject(pOldBmp);

 free(pBmpBits);
 memDC.DeleteDC();
 newBmp.DeleteObject();
 
}

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

OpenCV 를 이용하여 동영상 재생하기.  (0) 2013.04.26
Haar Face Detection  (0) 2013.04.02
[Function] FindContour 덩어리 찾기  (0) 2013.04.02
Duglas Puecker 외곽선 근사화  (0) 2013.04.02
[Function] Convex Hull 최외곽선 검출하기  (3) 2013.04.02
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

Debug 용 Console 창 생성하기

Programming/C, C++, MFC 2013. 4. 2. 19:13




 

cpp 상단에 다음 명령어를 추가해 주자

 

#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")

'Programming > C, C++, MFC' 카테고리의 다른 글

#define 에 관한 내용  (0) 2013.06.07
MFC TabControl 사용법  (2) 2013.04.30
MFC Picture Control 에 BMP 파일 출력하기  (1) 2013.04.02
MFC 에서 wav 파일 재생하기  (1) 2013.04.02
[Function] dialog 에 FPS 표시하기  (0) 2013.04.02
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,

[Function] Convex Hull 최외곽선 검출하기

Programming/OpenCV 2013. 4. 2. 19:12




 

convex hull 이란?

여러개의 점들중에 최외곽의 점들을 이어놓은 집합? 연결된 선? 공간? 을 의미한다

convexhull 영역 내부에 모든 점이 존재하고 외부에는 점이 존재하지 않아야 한다.

 

 

  1. CvMemStorage* storage_hull = cvCreateMemStorage(0);
  2.  
  3. IplImage* cnt_img = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
  4. cvZero( cnt_img );
  5.  
  6. CvPoint pt0;
  7. CvSeq* ptseq = cvCreateSeq(CV_SEQ_KIND_GENERIC|CV_32SC2,sizeof(CvContour),sizeof(CvPoint), storage_hull);
  8. CvSeq* hull;
  9. int         hullcount = 0;
  10. int         count_ = 0;
  11.  
  12. for(int i=0; i<image->height; i++)
  13. {
  14.         for(int j=0; j<image->width; j++)
  15.         {
  16.                 if((unsigned char)image->imageData[i*image->widthStep+j*3]==255)
  17.                 {
  18.                         pt0.x = j;
  19.                         pt0.y = i;
  20.                         cvSeqPush(ptseq, &pt0);
  21.                 }
  22.         }
  23. }
  24.  
  25. if(ptseq->total != 0)
  26. {
  27.         hull = cvConvexHull2(ptseq, 0, CV_COUNTER_CLOCKWISE, 0);
  28.         hullcount = hull->total;
  29.         cvZero(cnt_img);
  30.  
  31.         pt0 = **CV_GET_SEQ_ELEM(CvPoint*, hull, hullcount - 1);
  32.         for(int i=0; i<hullcount; i++)
  33.         {
  34.                 CvPoint pt = **CV_GET_SEQ_ELEM(CvPoint*, hull, i);
  35.                 cvLine(image, pt0, pt, CV_RGB(0, 255, 0));
  36.                 //cvLine(image, CvPoint(cvPoint(center_x,center_y)), pt, CV_RGB(255, 0, 0));
  37.                 pt0 = pt;
  38.         }
  39.  
  40. }


소스코드 보기좋게 수정하였습니다. ( 14.04.08 )

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

OpenCV 를 이용하여 동영상 재생하기.  (0) 2013.04.26
Haar Face Detection  (0) 2013.04.02
[Function] FindContour 덩어리 찾기  (0) 2013.04.02
Duglas Puecker 외곽선 근사화  (0) 2013.04.02
[Function] Dialog 창에 IplImage 출력하기  (0) 2013.04.02
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

,
  • «
  • 1
  • ···
  • 5
  • 6
  • 7
  • 8
  • »

카테고리

  • 살다보니.. (449)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (147)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (58)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (8)
    • 전공관련 (80)
      • Algorithm (6)
      • Deep Learning (54)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (8)
    • Computer (118)
      • Utility (21)
      • Windows (31)
      • Mac (4)
      • Ubuntu, Linux (58)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • 에누리닷컴
  • 후쿠오카
  • SVM
  • ColorMeRad
  • 포르투갈
  • DeepLearning
  • random variable
  • 딥러닝
  • portugal
  • DSLR
  • matlab function
  • utility
  • function
  • 매트랩
  • Computer Tip
  • review
  • 스마트체험단
  • LIBSVM
  • CStdioFile
  • 칼로리 대폭발
  • 크롬
  • 오봉자싸롱
  • 갤럭시노트3
  • ReadString
  • Convolutional Neural Networks
  • 일본
  • 큐슈
  • 매트랩 함수
  • Deep Learning
  • matlab

달력

«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
08-23 07:32

LATEST FROM OUR BLOG

RSS 구독하기

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바