在opencv平台下,依靠颜色识别和跟踪物体,毕业设计
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 41472 2013-06-24 09:56 shigenDebugshigen.exe
文件 407792 2013-06-24 09:56 shigenDebugshigen.ilk
文件 1387520 2013-06-24 09:56 shigenDebugshigen.pdb
文件 12800 2013-06-24 10:02 shigenReleaseshigen.exe
文件 1010688 2013-06-24 10:02 shigenReleaseshigen.pdb
文件 14136 2013-06-24 09:56 shigenshigenDebugBuildLog.htm
文件 65 2013-06-24 09:56 shigenshigenDebugmt.dep
文件 663 2013-06-24 09:56 shigenshigenDebugshigen.exe.embed.manifest
文件 728 2013-06-24 09:56 shigenshigenDebugshigen.exe.embed.manifest.res
文件 621 2013-06-24 09:56 shigenshigenDebugshigen.exe.intermediate.manifest
文件 139475 2013-06-24 09:56 shigenshigenDebugshigen.obj
文件 3211264 2013-06-24 09:56 shigenshigenDebugshigen.pch
文件 11849 2013-06-24 09:56 shigenshigenDebugstdafx.obj
文件 478208 2013-06-24 09:56 shigenshigenDebugvc90.idb
文件 995328 2013-06-24 09:56 shigenshigenDebugvc90.pdb
文件 1177 2013-06-24 09:55 shigenshigenReadMe.txt
文件 9922 2013-06-24 10:02 shigenshigenReleaseBuildLog.htm
文件 65 2013-06-24 10:02 shigenshigenReleasemt.dep
文件 616 2013-06-24 10:02 shigenshigenReleaseshigen.exe.intermediate.manifest
文件 1540518 2013-06-24 10:02 shigenshigenReleaseshigen.obj
文件 3211264 2013-06-24 10:02 shigenshigenReleaseshigen.pch
文件 36871 2013-06-24 10:02 shigenshigenReleasestdafx.obj
文件 191488 2013-06-24 10:02 shigenshigenReleasevc90.idb
文件 847872 2013-06-24 10:02 shigenshigenReleasevc90.pdb
文件 7396 2013-06-24 09:56 shigenshigenshigen.cpp
文件 5034 2013-06-24 09:56 shigenshigenshigen.vcproj
文件 1403 2013-06-24 10:02 shigenshigenshigen.vcproj.lei.jiao.user
文件 211 2013-06-24 09:55 shigenshigenstdafx.cpp
文件 233 2013-06-24 09:55 shigenshigenstdafx.h
文件 498 2013-06-24 09:55 shigenshigen argetver.h
............此处省略12个文件信息
// genzong.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include “highgui.h“
#include“math.h“
#include
#include
#include “cv.h“
#include “cxcore.h“
IplImage *myimage = 0 *myhsv;
IplImage *myguiyi_frame;
IplImage *mythresholded;
IplImage *mydst;
CvPoint origin;
int select_object = 0;
CvRect selection;
int track_object = 0;
CvScalar guiyi_min;
CvScalar guiyi_max;
IplConvKernel * element = 0;
const int element_shape = CV_SHAPE_ELLIPSE;
double r;
//创建归一化的图像;
IplImage* NormalizeImage(IplImage *img)
{
IplImage* imgavg = cvCreateImage(cvGetSize(img) 8 3);
//获取图像高度和宽度信息,设置epslon的目的是防止除0的操作产生;
int width = img->width;
int height = img->height;
int redValue greenValue blueValue;
double sum epslon = 0.000001;
//计算归一化的结果,并替换掉原像素值;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
CvScalar src = cvGet2D(img y x);
blueValue = src.val[0];
greenValue = src.val[1];
redValue = src.val[2];
// 加上epslon,为了防止除以0的情况发生
sum = redValue + greenValue + blueValue + epslon;
CvScalar des = cvScalar(blueValue / sum * 255 greenValue / sum * 255 redValue / sum * 255 src.val[3]);
//为指定的数组(xy)元素赋初值des,替换掉原像素值 2013.3.11
cvSet2D(imgavg y x des);
}
}
//返回归一化后的图像;
return imgavg;
}
void draw_box(IplImage *img CvRect rect)
{
double ab;
a=rect.width ;
b=rect.height ;
r=sqrt(a*a+b*b);
cvCircle(imgoriginrCV_RGB(02550) 3 8 0);
}
void on_mouse( int event int x int yint flagsvoid *NotUsed)//该函数用于选择跟踪目标
{
double ab;
if( !myimage )
return;
if( myimage->origin )
y = myimage->height - y;
if( select_object )//如果处于选择跟踪物体阶段,则对selection用当前的鼠标位置进行设置
{
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 myimage->width );
selection.height = MIN( selection.height myimage->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;
}
draw_box(myimageselection);
}
int main(int argc char** argv)
{
//double ab;
double Hsum=0.0Ssum=0.0Vsum=0.0sum=0.0m=0.0n=0.0;
unsigned int cijwhHSVR;
int ch;
CvCapture* capture = 0;
IplImage* frame = 0;
capture = cvCaptureFromCAM(0);//打开摄像头
if( !capture )
{
printf(“Could not initialize capturing...
“);//打开视频流失败处理
return -1;
}
int wid
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 41472 2013-06-24 09:56 shigenDebugshigen.exe
文件 407792 2013-06-24 09:56 shigenDebugshigen.ilk
文件 1387520 2013-06-24 09:56 shigenDebugshigen.pdb
文件 12800 2013-06-24 10:02 shigenReleaseshigen.exe
文件 1010688 2013-06-24 10:02 shigenReleaseshigen.pdb
文件 14136 2013-06-24 09:56 shigenshigenDebugBuildLog.htm
文件 65 2013-06-24 09:56 shigenshigenDebugmt.dep
文件 663 2013-06-24 09:56 shigenshigenDebugshigen.exe.em
文件 728 2013-06-24 09:56 shigenshigenDebugshigen.exe.em
文件 621 2013-06-24 09:56 shigenshigenDebugshigen.exe.intermediate.manifest
文件 139475 2013-06-24 09:56 shigenshigenDebugshigen.obj
文件 3211264 2013-06-24 09:56 shigenshigenDebugshigen.pch
文件 11849 2013-06-24 09:56 shigenshigenDebugstdafx.obj
文件 478208 2013-06-24 09:56 shigenshigenDebugvc90.idb
文件 995328 2013-06-24 09:56 shigenshigenDebugvc90.pdb
文件 1177 2013-06-24 09:55 shigenshigenReadMe.txt
文件 9922 2013-06-24 10:02 shigenshigenReleaseBuildLog.htm
文件 65 2013-06-24 10:02 shigenshigenReleasemt.dep
文件 616 2013-06-24 10:02 shigenshigenReleaseshigen.exe.intermediate.manifest
文件 1540518 2013-06-24 10:02 shigenshigenReleaseshigen.obj
文件 3211264 2013-06-24 10:02 shigenshigenReleaseshigen.pch
文件 36871 2013-06-24 10:02 shigenshigenReleasestdafx.obj
文件 191488 2013-06-24 10:02 shigenshigenReleasevc90.idb
文件 847872 2013-06-24 10:02 shigenshigenReleasevc90.pdb
文件 7396 2013-06-24 09:56 shigenshigenshigen.cpp
文件 5034 2013-06-24 09:56 shigenshigenshigen.vcproj
文件 1403 2013-06-24 10:02 shigenshigenshigen.vcproj.lei.jiao.user
文件 211 2013-06-24 09:55 shigenshigenstdafx.cpp
文件 233 2013-06-24 09:55 shigenshigenstdafx.h
文件 498 2013-06-24 09:55 shigenshigen argetver.h
............此处省略12个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)