您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 机器视觉及上位机编程
机器视觉及上位机编程黄铭Email:minghung@mail.ustc.edu.cn图像处理基础数字识别方法及步骤上位机程序设计与节点通信主要内容图像处理基础图像处理图像:二维函数f(x,y)。x,y为空间坐标,f(x,y)为图像信息(灰度、亮度、颜色)。数字图像:离散,矩阵采样,量化,存储数字图像元素:像素成像方式所有波段的电磁波声波、震动等什么是图像数字矩阵数字图像表示)1,1()1,1()0,1()1,1()1,1()0,1()1,0()1,0()0,0(),(MNfNfNfMfffMfffyxf空间分辨率:M×N。灰度分辨率:离散灰度级数GkNkNMb2kG2存储一幅数字图像所需位数数据结构单通道:灰度图,二值图多通道:RGB,HSV,YUV/YCbCr/YPbPr,RGBA……索引图像:调色板,存储索引值文件格式BMP格式(BitMap):位图,文件头+数据,未经压缩,可以直接二进制读取操作JPEG:静止灰度或彩色,压缩率大,常用需要特定的算法读取其中信息。GIF:8位文件格式,256色,压缩,动画PNG,TIF……图像存储图像运算算术运算(加减乘除)逻辑运算(与或非、异或)算术运算目的:提高清晰度,去噪声,前处理用途:去噪声、边缘增强、提高对比度、改变亮度、改善细节空域法:像素直接操作灰度变换、直方图修正、空域滤波变换域法:变换后再处理,逆变换得到处理后图像频域滤波、小波分析等图像增强g(m,n)=T[f(m,n)]功能:改变动态范围,灰度区域截取,感兴趣区域空域法——灰度变换定义:灰度级出现频数(频率)分布,反应图像清晰性,直方图均匀分布时,图像最清晰。均衡化:调节对比度,增强图像对比度。空域法——直方图修正空域法——空域滤波器线性滤波器——模板与图像卷积低通滤波器,高通滤波器,带通滤波器非线性滤波器——取决与邻近像素值中值滤波R=mid{Zk}最大值滤波R=max{Zk}最小值滤波R=min{Zk}空域滤波器W1W2W3W4W5W6W7W8W9Z1Z2Z3Z4Z5Z6Z7Z8Z9模板像素邻域平滑滤波器用途:去除无用小细节,连接中断线段与曲线,去噪音,平滑图像方法:低通滤波,中值滤波空域滤波器——平滑滤波锐化滤波器用途:改善细节,边缘提取,目标定位与识别方法:高通滤波器,微分滤波器微分滤波器:Roberts交叉梯度算子,Prewitt梯度算子,Sobel梯度算子,Laplacian二阶微分算子空域滤波器——锐化滤波PrewittRobertsSobelLaplacian频域离散傅立叶变换离散余弦变换时频分析盖伯变换小波变换其它图像增强方法目的:提取感兴趣区域用途:区域分割,目标定位,目标识别与分类,规划与决策边缘检测法:点、线、边Hough变换法阈值分割法数学形态学方法图像分割点的检测——空域高通滤波线的检测——模板操作边的检测——微分算子Roberts交叉梯度算子,Prewitt梯度算子,Sobel梯度算子,Laplacian二阶微分算子图像分割——边缘检测Hough变换——对于边界上n个离散的点集,找出共线的点集与直线方程图像分割——边缘连接通过灰度门限对图像像素进行分类图像分割——阈值分割腐蚀——使二值图像减小一圈膨胀——使二值图像扩大一圈图像分割——数学形态学方法原图腐蚀后膨胀后开-闭运算开运算——先腐蚀,再膨胀消除细小对象,分离细小粘连,不改变形状平滑边缘闭运算——先膨胀,再腐蚀填充细小空洞,连接邻近对象,不改变面积平滑边缘图像分割——数学形态学方法原图开运算闭运算边界特征周长、直径、曲率、凹凸点傅立叶描绘子形状数、边界矩……区域特征面积、曲线长度、区域周长,区域紧凑性,灰度拓扑描绘子——欧拉数特征描绘边界周长轮廓线像素个数为边界长度的近似估计边界直径Diam(B)=max[D(Pi,Pj)],Pi与Pi为边界点边界曲率斜率差,相邻线段斜率的差值。凸点/凹点特征描绘将像素点坐标表示为复数:s(k)=x(k)+j*y(k)进行离散傅立叶变换,系数a(u)为傅立叶描绘子特征描述——傅立叶描绘子x(k)=Xky(k)=Yk面积区域所包含的像素个数曲线长度和区域周长即边界长度区域紧凑性描述边界光滑度与区域形状的几何参数记区域面积为A,边界周长为P,𝐹=4𝜋𝐴𝑃2灰度中值,均值,最大最小值……特征描述记区域内孔个数为H,连通分量个数C,欧拉数E为欧拉数数字识别方法及步骤结构法识别(多个结合)简单描绘子,如周长,面积,紧凑度,灰度等形状数,边界矩欧拉数决策论法识别分类器,最小距离,相关匹配神经网络,支持向量机(SVM)方法步骤原始图像灰度图预处理彩色空间变换,阈值分割包含数字区域的二值图像图像增强滤波,去除背景数字区域二值图像图像分割分割数字区域若干单数字二值图像图像细分分割单个数字结构化识别数字信息相关匹配识别神经网络,SVM网络训练……采用工具:Matlab前提条件:打印数字,背景白色识别示例1.灰度化与二值化方法,灰度阈值法,自适应阈值法……2.其它:滤波,形态学操作(开闭,腐蚀/膨胀)预处理imshow(I),title(‘OriginalImage');I1=im2bw(I,0.65);I0=imread(file);I0=imresize(I0,[480,640]);I=rgb2gray(I0);目标:提取数字区域,并分割单个数字分割[x,y]=find(I1);x1=min(x);x2=max(x);y1=min(y);y2=max(y);I2=I1(x1:x2,y1:y2);数字倾斜?方法:顺时针/逆时针旋转一定角度,并计算数字区域在X轴的投影,投影范围最短时为水平。分割LLmin数字特征连通域两个连通域:8一个连通域:0,4,6,9零个连通域:1,2,3,5,7周长,曲率,端点个数……表示与描述60°100°120°字形确定,模板匹配方法:相关系数,差,异或识别匹配结果根据模板相关运算结果,识别数值。解释与结果待识别模板运算结果61优点:简单,运算量少;缺点:针对特定形状,通用性差神经网络算法需要大量时间的训练,检测精度与训练样本有关。优点:一般情况下,精度非常高,可以识别各种手写字体SVM,支持向量机方法需要训练,针对神经网络缺点对时间和精度均衡考虑,精度很高,可识别各种手写字体。均需要强大的运算能力保证其它分类方法上位机程序设计与节点通信串口RS-232C,速率0~20000b/s,传输距离15米以下。优点:接口简单,使用方便;缺点:速率低一般用于传输指令或参数等字符信息。USB,速率480Mbs,传输距离10m以下优点:速率高,多设备;缺点:接口稍复杂用于传输图像、大量数据。以太网,速率10/100/1000Mbs,距离100m优点:速度快,协议可靠;缺点:下位机实现复杂包括wifi,有线等方式,用于控制或大量数据传输。无线:zigbee、红外、2.4G等总线:CAN等通信接口Matlab,图像处理,常用接口通信VisualStudio+第三方库VC,图像处理OpenCv,串口CSerialPort……C#,图形处理EmguCv,AForge.net……QT,C++库通用其它,python,VB也有丰富的库供使用不建议自己从底层做起,能直接使用稳定的第三方库尽量使用,省时稳定工具软件图像处理:OpenCv,Cimg,Aforge.NET,FreeImage,CxImage串口通信:CnComm,CSerialPort有用站点增强视觉*OpenCv中文网站一些好文章Win32串口编程字符识别(模板匹配&BP神经网络训练)HandwritingRecognitionRevisited:KernelSupportVectorMachinesDigitRecognitionwithOpenCV(CPPVersion)SuDoKuGrabberwithOpenCVSimpleDigitRecognitionOCRinOpenCV-Python常用类库学会使用Google,英文关键字可以得到更多信息多关注诸如OpenCv等软件的论坛有时间多逛逛CodeProject,GoogleProject,sourceforge,github等代码托管社区,会有很多源代码。耐心一些建议结束希望对大家有帮助祝大家在RoboGame玩得开心
本文标题:机器视觉及上位机编程
链接地址:https://www.777doc.com/doc-3822330 .html