資源簡介
視頻測速
車輛測速
目標(biāo)跟蹤
參考參考
。。。。。。。。。。。。。。。。。。。。
代碼片段和文件信息
#include?
#include?
#include?“stdafx.h“
#include?“cv.h“
#include?“highgui.h“
#define?max_corners?50 //限定最大能找到的角點數(shù)
#define?unsigned?char?uchar
//-----------保存被跟蹤的角點頭指針???結(jié)構(gòu)
typedef?struct?Point
{
int?i;
CvPoint?P_corner;
struct?Point?*next;
}
Point;
//-------------------------------------------------
//----------------被跟蹤的角點鏈表結(jié)構(gòu)
typedef?struct?List?
{
int?number;????//被跟蹤的鏈表計數(shù)
Point?*p;
?List?*next;
}
List;
//-------------------------------------------------
void?re_find_corners(intintIplImage*CvPoint2D32f*int*);
void?draw_corners(IplImage?*CvPoint2D32f?*int??);
void?DeCorner(CvPoint2D32f?*intCvPoint2D32f?*intCvPoint2D32f?*int*);
int?corners_matching(IplImage?*CvPoint2D32f?*?IplImage?*CvPoint2D32f?*?);
float?cornersDistance(CvPoint2D32f?*CvPoint2D32f?*);
List?*?insertCornerList(List*?List?*?Point?*);
Point?*?insertCell(Point?*?Point?*?CvPoint2D32f?*?);
List?*?freeList(List?*CvPoint2D32f?(*r_corner_4)[max_corners]int?);
void?draw_corners(IplImage?*??CvPoint2D32f?(*corners)[max_corners]int?);
int?square(int?);
IplImage?*m_pPreImage?=?NULL;
IplImage?*m_pGrayImage?=?NULL;
IplImage?*m_pSmoothImage?=?NULL;
IplImage?*pPrev?=?NULL;
IplImage?*pCurr?=?NULL;
IplImage?*pDest?=?NULL;
IplImage?*pMask?=?NULL;
IplImage?*pMaskDest?=?NULL;
IplImage?*dst?=?NULL;
IplImage?*cornerImage1?=?NULL;
IplImage?*cornerImage2?=?NULL;
IplImage?*ImageShow1?=?NULL; //存儲顯示帶角點的圖
IplImage?*ImageShow2?=?NULL; // 檢測出來的超速車輛在此圖上標(biāo)出
IplImage?*grayImage=?NULL; //原始圖像轉(zhuǎn)變的灰度圖像
IplImage?*cornersImage1?=?NULL; //臨時圖像
IplImage?*cornersImage2?=?NULL;? //臨時圖像
List?*L_head?=?NULL;??????????????//頭文件指針
List?*S_head?=?NULL;? //中間指針
int?qualityLevel=0; //最小質(zhì)量因子??
int?minDistance=60; //角點的最小距離。這里使用?Euclidean?距離?
int?cornerCount_3=max_corners;
CvScalar?color?=?CV_RGB(25500); //所繪制角點的顏色(紅色
CvPoint2D32f?corners_1L_1[max_corners]; //檢測存儲沒幀中角點的點數(shù)組
int?cornerCount_1L_1=max_corners; //count1L_1對應(yīng)的角點數(shù)目
CvPoint2D32f?corners_1L_2[max_corners]; //檢測存儲沒幀中角點的點數(shù)組
int?cornerCount_1L_2=max_corners; //count1L_2對應(yīng)的角點數(shù)目
CvPoint2D32f?corners_2L_1[max_corners];?????//存儲角點對比后的角點??
????int?cornerCount_2L_1=0;
CvPoint2D32f?corners_2L_2[max_corners]; //存儲角點對比后的角點
int?cornerCount_2L_2=0;
CvPoint2D32f?corners_4[2][max_corners];?//匹配成功后的數(shù)組
int?cornerCount_4?=0;
int?length?=?0;//測速兩點之間的長度
int?ra=3;???????//圓半徑
int?th=2;????//圓線厚度
int?main(int?argc?char*?argv[])
{
int?m_i=0; //
int?m_j=1;????//圖像奇偶幀角點檢測
CvSize?imgSize;
????CvCapture?*m_pCapture?=?NULL;
IplConvKernel*?element;
CvSeq*?contour?=?0;
CvMemStorage*?storage?=?cvCreateMemStorage(0);
CvRect?r;
//?IplConvKernel*?element;
????cvNamedWindow(?“VideoDisplay1“?1?);
cvNamedWindow(?“VideoDisplay2“?1?);
cvNamedWindow(?“VideoDisplay3“?1?);
cvNamedWindow(?“VideoDisplay4“?1?);
cvNamedWindow(“HarrisShow“1
評論
共有 條評論