freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

opencv人臉識別系統(tǒng)畢業(yè)設(shè)計-資料下載頁

2024-11-29 10:38本頁面

【導(dǎo)讀】對于某些情況下,人臉檢測也可以計算出人臉,如眼睛,鼻子和嘴等精確。由于在安全檢測系統(tǒng),醫(yī)學,檔案管理,視頻會議和人機交互等領(lǐng)域。本文基于OpenCV視覺庫具體的設(shè)計并開發(fā)。式提取Haar特征的方法。它在整個軟件極其重要的作用,圖像中人。臉的準確定位和識別都受圖像處理好壞的直接影響。本次所設(shè)計的軟件在圖像處理。位以及檢測試驗。經(jīng)過代碼的設(shè)計和調(diào)試,在最后的測試中針對數(shù)字圖像進行的人。臉檢測和定位達到了較好的效果,提高了定位和識別的正確率。

  

【正文】 t optlen = strlen(cascade=)。 const char* input_name。 if( argc 1 amp。amp。 strncmp( argv[1], cascade=, optlen ) == 0 ) { cascade_name = argv[1] + optlen。 input_name = argc 2 ? argv[2] : 0。 } 18 else { cascade_name = ../../data/haarcascades/。 input_name = argc 1 ? argv[1]: 0。 } cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 )。 if( !cascade ) { fprintf( stderr, ERROR: Could not load classifier cascade\n )。 fprintf( stderr, Usage: facedetect cascade=\cascade_path\ [filename|camera_index]\n )。 return 1。 } storage = cvCreateMemStorage(0)。 if( !input_name || (isdigit(input_name[0]) amp。amp。 input_name[1] == 39。\039。) ) capture = cvCaptureFromCAM( !input_name ? 0 : input_name[0] 39。039。 )。 else capture = cvCaptureFromAVI( input_name )。 cvNamedWindow( result, 1 )。 if( capture ) { for(。) { if( !cvGrabFrame( capture )) break。 frame = cvRetrieveFrame( capture )。 if( !frame ) break。 if( !frame_copy ) frame_copy = cvCreateImage( cvSize(framewidth,frameheight), IPL_DEPTH_8U, framenChannels )。 if( frameorigin == IPL_ORIGIN_TL ) cvCopy( frame, frame_copy, 0 )。 else cvFlip( frame, frame_copy, 0 )。 detect_and_draw( frame_copy )。 19 if( cvWaitKey( 10 ) = 0 ) break。 } cvReleaseImage( amp。frame_copy )。 cvReleaseCapture( amp。capture )。 } else { const char* filename = input_name ? input_name : (char*)。 IplImage* image = cvLoadImage( filename, 1 )。 if( image ) { detect_and_draw( image )。 cvWaitKey(0)。 cvReleaseImage( amp。image )。 } else { /* assume it is a text file containing the list of the image filenames to be processed one per line */ FILE* f = fopen( filename, rt )。 if( f ) { char buf[1000+1]。 while( fgets( buf, 1000, f ) ) { int len = (int)strlen(buf)。 while( len 0 amp。amp。 isspace(buf[len1]) ) len。 buf[len] = 39。\039。 image = cvLoadImage( buf, 1 )。 if( image ) { detect_and_draw( image )。 cvWaitKey(0)。 cvReleaseImage( amp。image )。 } } fclose(f)。 } } 20 } cvDestroyWindow(result)。 return 0。 } void detect_and_draw( IplImage* img ) { 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}} }。 double scale = 。 IplImage* gray = cvCreateImage( cvSize(imgwidth,imgheight), 8, 1 )。 IplImage* small_img = cvCreateImage( cvSize( cvRound (imgwidth/scale), cvRound (imgheight/scale)), 8, 1 )。 int i。 cvCvtColor( img, gray, CV_BGR2GRAY )。 cvResize( gray, small_img, CV_INTER_LINEAR )。 cvEqualizeHist( small_img, small_img )。 cvClearMemStorage( storage )。 if( cascade ) { double t = (double)cvGetTickCount()。 CvSeq* faces = cvHaarDetectObjects( small_img, cascade, storage, , 2, 0/*CV_HAAR_DO_CANNY_PRUNING*/, cvSize(30, 30) )。 t = (double)cvGetTickCount() t。 printf( detection time = %gms\n, t/((double)cvGetTickFrequency()*1000.) )。 21 for( i = 0。 i (faces ? facestotal : 0)。 i++ ) { CvRect* r = (CvRect*)cvGetSeqElem( faces, i )。 CvPoint center。 int radius。 = cvRound((rx + rwidth*)*scale)。 = cvRound((ry + rheight*)*scale)。 radius = cvRound((rwidth + rheight)**scale)。 cvCircle( img, center, radius, colors[i%8], 3, 8, 0 )。 } } cvShowImage( result, img )。 cvReleaseImage( amp。gray )。 cvReleaseImage( amp。small_img )。 }
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1