1、工作室课题小车走迷宫,大连民族学院 电工电子实验教学中心,课题介绍,计算机控制小车推球()利用计算机自动发布指令控制小车将物体推到指定位置摄像头监控小车位置,通过图像处理,对小车发布运动指令。计算机与小车之间的通信为串行通信(有线)或无线方式小车已有,可根据需要改进并编写控制程序计算机控制小车走迷宫()计算机控制小车走出迷宫其他与“小车推球”类似小车自动走迷宫()没有计算机,全部利用小车上的处理器进行控制需要良好的硬件及软件能力,时间充裕两组限制,现有资源介绍,1、小车照片,2、迷宫的图片,现有资源介绍,电脑鼠的相关比赛,2006国际电脑鼠邀请赛表演(新加坡)第三届上海市嵌入式系统创新设计应用
2、竞赛”暨“IEEE标准电脑鼠走迷宫”邀请赛(长三角地区 ) http:/ 80% ) 作品(40%)(外观、功能、软件及硬件的易操作性等) 报告 (30%)(完整性、合理性、可读性、可参考性等) 每周进度文档(5%) 对其他组的贡献(5%) 个人成绩( 20% ) 组长及助教对组员的评价 (10 +5 ) 论坛贡献度(5%)个人突出贡献加分( width/2,image-height/2);10. for(int i=0;iheight;i+)11. for(int j=0;jwidth;j+) 12. double dx=(double)(j-center.x)/center.x;13. d
3、ouble dy=(double)(i-center.y)/center.y;14. double weight=exp(dx*dx+dy*dy)*scale);15. uchar* ptr = ,IplImage结构:int nChannels:1、2、3、4通道depth:IPL_DEPTH_8U,IPL_DEPTH_32Fint origin:0 - 顶左结构, 1 - 底左结构int width:图像宽像素数int height:图像高像素数int imageSize:图像数据大小int widthStep:排列的图像行大小,以字节为单位char * imageData:指向排列的图像
4、数据对一幅灰度图象,nChannels为1,对RGB图像nChannels为3或者4;depth通常为IPL_DEPTH_8U,即8位整型。I(x,y)c (T*)(img-imageData + img-widthStep*y)x*N + cOpenCV定义宏:I(x,y)c CV_IMAGE_ELEM( img, T, y, x*N + c ),OpenCV图像处理包简介,例程1,安装OpenCV 1.0版,选择注册环境变量打开VS2005,创建项目,编写代码,设置OpenCV的路径编译运行,OpenCV图像处理包简介,OpenCV与Windows位图,OpenCV - Bitmap:例程
5、/ 利用OpenCV打开图像image = cvLoadImage(lena.bmp);/ 将IplImage结构转换为位图hBitmap = IplImage2DIB(image);/显示BitBlt (hdc, 0, 0, image-width, image-height, hdcMem, 0, 0, SRCCOPY) ;,Bitmap-OpenCV例程/ 打开位图dBitmap.DibLoadImage(hWnd, true);/ 将位图转为IplImage结构hdc = GetDC(hWnd);hBmpApi = dBitmap.CreateDDB(hdc);imageApi = h
6、Bitmap2Ipl(hBmpApi);ReleaseDC(hWnd, hdc);/ 显示cvNamedWindow(OpenCV, 1);cvShowImage(OpenCV, imageApi);,利用OpenCV的Highgui访问图像、视频、摄像头,直接获取OpenCV格式的图像数据,进行图像处理,最后转为位图在VC+程序中显示利用WinAPI或MFC访问图像、数据、摄像头,再将获取的数据转换为OpenCV格式,用OpenCV进行图像处理,最后再将结果转换为位图在VC+程序中显示,OpenCV图像处理包简介,例程2,OpenCV图像处理包简介,例程3,CvCapture* captur
7、e = 0;IplImage * frame;capture = cvCaptureFromCAM(1);cvNamedWindow( OpenCV, 1 );if(capture) while(1) if( !cvGrabFrame( capture ) break;frame = cvRetrieveFrame( capture );if( !frame ) break;cvShowImage(OpenCV, frame);if( cvWaitKey( 5 ) = 0 ) break;cvReleaseImage( ,OpenCV图像处理包简介,课外作业,熟悉OpenCV,了解CxCore,CV库编写一个WinAPI或MFC或OpenCV程序直接调用VFW,或者调用OpenCV采集摄像头图像,显示在Windows对话框中对每帧图像做例程1中的处理,显示在新的窗口中对上一步的每一帧,调用CxCore中的绘图函数,在新窗口中画矩形记录每秒处理的帧数,OpenCV图像处理包简介,