رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تشخیص چهره با OpenCV
#1
توی opencv کدی برای تشخیص چهره وجود داره که در اینجا سعی میشه با قرار دادن کامنتهایی یادگیری کد رو ساده تر کنیم.

برنامه با بررسی ناحیه های مختلف تصویر سعی در تشخیص چهره داره:

OpenCV Face Detection
کد پی‌اچ‌پی:
/**
     * Display video from webcam and detect faces
     */
    #include <stdio.h>
    #include "cv.h"
    #include "highgui.h"
     
    
CvHaarClassifierCascade *cascade;
    
CvMemStorage            *storage;
     
    
void detectFacesIplImage *img );
     
    
int mainint argcchar** 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* )cvLoadfilename00);
     
        
/* setup memory buffer; needed by the face detector */
        
storage cvCreateMemStorage);
     
        
/* initialize camera */
        
capture cvCaptureFromCAM);
     
        
/* always check */
        
assertcascade && storage && capture );
     
        
/* create a window */
        
cvNamedWindow"video");
     
        while( 
key != 'q' ) {
            
/* get a frame */
            
frame cvQueryFramecapture );
     
            
/* always check */
            
if( !frame ) break;
     
            
/* 'fix' frame */
            
cvFlipframeframe, -);
            
frame->origin 0;
     
            
/* detect faces and display video */
            
detectFacesframe );
     
            
/* quit if user press 'q' */
            
key cvWaitKey10 );
        }
     
        
/* free memory */
        
cvReleaseCapture( &capture );
        
cvDestroyWindow"video" );
        
cvReleaseHaarClassifierCascade( &cascade );
        
cvReleaseMemStorage( &storage );
     
        return 
0;
    }
     
    
void detectFacesIplImage *img )
    {
        
int i;
     
        
/* detect faces */
        
CvSeq *faces cvHaarDetectObjects(
                
img,
                
cascade,
                
storage,
                
1.1,
                
3,
                
/*CV_HAAR_DO_CANNY_PRUNNING*/,
                
cvSize4040 ) );
     
        
/* for each face found, draw a red box */
        
for( < ( faces faces->total ) ; i++ ) {
            
CvRect *= ( CvRect* )cvGetSeqElemfaces);
            
cvRectangleimg,
                         
cvPointr->xr->),
                         
cvPointr->r->widthr->r->height ),
                         
CV_RGB2550), 18);
        }
     
        
/* display video */
        
cvShowImage"video"img );
    } 


منبع
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط h0x00i ، morteza ghaem ، cedrouui ، Andro ، adbco ، ftaghizadeh69
#2
برای تشخیص چهره راه بهتری هم هست
استفاده از دایرکتوری های haarcascade ....

مثل برنامه پایین :




#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture *capture=cvCreateCameraCapture(0);
IplImage *img=cvQueryFrame(capture);
const char* text[] = {"objecte 1","objecte 2","objecte 3","objecte 4","objecte 5"};
double hscale = 1.0;
double vscale = 0.8;
double shear = 0.2;
int thickness = 1;
int line_type = 2;
int a[20];
int b[20];
CvMemStorage* storage1 = cvCreateMemStorage(1);
CvSeq* comp = NULL;
CvFont font1;
cvInitFont(&font1,CV_FONT_HERSHEY_PLAIN,hscale,vscale,shear,thickness,line_type);
while(1)
{
img=cvQueryFrame(capture);
CvMemStorage* storage = cvCreateMemStorage(0);
CvHaarClassifierCascade* cascade = (CvHaarClassifierCascade*)cvLoad( "haarcascade_frontalface_alt2.xml" );
double scale = 1.3;
static CvScalar colors[] = { {{0,0,255}}, {{0,128,255}}, {{0,255,255}},
{{0,255,0}}, {{255,128,0}}, {{255,255,0}}, {{255,0,0}}, {{255,0,255}} };
cvClearMemStorage( storage );
CvSeq* objects = cvHaarDetectObjects( img, cascade, storage, 1.1, 4, 0, cvSize( 20, 50 ));
CvRect* r;
for( int i = 0; i < (objects ? objects->total : 0 ); i++ ){
r = ( CvRect* )cvGetSeqElem( objects, i );
cvRectangle( img, cvPoint( r->x, r->y ), cvPoint( r->x + r->width, r->y + r->height ),colors[i%8]);
a[i]= ( r->x);
b[i]= ( r->y );
cvPutText(img,(text[i]),cvPoint(a[i],b[i]),&font1,colors[i%8]);
}
cvNamedWindow( "Output" );
cvShowImage( "Output", img );
int fps=(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
cvWaitKey(1);
if(!img)break;
}
return 0;
}
[align=-WEBKIT-AUTO]
پاسخ
#3
آموزش تشخیص چهره در OpenCV
OpenCV + Face Detection
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط negin17h ، cedrouui
#4
پروژه ای در رابطه با تشخیص چهره در opencv:
[عکس: ScreenShot.png]
Face and Eyes Detection Using OpenCV
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط morteza ghaem ، cedrouui
#5
ممنونم

نرم افزار opencv خودش با روش ها یی تشخیص چهره انجام میده؟

یا اینکه باید کد خاصی توی اون نوشت تا تشخیص چهره رو انجام بده؟

