资源简介
红绿灯识别 opencv 运动物体识别

代码片段和文件信息
////////本方案通过色彩检测和亮度检测来判断红灯,然后通过帧差法进行闯红灯的判决////////
#include “cv.h“
#include “highgui.h“
#include
#include
//全局变量的初始化
IplImage* image=0;
int select_object = 0;
int track_object = 0;
CvPoint origin;
CvRect selection;
CvRect selection1;
CvRect selection2;
int nRect=0;
char namestr[20];
//选定框标识位的初始化,判断到底框的是哪个框
int selectflag1=0;
int selectflag2=0;
void on_mouse( int event int x int y int flags void* param )//鼠标控制选框程序
{
if( !image )
return;
if( image->origin )
y = image->height - y;//换坐标
if( select_object )
{
selection.x = MIN(xorigin.x);
selection.y = MIN(yorigin.y);
selection.width = selection.x + CV_IABS(x - origin.x);
selection.height = selection.y + CV_IABS(y - origin.y);
selection.x = MAX( selection.x 0 );
selection.y = MAX( selection.y 0 );
selection.width = MIN( selection.width image->width );
selection.height = MIN( selection.height image->height );
selection.width -= selection.x;
selection.height -= selection.y;
}
switch( event )
{
case CV_EVENT_LBUTTONDOWN:
origin = cvPoint(xy);
selection = cvRect(xy00);
select_object = 1;
break;
case CV_EVENT_LBUTTONUP:
select_object = 0;
if( selection.width > 0 && selection.height > 0 )
track_object = -1;
break;
}
}
int main( int argc char* argv[] )
{
/////////变量初始化//////////////
int xyn=0elementall=0m=0;
int redflag=0;
IplImage* frame = 0;
IplImage* lightred=0;
IplImage* lightredgray=0;
IplImage* trafficcrash=0;
IplImage* trafficcrash1=0;
IplImage* trafficcrashgray=0;
IplImage* trafficcrash1gray=0;
IplImage* Imask=0;
/////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
CvCapture* capture = 0;
capture = cvCaptureFromAVI( “E:\\opencv毕业设计资料\\Rec02282~1.avi“ ); ////视频提取
if( !capture )
{
fprintf(stderr“Could not initialize capturing...\n“);///如果没有视频报错
return -1;
}
cvNamedWindow( “test“ 1 );
cvSetMouseCallback( “test“ on_mouse 0 );//鼠标反馈动作
///////////////////////////////视频帧提取//////////////////////////////////////////////
for(;;)
{
m++;
frame = cvQueryframe( capture );
if( !frame )
break;
///////////////将帧提取出来进行处理///////////////////////
image = cvCreateImage( cvGetSize(frame) 8 3 );
cvCopy( frame image 0 );
image->origin = frame->origin;//原点交给image变量
cvShowImage(“test“image);
/////////////////选中的框赋值问题//////////////////////////////////
if(nRect==0&&track_object ==-1)///如果是第一次框,表示为判别交通灯是否为红灯的框
{
nRect++;
track_object=0;
selection1=selection;
selectflag1=1;
}
if(nRect==1&&track_object==-1)///如果是第二次框,表示为判定闯红灯的框
{
nRect++;
selection2=sel
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 34304 2012-04-14 19:38 traffic\Debug\traffic.exe
文件 384616 2012-04-14 19:38 traffic\Debug\traffic.ilk
文件 1231872 2012-04-14 19:38 traffic\Debug\traffic.pdb
文件 8917 2012-04-14 19:38 traffic\traffic\camshiftdemo.cpp
文件 7060 2012-04-14 19:38 traffic\traffic\Debug\BuildLog.htm
文件 118798 2012-04-14 19:38 traffic\traffic\Debug\camshiftdemo.obj
文件 67 2012-04-14 19:38 traffic\traffic\Debug\mt.dep
文件 621 2012-04-14 19:38 traffic\traffic\Debug\traffic.exe.intermediate.manifest
文件 863232 2012-04-14 19:38 traffic\traffic\Debug\vc90.idb
文件 921600 2012-04-14 19:38 traffic\traffic\Debug\vc90.pdb
文件 3960 2012-03-30 21:46 traffic\traffic\traffic.vcproj
文件 1427 2012-05-06 08:47 traffic\traffic\traffic.vcproj.274B481A3D534D0.Administrator.user
文件 17116160 2012-05-06 08:47 traffic\traffic.ncb
文件 887 2012-03-30 21:44 traffic\traffic.sln
..A..H. 11776 2012-05-06 08:47 traffic\traffic.suo
目录 0 2012-05-06 08:48 traffic\traffic\Debug
目录 0 2012-05-06 08:48 traffic\Debug
目录 0 2012-05-06 08:48 traffic\traffic
目录 0 2012-05-06 08:48 traffic
----------- --------- ---------- ----- ----
20705297 19
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论