91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

用OpenCV實現的交通標志動態識別,方法是自己想的,希望對大家有幫助,有好的想法可以互相交流。

資源截圖

代碼片段和文件信息

#ifdef?_CH_
#pragma?package?
#endif

#define?CV_NO_BACKWARD_COMPATIBILITY

#include?“cv.h“
#include?“highgui.h“
#include?“cxcore.h“
#include?
#include?
#include?

IplImage*?stop=0;
IplImage*?left=0;
IplImage*?m1=0;
IplImage*?m2=0;
IplImage*?m3=0;
IplImage*?m4=0;
IplImage*?m5=0;
IplImage*?m6=0;
IplImage*?m7=0;
IplImage*?m8=0;
IplImage*?m9=0;
IplImage*?m10=0;
IplImage*?m11=0;
IplImage*?m12=0;
IplImage*?m13=0;
IplImage*?m14=0;
IplImage*?m15=0;
IplImage*?image=0;
IplImage*?show;
CvMemStorage*?tempStorage=0;
CvMemStorage*?stopStorage=0;
CvMemStorage*?leftStorage=0;
CvMemStorage*?m1Storage=0;
CvMemStorage*?m2Storage=0;
CvMemStorage*?m3Storage=0;
CvMemStorage*?m4Storage=0;
CvMemStorage*?m5Storage=0;
CvMemStorage*?m6Storage=0;
CvMemStorage*?m7Storage=0;
CvMemStorage*?m8Storage=0;
CvMemStorage*?m9Storage=0;
CvMemStorage*?m10Storage=0;
CvMemStorage*?m11Storage=0;
CvMemStorage*?m12Storage=0;
CvMemStorage*?m13Storage=0;
CvMemStorage*?m14Storage=0;
CvMemStorage*?m15Storage=0;
const?char*?wndname?=?“Flag“;
int?itempFlag=0trigonFlag=0squareFlag=0;
CvSeq*?result;
CvSeq*?slice;
double?s?t?hu;
CvSeqReader?reader;

CvSeq*?tctr;
CvSeq*?p_temp;
CvSeq?temp;
CvSeq*?p_stopCtr;
CvSeq?stopCtr;
CvSeq*?p_leftCtr;
CvSeq?leftCtr;
CvSeq*?p_m1Ctr;
CvSeq?m1Ctr;
CvSeq*?p_m2Ctr;
CvSeq?m2Ctr;
CvSeq*?p_m3Ctr;
CvSeq?m3Ctr;
CvSeq*?p_m4Ctr;
CvSeq?m4Ctr;
CvSeq*?p_m5Ctr;
CvSeq?m5Ctr;
CvSeq*?p_m6Ctr;
CvSeq?m6Ctr;
CvSeq*?p_m7Ctr;
CvSeq?m7Ctr;
CvSeq*?p_m8Ctr;
CvSeq?m8Ctr;
CvSeq*?p_m9Ctr;
CvSeq?m9Ctr;
CvSeq*?p_m10Ctr;
CvSeq?m10Ctr;
CvSeq*?p_m11Ctr;
CvSeq?m11Ctr;
CvSeq*?p_m12Ctr;
CvSeq?m12Ctr;
CvSeq*?p_m13Ctr;
CvSeq?m13Ctr;
CvSeq*?p_m14Ctr;
CvSeq?m14Ctr;
CvSeq*?p_m15Ctr;
CvSeq?m15Ctr;

//?helper?function:
//?finds?a?cosine?of?angle?between?vectors
//?from?pt0->pt1?and?from?pt0->pt2
double?angle(?CvPoint*?pt1?CvPoint*?pt2?CvPoint*?pt0?)
{
double?dx1?=?pt1->x?-?pt0->x;
double?dy1?=?pt1->y?-?pt0->y;
double?dx2?=?pt2->x?-?pt0->x;
double?dy2?=?pt2->y?-?pt0->y;
return?(dx1*dx2?+?dy1*dy2)/sqrt((dx1*dx1?+?dy1*dy1)*(dx2*dx2?+?dy2*dy2)?+?1e-10);
}

void?preorder(CvSeq*?ctrCvSeq*?saveCvMemStorage*?storage)
{
if(ctr)
{
result?=?cvApproxPoly(?ctr?sizeof(CvContour)?storage
CV_POLY_APPROX_DP?cvContourPerimeter(ctr)*0.008?0?);
if(?result->total?==3??&&?fabs(cvContourArea(resultCV_WHOLE_SEQ))?>?1000)
{
tctr=ctr;
ctr=ctr->v_next;
if(ctr)
{
slice=cvSeqSlice(ctrcvSlice(0CV_WHOLE_SEQ_END_INDEX)storage0);
*save=*slice;
trigonFlag=1;
}
else
ctr=tctr;
}
if(?result->total?==4??&&?fabs(cvContourArea(resultCV_WHOLE_SEQ))?>?1000)
{
s?=?1;
for(?i?=?0;?i?total+1);?i++?)
{
//?find?minimum?angle?between?joint
//?edges?(maximum?of?cosine)
if(?i?>=?2?)
{
t?=?fabs(angle(
(CvPoint*)cvGetSeqElem(?result?i?)
(CvPoint*)cvGetSeqElem(?result?i-2?)
(CvPoint*)cvGetSeqElem(?result?i-1?)));
s?=?s? }
}
if(s<0.1)
{
tctr=ctr;

評論

共有 條評論