وقتی گفته میشه الگوریتم های به کار رفته در opencv یعنی کدوم دسته؟

اسم این الگوریتم ها رو میشه لطف کنید بگید؟
پاسخ
سپاس شده توسط
#6
(04-19-2012, 09:57 AM)raha1o5o3 نوشته: ممنونم

نرم افزار opencv خودش با روش ها یی تشخیص چهره انجام میده؟

یا اینکه باید کد خاصی توی اون نوشت تا تشخیص چهره رو انجام بده؟

وقتی گفته میشه الگوریتم های به کار رفته در opencv یعنی کدوم دسته؟

اسم این الگوریتم ها رو میشه لطف کنید بگید؟
سلام
ببینید فکر می کنم مشکل اصلی شما این باشه که شما دقیقا نمیدونید opencv چی هست!!!
opencv یک نرم افزار نیست بلکه یکسری کتابخونه هست و ما در برنامه ها مون میتونیم از اونها استفاده کنیم
از بعضی از متدهای opencv میشه برای تشخیص چهره استفاده کرد
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط morteza ghaem
#7
شما درست میگید،حالا که پرسیدم یه چیزایی دستم اومد ممنون
اینکه میگید از بعضی از متدهای opencv میشه برای تشخیص چهره استفاده کرد
آیا میشه فهمید توی کتابخونه های opencv چه الگوریتم هایی به کار رفته؟
پس این جمله درسته؟ الگوریتم های به کاررفته درopencv برای تشخیص چهره ، همون استفاده مناسب از متد های این کتابخونه است برای رسیدن به هدف که تشخیص چهره است.
پاسخ
سپاس شده توسط
#8
(04-20-2012, 09:59 AM)raha1o5o3 نوشته: شما درست میگید،حالا که پرسیدم یه چیزایی دستم اومد ممنون
اینکه میگید از بعضی از متدهای opencv میشه برای تشخیص چهره استفاده کرد
آیا میشه فهمید توی کتابخونه های opencv چه الگوریتم هایی به کار رفته؟
پس این جمله درسته؟ الگوریتم های به کاررفته درopencv برای تشخیص چهره ، همون استفاده مناسب از متد های این کتابخونه است برای رسیدن به هدف که تشخیص چهره است.
سوالات دقیقی می پرسید. این خیلی خوبه.
opencv منبع باز (open source)هست. با مطالعه سورس یا با خواندن اسناد(Documents) می توانید پی ببرید که از چه الگوریتم هایی استفاده می کنه.
این پست رو ببینید:
مقاله ویولا-جونز در زمینه تشخیص چهره، روشی که OpenCV نیز از آن استفاده می کند
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط morteza ghaem ، raha1o5o3
#9
میشه چندتا لینک برای مشاهده ی سورس ها و اسناد opencv معرفی کنید؟
پاسخ
سپاس شده توسط
#10
(04-22-2012, 09:38 AM)raha1o5o3 نوشته: میشه چندتا لینک برای مشاهده ی سورس ها و اسناد opencv معرفی کنید؟
این رو ببینید:
Welcome to opencv documentation!

در جایی که opencv رو نصب کردید هم فایلی با پسوند PDF وجود داره که آموزشی از opencv هست. فایل ها هم اونجا هستند. خودم تا حالا سورس ها رو بررسی نکردم
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  استفاده از opencv در php mustafa_mfi 0 1,792 02-19-2017, 09:13 AM
آخرین ارسال: mustafa_mfi
  سوال درباره تشخیص اجزا صورت ftaghizadeh69 4 3,516 06-17-2016, 03:19 PM
آخرین ارسال: eshahnazi
  استفاده از openCV در برنامه eclipse یا codeblocks eshahnazi 0 1,609 06-07-2016, 12:39 AM
آخرین ارسال: eshahnazi
  طریقه علامت گذاری رنگ های خاص تصویر توسط پردازش تصویر (C++‎ , OpenCV ) rayson 3 5,866 11-29-2014, 02:17 PM
آخرین ارسال: sorena71
Brick آموزش نصب OpenCV در ویژوال استودیو 2010 به همراه یک برنامه ساده مهدی ابراهیمی 53 75,171 08-16-2014, 11:55 PM
آخرین ارسال: matmot
  سوالاتی در زمینه شروع پردازش تصویر با OpenCV diamond87 7 9,767 07-27-2014, 04:28 AM
آخرین ارسال: مهدی ابراهیمی
  opencv industrial board کاوه 1 3,343 07-18-2014, 04:59 PM
آخرین ارسال: محمدرضا محبیان
  آموزش نصب OpenCV 2.4.7 در ویژوال استودیو 2012 مهدی ابراهیمی 1 3,866 07-11-2014, 07:39 AM
آخرین ارسال: m_parsa11
  چطور opencv 2.3.1 رو در ویژوال استودیو نصب کنم؟ h0x00i 23 28,038 04-05-2014, 11:17 PM
آخرین ارسال: مهدی ابراهیمی
  سوال:Decode کردن با OpenCV( تشخیص کدهای QR ) rayson 3 5,319 12-10-2013, 03:31 AM
آخرین ارسال: مهدی ابراهیمی

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان