精华内容
下载资源
问答
  • 基于OpenMV图像识别智能小车以三轮小车为载体,以STM32F765VI单片机为核心,结合了OV7725感光元件、L298N电机驱动模块,电机等外围设备,借助OpenMV IDE软件以及OpenMV库,采用图像识别所追踪的颜色阈值进行设置,采用PID...
  • 智能小车图像播放器 作者:一点一滴的Beer http://beer.cnblogs.com/ 图像播放器: 智能小车利用车载摄像头采集跑道数据,然后存储到小车中央控制主板的存储器中。等小车跑完一周后,再串口...

    智能小车的图像播放器

    作者:一点一滴的Beer http://beer.cnblogs.com/

     

    图像播放器:

     

     

         智能小车利用车载摄像头采集跑道数据,然后存储到小车中央控制主板的存储器中。等小车跑完一周后,再串口通讯传到电脑上,并保存为二进制文件。

         然后这个软件就是读取这个二进制文件,每次读取40*80=3200个数据上来,然后用GDI绘制3200个灰度像素点,用定时器,每隔一段时间从文件中读取数据并重新绘制一次,然后就形成了这种动画类似于播放器的功能了。

         这是自己大三的时候用VC6.0写的一个软件,现在想来,其实实用性不强,仅可以把现场的数据采集上来,做一些上位机的仿真。不过,也算是自己大三的一点小心血吧。现在清理硬盘,把这个软件的效果演示做成一个视频,作个纪念,然后再删除吧。

    image

     

    主要的技术问题就是:读文件,GDI绘图,定时器。

    1.读文件

    void CPicMovieDlg::OnOpenfile() 
    {
    	// TODO: Add your control notification handler code here
    	//打开文件
    	//创建文件名缓存(fileBuffer)和文件读取缓存(rBuffer)
    	//此处如果不把缓存置,在后面的设定中就会出错,如果是动态申请的,请用memset或者for循环把数组清零
    	char fileBuffer[5010] = {0}, rBuffer[row * column] = {0};
    
    	//定义一个CFile类,用来处理文件
    //	CFile in;//放到此对话框的成员变量中。因为我要持续对此文件进行操作。要有较长的生成周期。???权宜之计
    	//定义一个CFileDialog类,用来显示标准的打开文件对话框
    	CFileDialog inDlg(FALSE, NULL, NULL, NULL, _T("自定义文件类型(*.sav)|*.sav|所有文件(*.*)|*.*||"), NULL);
    	inDlg.m_ofn.lpstrTitle = _T("打开自定义文件");
    	//设定一个文件名缓存,因为CFileDialog内置的文件名缓存长度只有,但是很多时候,文件的路径远大于这个数,为了保险起见,所以要自己设定一个文件名缓存
    	inDlg.m_ofn.lpstrFile = fileBuffer;
    	//设定缓存长度
    	inDlg.m_ofn.nMaxFile = 5000;
    	//显示对话框,并处理按了确定按钮的事件
    	if(inDlg.DoModal() == IDOK) {
    		//以只读方式打开文件
    		if(in.Open(inDlg.GetPathName(), CFile::modeRead)) {			
    
    
    			OperateFile();	
    			bStopFlag = 1;//打开文件后,不自动播放。
    			//关闭文件		
    			//in.Close();//将此语句放在程序结束时。		
    			
    		//	MessageBox("打开文件成功", "搞定了", MB_ICONEXCLAMATION | MB_OK);
    		} else {
    			MessageBox("打开文件失败,可能您没有关闭当前文件", "失败了", MB_ICONSTOP | MB_OK);
    			bOpenFlag = 0;
    		}
    }
    	
    }

     

     

     

    2.GDI绘制像素点

     

    void CPicMovieDlg:: DrawOrigin(BYTE dataTemp[][column],CDC* pDC)
    {
    	for (int i=0;i<row;i++)
    		for (int j=0;j<column;j++)
    		{	
    			int recWidth=8;
    			int recHeight=14;
    			COLORREF clrRec=RGB(dataTemp[i][j],dataTemp[i][j],dataTemp[i][j]);
    			pDC->Rectangle(recWidth*j/2,recHeight*i/2,recWidth*(j+1)/2,recHeight*(i+1)/2);
    			//下面的填充函数将原来有的笔刷效果全部给覆盖了。
    			pDC->FillSolidRect(recWidth*j/2,recHeight*i/2,recWidth/2,recHeight/2,clrRec);	
    			
    		}
    }

     

     

     

     

    3.定时器

     

        在对话框初始化的时候,设置定时器,然后再到定时器的事件中执行绘图函数。具体用法可以到网上查阅。

     

     

        结尾:本文不作为技术文,只是作为自己的一个回忆纪念文吧。所以,没有详细对解决问题的细节进行说明了。写完本文后,就直接将源代码全部删除了。只留下了上面的那些思路了。

    转载于:https://www.cnblogs.com/beer/archive/2010/12/12/1903788.html

    展开全文
  • 智能图像处理

    2021-08-02 11:16:11
    本人大二时参加了16届华东赛区智能车竞赛,虽然结果没有达到自己预期的成绩,但依旧收获了很多,在这里写一些自己关于智能图像处理的方法和思路,为自己未来可能参加的17届智能车做准备,也为实验室后来的学弟学妹...

    本人大二时参加了16届华东赛区智能车竞赛,虽然结果没有达到自己预期的成绩,但依旧收获了很多,在这里写一些自己关于智能车图像处理的方法和思路,为自己未来可能参加的17届智能车做准备,也为实验室后来的学弟学妹们提供学习的方法。

    首先,在讲图像处理前,简单谈一下我为什么在摄像头和电磁两者之间选择了摄像头,在我看来,电磁相对于摄像头来说,它比较简单,上手快,再加上外界环境对于电磁的影响较小,所以对一些新手或时间比较短的选手来说来说,电磁是一种很不错的选择。但也正因为它简单,决定了电磁的上限不是很高,就比如电磁循迹,它处理的赛道信息可能也就电感运放所在的那几行,而摄像头处理的行数可能是电磁的几倍。在判断元素时,电磁主要依靠电感值的变化来判断,面对智能车现在愈加复杂的赛道元素,电磁的判断可能会带来很多的误判。而对于摄像头循迹来说,可以判断元素的方式有很多,例如赛道斜率的变化,丢线的数目,黑白跳变点等等,大大使小车能够更快的适应复杂的元素。再加上现在网上开源和讲解摄像头的代码有很多,大大减少的新手对于摄像头入门的难度和时间。如果只是先让小车简单的跑起来的话,用摄像头处理其实也是很快的,难的是之后元素和速度的决策。

    下面我将从最为基础的部分讲解摄像头的图像处理,之后也会讲一些关于智能车其他模块的使用方法和新的,希望能够帮助大家快速的入门

    (一)阈值处理

    (二)基础寻线

    (三)元素判断

    (四)电磁即一些模块的使用

    (五)图像处理想法

    展开全文
  • 目录 智能小车识别图像中的文字 运行平台 开发内容 java串流stream到网页 安卓app小车控制器 python配置 OCR光学字符识别 后期改进 传送门 课程后记 ...

    智能小车识别图像中的文字

    运行平台

    这次的内容是基于Xilinx公司的Zybo开发板以及其配套的Zrobot套件开发
    Zybo上面的sd卡搭载了Ubuntu12.04LTS的linux版本,预装配置了opencv2.4.9和python2.7.3。

    开发内容

    注意:以下内容均是两个人在一天之内完成的,略有不足。后续会有修改版。特别声明队友为tt_leader大大。

    java串流stream到网页

    由于网页端java的安全机制问题,想要从网页端读取到摄像头的实时内容,需要安装一个java插件,并设置java的安全权限为低(具体搜索显示信息即可得到答案)。这里推荐使用ie浏览器(别打···没写错 是ie···

    安卓app小车控制器

    由于开发时间的局限,因此选择了安卓读取浏览器内容的方式,同时修改样式使其具备控制器的功能。
    控制端实现的方式是cgi的action方式。
    源代码在最后会有超链接。

    python配置

    开发板中的python所需的库是没配置的,因此需要为其配置所需的库。并且,开发板不支持pip和easy_install命令。

    由于开发板的系统是嵌入式系统,只能通过命令行的方式进行交互,因此使用SCP协议传输文件。

    Windows下可以使用Winscp软件传文件,linux下使用scp命令传文件。
    需要对开发板上的系统设置root用户密码。

    另外也需要一台ubuntu机器安装python2.7,并能跑通程序。所需的库为requests、urllib2、json。

    OCR光学字符识别

    python程序如下:

    import requests,json
    import sys
    reload(sys)
    sys.setdefaultencoding("utf-8")
    print sys.getdefaultencoding()
    
    print('\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n')
    print('OCR running')
    print('-------- -------------------')
    print('The programme is to identify the text in the picture')
    print('Let us appreciate it')
    print('\n\n\n\n\n\n')
    
    header = {
        'Content-type': 'application/json'
    }
    
    op1 = {
        'subscription-key': 'your_subscription_key',
        'language':'unk',
        'detectOrientation':'true'
    }
    
    op2 = {
        #'Url': 'http://ww2.sinaimg.cn/bmiddle/6a6a6ffdjw1evhnx9hb3ij20hs0np40m.jpg'
        #'Url': 'http://ww3.sinaimg.cn/bmiddle/6a6a6ffdjw1evhlb459dfj20hs0npdha.jpg'
        'Url': 'http://ww4.sinaimg.cn/bmiddle/6a6a6ffdjw1evi6s14no4j20hs0npq43.jpg'
    }
    
    r = requests.get('http://api.projectoxford.ai/vision/v1/ocr',params=op1, timeout=15)
    myUrl = r.url
    r = requests.post(myUrl,data=json.dumps(op2),headers=header, timeout=15)
    j = r.json()
    for x in j['regions']:
        lines = x['lines']
        for y in lines:
            words = y['words']
            for z in words:
                #g = z['text']
                print z['text'],
                #print z['text'].decode('ascii').encode('utf-8'),
                #print json.dumps(z['text'], encoding='UTF-8', ensure_ascii=False),
                #print z['text'].encoding
                #print unicode(z['text'], encoding='utf-8'),
            print('\n')
    

    在程序中,不能实时从摄像头读取内容识别。只能分两步完成,先拍摄图片在云端存储,然后对图像进行文字识别。图像识别方面使用的是微乳的图像库api,需要申请订阅,程序中的your_subscription_key需要修改为自己的订阅。
    另外,中文字符输出在嵌入式ubuntu编码中产生问题,桌面版ubuntu无这个问题。程序中试图修复也花了很久的时间,最终无果,留待后期改进。
    具体原因是ASCII码不支持中文但嵌入式ubuntu的python编码修改utf8码没有效果。

    后期改进

    python程序修改后如下:

    import requests,json,base64
    import cv2
    
    print('OCR...')
    
    header = {
        'Content-type': 'application/octet-stream'
    }
    
    op1 = {
        'subscription-key': 'your_subscription_key',
        'language':'unk',
        'detectOrientation':'true'
    }
    
    capture = cv2.VideoCapture(0)
    frame = capture.read()
    Assert frame is not None
    cv2.imwrite('/home/xxx/screenshot.jpg', frame)
    
    myData = open('./screenshot.jpg','rb').read()
    
    r = requests.get('https://api.projectoxford.ai/vision/v1/ocr',params=op1, timeout=15)
    myUrl = r.url
    r = requests.post(myUrl,data=myData,headers=header, timeout=15)
    j = r.json()
    for x in j['regions']:
        lines = x['lines']
        for y in lines:
            words = y['words']
            for z in words:
                print(z['text'],end="")
            print('\n')

    另,升级开发板的python2.7为python3即可解决编码问题。
    需要手动打开开发板的摄像头。开发板默认配置好opencv2.4.9。
    存储路径根据自己情况修改。
    由于是后期改进,没有办法在Zybo板子上测试,但在其他平台上面测试通过。

    传送门

    安卓工程下载

    课程后记

    我个人接受不了有人一边过来示好一边在展示的时候故意刁难,我可真没办法信守与这种人的承诺。

    转载于:https://www.cnblogs.com/wsine/p/4777368.html

    展开全文
  • 智能车学习日记【一】——让小车跑正方形赛道 摄像头控制目录开篇舵机赛道图像处理图像处理代码![在这里插入图片描述](https://img-blog.csdnimg.cn/9ec0eb76bd8941a380e4b34b443c0809.png#pic_center)图像处理控制...

    目录

    开篇

    	   博主最近开始学智能车,开始时遇到了很多困难。我觉得这些问题应该也
    是每一个智能车人开始都可能会遇到的,写下来分享一下,也顺便巩固一下自
    身所学。如果有错误或可以改进的地方还希望多多指出交流~。
    

    这是博主的第一篇文章,如果觉得有帮助还希望点赞收藏支持一下~

    舵机

          首先要说说舵机,舵机是让小车车跑好的一大重要因素,网上有很多有关不
          同种类舵机的详细原理和使用。这里我就简单说说
    
    1. 舵机的作用是控制智能车轮子转向。通过输入不同的脉冲信号来使舵机有不同大小的打角,比如你输入的pwm等于750时舵机打角位于中间,则小车直走,大于750时舵机打角偏向右边,则小车左转。
    2. 通过处理图像中线位置来给舵机输入对应脉冲信号来控制打角。先对你摄像头拍到的图像进行图像处理(摄像头原理在这不过多解释,后面会大致讲一下简单的图像处理)。比如你的屏幕中线的x坐标为50,而你图像处理后得到的中线x坐标为70,说明你的车偏右了(这里要注意我的坐标系零点是屏幕右下角),要让车左走回正,这时你就要输入对应的脉冲信号,让舵机控制车子向左转。
    3. 在写对舵机的控制前请一定要让舵机摆正!先写固定的脉冲信号让舵机打一个固定角度,然后轻推小车,小车能沿直线走,就说明摆正了,再进行之后的调试。

    赛道图像处理

    怎么处理赛道应该是难点之一了,这里博主只介绍直道和90°弯道,其他的可能有后续更新吧。

    图像处理

     智能车(摄像头)的图像处理主要就是识别出左右边线(一般边线是黑线,外边
     是蓝布,中间赛道是白色),然后拟合出中线,让车子沿着中线跑。
    

    这里我推荐新手使用左右寻线法来拟合中线,至于为什么不用八邻域法我只能说,新手阶段不需要贪那运算速度,左右寻线法写起来容易理解,能跑完赛道最重要,优化算法是之后的事情了。

    代码在这里插入图片描述

    middle是存放中线x坐标的数组
    left是存放左边线x坐标的数组
    right是存放右边线x坐标的数组
    Pixels是像素坐标数组,由摄像头读出并处理生成
    pixels为1是白,为0是黑,屏幕x坐标是从0到185
    

    这里放一个我判断左边界的部分代码,首先第0行是从中间开始往左右扫线,比如我这个第0行应该从x=93开始左右扫线 (那我这里为什么是从middle[y-1]开始呢,因为我这是从第1行开始的,我第一行中间起始点是用第0行的中线,第二行中间起始点是用第一行的中线坐标,以此类推) 。以找左边线为例子,右边线类似。从中间起始点开始向左边扫描,如果扫描到白黑黑的部分,则认定为找到左边线,将左边线记录下来。右边线也是找到白黑黑的组合,记录下左右边线。中线就是左右边线之和除2
    至于我为什么还有个x==184的条件,其实这是用在弯道处,在这里插入图片描述
    这是我将弯道图片上传到上位机后得到的图像,左边是原图,右边是图像处理以后的。可以发现有时左边一直到屏幕边界都还是白色,所以我让左扫描到最左边时,将x=184作为了左边界(其实还有更好的处理的方式,但这里只是介绍给新手们最基本的)。右边同理有个x == 0的边界判断。

    小贴士

    1. 第一帧图像的第0行中间起始点可以选屏幕中间点,因为发车都是直道发车,一般不存在第0行中间像素点为黑的情况。之后每一行中间起始点都是前一行的中点(这样可以防止拐弯时中线丢失)。此后第二帧开始,第0行的中间起始点就选择上一帧的第2行的中点(选第几行按照自己情况而定),这样做其实也是在防止拐弯时中线丢失(中线丢失是什么情况还是希望大家可以自己去尝试一下,有时会发现拐弯到一半车子突然直行,只有自己经历过才能更好理解这些方法)
    2. 做好赛道类型判断。通过你处理后得到的中线趋势来判断现在是直道还是弯道
    // 赛道类型判断
        int i;
        float sum1 = 0;
        float sum2 = 0;
    
        for(i=0 ; i<20 ; i++)
        {
            sum2 += (94-middle[i])*(94-middle[i]);
            sum1 += (94-middle[i]);
        }
    
        if(sqrt(sum2)/20 > 3.2 || sum1/20 > 18.5 || sum1 < -18.5)
        {
            choose = 1;                     //弯道
        }else
        {
            choose = 0;                     //直道
        }
    

    我这里通过图像中线和屏幕中线的方差和平均值来判断赛道类型,这么做有什么好处呢?有时你会发现,走直道时车一直在左右摇摆,就有可能你没有分类赛道,直道和弯道用的同一个PID算法,这会导致直道有点歪时小车想打角来走直线,却用的是弯道的打角,导致打角太大了,就会一直左右摇摆。以后写什么小弯道啊,环岛的也是要判断的。
    下面是我直道的PD算法,直道的PD给的就很小,因为就是微调,弯道的PD要给大一点(要问为什么不写i,因为我之前忘记写了…)

    float kp1 = 0.2;
    float kd1 = 0.4;
    void zhidao()
    {
    
        float cha=0;
        cha = 94 - middle[17];                //与中线差值
        duty = (int)(780 - kp1*cha - kd1*(cha - last));
        if(duty>840)
            {
                duty = 840;
            }
            if(duty<700)
            {
                duty = 700;
            }
        //    systick_delay_ms(STM0,20);
            pwm_duty(ATOM0_CH6_P02_6,duty);
            pwm_duty(ATOM1_CH4_P22_3,duty_car_z);
            pwm_duty(ATOM1_CH0_P22_1,0);
            pwm_duty(ATOM1_CH6_P23_1,0);
            pwm_duty(ATOM2_CH5_P33_13,duty_car_z);
    }
    

    图像处理控制舵机打角

    其实控制舵机打角也是上边的代码
    在这里插入图片描述
    上位机直道图

        float cha=0;
        cha = 94 - middle[17];                //与中线差值
        duty = (int)(780 - kp1*cha - kd1*(cha - last));
        ...
        ...
        pwm_duty(ATOM0_CH6_P02_6,duty);
    

    这里的duty就是我输出给舵机的脉冲信号,来控制小车在直道时的打角

    cha是屏幕中线和第17行中线的差值,用于下面的计算
    last是上一次的cha值
    这个第17行是根据你摄像头高度来选择的,有很多种方式取这个值
    

    最后亿点

    小车最开始调试时,可以给直道和弯道不同的PWM,弯道可以慢速点过,保证平滑,
    直道再加速。这里面有很多门道的,博主也在慢慢摸索。
    新手想要车能跑正方形赛道,最难的应该是图像处理部分了,这部分我其实主要在
    讲一些问题,原理性的可能不太详细,因为这是第一次写博客,很多想法很难表达
    出来,大家可以先收藏,然后看看网上左右寻线详细原理,等到写上车后发现问题,
    再来看应该会更多体会与帮助。
    

    我也是刚刚开始的智能车小白,希望大家能一起互帮互助,一起进步!如果觉得有帮助,还希望点赞收藏多多支持一下~

    最后有一句话分享给大家和我自己:如果你的车没有撞过,就说明速度还不够快!加油智能车人!

    展开全文
  • 智能图像处理之透视变换

    千次阅读 多人点赞 2020-09-12 16:52:57
    智能车竞赛中,通过摄像头对赛道信息的采集,在单片机上提取赛道两边的边缘,经过处理后控制小车在赛道边缘内行驶。但由于摄像头与赛道之间存在一定的仰角,使得摄像头采集回来的赛道得两条边缘不再平行,甚至在...
  • 树莓派智能小车

    2021-05-22 23:04:31
    树莓派智能小车(一) 通过了解智能小车组成,明确智能小车实训任务; 文章目录***树莓派智能小车(一)***1. 通过了解智能小车组成,明确智能小车实训任务;2. 通过了解嵌入式系统开发,明确智能小车主控系统树莓派的...
  • 利用嵌入式技术和图像处理技术,设计制作了基于MC9S12XS128 单片机的多功能智能小车智能小车可以在包含岔口的路面进行自主择路行进。到达终点后,在显示屏上显示路口选择方案、行进距离、行驶时间、行进速度。该...
  • 第八届智能小车摄像头组程序 包括图像采集,图像处理(黑线提取),舵机控制,电机控制 处理器:XS128 摄像头:ov7620 图像处理包括了黑线提取,赛道还原,虚线处理,十字弯甄别等 电机控制:pid控制速度
  • 智能小车的前置摄像机实时采集前方的图像,调整底部舵机和顶部舵机的角度,使轨道能被摄像机捕捉到并将采集到的图像传回树莓派系统。利用OpenCV对图像进行处理,系统通过处理后得到的图像信息调整小车的运动状态,使...
  • 针对目前由于各种人为因素造成的交通事故频发的问题,提出一种基于FPGA的智能小车的设计方案。在该方案中设计了颜色处理模块、图像压缩模块、SOPC模块等。通过该平台,可以实现红绿灯识别,并在SoPC中嵌入代码实现...
  • 2018年第十三届智能车竞赛代码,使用MFC作为界面结合OPenCV3.2.0库,用SVM进行数据的训练然后再...并且有串口部分的代码可以直接把处理好的数据或者其他指令发送给下位机,结合底盘小车的代码进行策略的行走完成比赛。
  • 智能小车项目源码

    千次阅读 2018-03-11 13:48:35
    //确定小车的方向 int direction(Mat image) { namedWindow("org image", WINDOW_NORMAL); imshow("org image", image); //将原图像变为640*480 resize(image, org_image, Size(640,480), 0, 0, CV_INTER_...
  • 在我们得到一张稳定的二值化图像后,就可以对图像进行一些寻线的处理,在这里简单提一下,那就是图像第一行所在的位置,作为初学者的我刚开始就曾搞错,摄像头第一行所在的位置取决于你摄像头是正装还是反装,如果是...
  • 智能小车路径检测与显示设计 一、设计任务 选择合适的单片机作为系统的CPU,利用8对TCRT5000红外传感器多智能小车所处的位置进行检测,把检测得到的结果传送到单片机的一个八位I/0口,再把小车所处的相对黑线位置通过...
  • 利用嵌入式技术和图像处理技术,设计制作了基于MC9S12XS128单片机的多功能智能小车智能小车可以在包含岔口的路面进行自主择路行进。到达终点后,在显示屏上显示路口选择方案、行进距离、行驶时间、行进速度。
  • 小车距离红灯较远时,图像中红灯所占像素个数少于霍夫圆检测中要求的阈值,所以被舍弃,小车继续行驶。当红灯足够近时霍夫算法检测到圆,之后再对原图进行颜色空间转换等处理,判断图片中的主要颜色。如果是红灯,...
  • 浅谈智能小车的控制策略

    千次阅读 2019-12-02 14:37:38
    实验预期目标: 实现智能小车进行光标追踪定位,实现智能小车的平稳的速度控制,此外还可以智能避障...在智能小车在采集到图像数据后,为了使智能小车能够迅速定位光标所在位置,并且调整车体方向,因为其简介明了的...
  • 之前所做的有一个特点就是需要在树莓派上连接一个USB麦克风,通过这个麦克风来进行语音的输入,但是在实际使用场景上来看,这是不合理的,因此需要一个可以远程操控智能小车的方案,因此萌发了将控制端移植到手机上...
  • 计算机控制与测试系统实验,通过电磁传感器得到赛道两端的电磁数据,在经过PID控制舵机与电机,区分于图像处理与直立式小车,能过完成弯道、环岛、十字路口等特殊路段,并且完成整个赛道后自动泊车。
  • 图像采集与处理智能车系统中的应1.doc 图像采集与处理智能车系统中的应用.doc 智能车磁导航中的信号调理电路设计.doc 智能车电磁检测控制技术研究.rar 智能车速度控制系统设计与实现.doc 智能汽车竞赛技术报告...
  • 目前全国大学生智能车竞赛发展越来越快,很多新手入手难,本文介绍了摄像头组的相关软件问题,包括图像处理,控制算法,结构搭建等光机电算各方面的知识。
  • 视频讲解:智能小车设计方案演示  1.智能小车设计方案视频演示:http://emb.hqyj.com/projects/smart-car.html?lcg-csdn  2.智能小车项目背景  所谓智能汽车,主要指在普通汽车的基础上增加了先进的传感器...
  • 基于图像处理智能车寻迹算法设计,刘洪元,吴成胜,寻迹智能车以MK60N512ZVLQ10最小系统为核心,以电源模块、线性CCD模块、电机驱动模块和运行调试模块为辅助。使用线性CCD传感器,完成了�
  • 智能避障;单片机;传感器 智能小车要实现避障功能就必须要感知障碍物,传感器相当于给智能小车一个视觉功能。视觉传感器的核心器件是摄像管或C C D ,但其价格...本文对智能小车的避障以及传感信号的处理进行了研究。
  • 该系统使用USB摄像头采集周围环境信息,视频通过编码后由无线路由传送到上位机,在上位机的MATLAB中利用现有的灰度和二值化的方法对图像进行处理,以及在Keil软件平台上进行编程,小车采用PID控制算法控制电机的速度...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,439
精华内容 575
关键字:

智能小车图像处理