一段人脸识别的代码

来源:互联网 发布:c语言isnan 编辑:程序博客网 时间:2024/06/05 02:44
<DIV class=dp-highlighter><DIV class=bar></DIV>
<OL class=dp-cpp>
<LI class=alt><SPAN><SPAN class=preprocessor>#include&nbsp;"stdafx.h"&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;"cv.h"&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;"highgui.h"&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;stdlib.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;string.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;assert.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;math.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;float.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;limits.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;time.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=preprocessor>#include&nbsp;&lt;ctype.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=keyword>using</SPAN><SPAN>&nbsp;</SPAN><SPAN class=keyword>namespace</SPAN><SPAN>&nbsp;std;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=keyword>static</SPAN><SPAN>&nbsp;CvMemStorage*&nbsp;storage&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN></SPAN><SPAN class=keyword>static</SPAN><SPAN>&nbsp;CvHaarClassifierCascade*&nbsp;cascade&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN></SPAN><SPAN class=keyword>const</SPAN><SPAN>&nbsp;</SPAN><SPAN class=datatypes>char</SPAN><SPAN>*&nbsp;cascade_name&nbsp;=&nbsp;&nbsp;</SPAN><SPAN class=string>"C:\\OpenCV2.2\\data\\haarcascades\\haarcascade_frontalface_alt2.xml"</SPAN><SPAN>;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN></SPAN><SPAN class=keyword>void</SPAN><SPAN>&nbsp;detect_and_draw(IplImage&nbsp;*img)&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=comment>//圆圈的颜色&nbsp;&nbsp; </SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>static</SPAN><SPAN>&nbsp;CvScalar&nbsp;colors[]&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{0,0,255}},&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{0,128,255}},&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{0,255,255}},&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{0,255,0}},&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{255,128,0}},&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{255,255,0}},&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{255,0,0}},&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{{255,0,255}}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=datatypes>double</SPAN><SPAN>&nbsp;scale&nbsp;=&nbsp;1.3;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;IplImage*&nbsp;gray&nbsp;=&nbsp;cvCreateImage(&nbsp;cvSize(img-&gt;width,img-&gt;height),&nbsp;8,&nbsp;1&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;IplImage*&nbsp;small_img&nbsp;=&nbsp;cvCreateImage(&nbsp;cvSize(&nbsp;cvRound&nbsp;(img-&gt;width/scale),&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvRound&nbsp;(img-&gt;height/scale)),&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8,&nbsp;1&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=datatypes>int</SPAN><SPAN>&nbsp;i;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvCvtColor(&nbsp;img,&nbsp;gray,&nbsp;CV_BGR2GRAY&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvResize(&nbsp;gray,&nbsp;small_img,&nbsp;CV_INTER_LINEAR&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvEqualizeHist(&nbsp;small_img,&nbsp;small_img&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvClearMemStorage(&nbsp;storage&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>if</SPAN><SPAN>(&nbsp;cascade&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=datatypes>double</SPAN><SPAN>&nbsp;t&nbsp;=&nbsp;(</SPAN><SPAN class=datatypes>double</SPAN><SPAN>)cvGetTickCount();&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CvSeq*&nbsp;faces&nbsp;=&nbsp;cvHaarDetectObjects(&nbsp;small_img,&nbsp;cascade,&nbsp;storage,&nbsp;&nbsp;1.1,&nbsp;2,&nbsp;0,&nbsp;&nbsp;cvSize(30,&nbsp;30)&nbsp;);&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t&nbsp;=&nbsp;(</SPAN><SPAN class=datatypes>double</SPAN><SPAN>)cvGetTickCount()&nbsp;-&nbsp;t;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;</SPAN><SPAN class=string>"detection&nbsp;time&nbsp;=&nbsp;%gms/n"</SPAN><SPAN>,&nbsp;t/((</SPAN><SPAN class=datatypes>double</SPAN><SPAN>)cvGetTickFrequency()*1000.)&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>for</SPAN><SPAN>(&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;(faces&nbsp;?&nbsp;faces-&gt;total&nbsp;:&nbsp;0);&nbsp;i++&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CvRect*&nbsp;r&nbsp;=&nbsp;(CvRect*)cvGetSeqElem(&nbsp;faces,&nbsp;i&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CvPoint&nbsp;center;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=datatypes>int</SPAN><SPAN>&nbsp;radius;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;center.x&nbsp;=&nbsp;cvRound((r-&gt;x&nbsp;+&nbsp;r-&gt;width*0.5)*scale);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;center.y&nbsp;=&nbsp;cvRound((r-&gt;y&nbsp;+&nbsp;r-&gt;height*0.5)*scale);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius&nbsp;=&nbsp;cvRound((r-&gt;width&nbsp;+&nbsp;r-&gt;height)*0.25*scale);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvCircle(&nbsp;img,&nbsp;center,&nbsp;radius,&nbsp;colors[i%8],&nbsp;3,&nbsp;8,&nbsp;0&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvShowImage(&nbsp;</SPAN><SPAN class=string>"result"</SPAN><SPAN>,&nbsp;img&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvReleaseImage(&nbsp;&amp;gray&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvReleaseImage(&nbsp;&amp;small_img&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=datatypes>int</SPAN><SPAN>&nbsp;_tmain(</SPAN><SPAN class=datatypes>int</SPAN><SPAN>&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[])&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>{&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN></SPAN><SPAN class=comment>/* </SPAN>&nbsp;</SPAN></LI>
<LI><SPAN><SPAN class=comment>&nbsp;&nbsp;&nbsp;&nbsp;IplImage&nbsp;*img=cvLoadImage("stuff.jpg"); </SPAN>&nbsp;</SPAN></LI>
<LI class=alt><SPAN><SPAN class=comment>&nbsp;&nbsp;&nbsp;&nbsp;cvNamedWindow("src",1); </SPAN>&nbsp;</SPAN></LI>
<LI><SPAN><SPAN class=comment>&nbsp;&nbsp;&nbsp;&nbsp;cvShowImage("src",img); </SPAN>&nbsp;</SPAN></LI>
<LI class=alt><SPAN><SPAN class=comment>&nbsp;&nbsp;&nbsp;&nbsp;cvWaitKey(0); </SPAN>&nbsp;</SPAN></LI>
<LI><SPAN><SPAN class=comment>*/</SPAN><SPAN>&nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>const</SPAN><SPAN>&nbsp;</SPAN><SPAN class=datatypes>char</SPAN><SPAN>*&nbsp;filename&nbsp;=&nbsp;</SPAN><SPAN class=string>"stuff.jpg"</SPAN><SPAN>;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;IplImage*&nbsp;image&nbsp;=&nbsp;cvLoadImage(filename&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cascade&nbsp;=&nbsp;(CvHaarClassifierCascade&nbsp;*)cvLoad(&nbsp;</SPAN><SPAN class=string>"C:\\OpenCV2.2\\data\\haarcascades\\haarcascade_frontalface_alt.xml"</SPAN><SPAN>);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>if</SPAN><SPAN>(&nbsp;!cascade&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(&nbsp;stderr,&nbsp;</SPAN><SPAN class=string>"ERROR:&nbsp;Could&nbsp;not&nbsp;load&nbsp;classifier&nbsp;cascade/n"</SPAN><SPAN>&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>return</SPAN><SPAN>&nbsp;-1;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;storage&nbsp;=&nbsp;cvCreateMemStorage(0);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvNamedWindow(&nbsp;</SPAN><SPAN class=string>"result"</SPAN><SPAN>,&nbsp;1&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>if</SPAN><SPAN>(&nbsp;image&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;detect_and_draw(image);&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvWaitKey(0);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cvReleaseImage(&nbsp;&amp;image&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvDestroyWindow(</SPAN><SPAN class=string>"result"</SPAN><SPAN>);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;cvWaitKey(0); &nbsp;&nbsp;</SPAN></LI>
<LI><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN class=keyword>return</SPAN><SPAN>&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></SPAN></LI>
<LI class=alt><SPAN>}&nbsp;&nbsp; &nbsp;&nbsp;</SPAN></LI></OL></DIV>
原创粉丝点击