欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实习报告数字图像处理实习 多长度尺寸测量.docx

    • 资源ID:18242641       资源大小:146.14KB        全文页数:18页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实习报告数字图像处理实习 多长度尺寸测量.docx

    1、实习报告数字图像处理实习 多长度尺寸测量数字图像处理实习多长度尺寸测量姓名:张慧 班级:信息10-1学号:36 不要删除行尾的分节符,此行不会被打印目 录一. 课程设计任务 11.1 设计目的 11.2 设计要求 1二. 课程设计原理及设计方案 32.1 设计原理 32.2 设计方案 52.3 设计流程图 11三. 课程设计的步骤及结果图 123.1步骤 123.2结果图 13四. 课程设计总结 15五. 参考文献 16一. 课程设计任务1.1 设计目的数字图像处理,就是用数字计算机及其他有关数字技术,对图像进行处理,以达到预期的目的。随着计算机的发展,图像处理技术在许多领域得到了广泛应用,数

    2、字图像处理已成为电子信息、通信、计算机、自动化、信号处理等专业的重要课程。数字图像处理课程设计是在学习完数字图像处理的相关理论后,进行的综合性训练课程,其目的是: 使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法; 增强学生应用VC+6.0编写数字图像处理的应用程序及分析、解决实际问题的能力; 尝试所学的内容解决实际工程问题,培养学生的工程实践能力。本实验是MVIPS 图像处理软件结合 MV-ERP/MRP /LSP系列机器视觉创新实验开发平台而设计的。本实验对工业流水线生产现场的高精度时实尺寸测量,供出了一种全新的测量方法。通过实验,可进一步提高同学们对机器视觉技术的了解,增

    3、强同学们的动手能力,巩固和掌握图像处理技术的基本技能。1.2 设计要求在加工制造领域,需要对很多零部件尺寸进行测量,以验证零件是否符合加工要求。一般这种测量可以通过千分尺或游标卡尺完成。但对于很多易碎或易变形的零件,类似的测量几乎难以完成。在这种场合,一般要求采用非接触测量方法,图像测量就是其中的方法之一。试设计一应用软件,能够对标准形状的零件进行图像测量。要求完成功能: 1、能够读取和存储图像,对图像进行去噪和对比度增强; 2、能够根据控制点对图像失真进行几何校正; 3、根据控制点对图像进行定标,建立像素与实际尺寸之间的对应关系; 4、对于非标准零件,利用人工鼠标操作,测量任意指定点间的距离

    4、; 5、对圆形标准零件进行自动尺寸测量(提高部分); 6、设计软件界面。 1.3实验器材1) 嵌入式计算机(自备)2) MVIPS图像处理软件及加密狗一套;3) Microvison系列机器视觉创新教学实验平台一套;4) Microvison工业数字相机(1394、USB接口);5) 百万像素高分辨率镜头;6) 机器视觉LED背光源及控制器一套;二. 课程设计原理及设计方案2.1 设计原理2.1.1滤波去噪由于图像中不可避免地存在噪声,故在图像预处理过程中需要对噪声进行滤除。一些常见的噪声有椒盐噪声、脉冲噪声、高斯噪声等。椒盐噪声是含随机出现的黑白亮度值,脉冲噪声是只含有随机的白强度值(正脉冲

    5、噪声)和黑强度值。与强两者不同,高斯噪声是含有亮度服从高斯或正态分布的噪声。图像的平滑处理在空间域和频域采取不同的方法,空间域滤波是在图像空间借助模版进行邻域操作,一般分为线性和非线性两类。1. 线性平滑滤波器对去除高斯噪声有很好的效果,大多数情况下对其他来性的噪声也有很好的效果。最简单的线性滤波是均值滤波,即对局部进行均值计算,每一像素点的灰度值用其邻域内的各点灰度值的均值来置换。但是邻域N的大小控制着滤波程度,大尺度滤波器会加大滤波程度,作为消除大噪声的代价,大尺度滤波器会导致细节的损失和计算量的增加,使得图像的尖锐部分变模糊。2. 中值滤波法是一种较好的非线性滤波方法,它将每一象素点的灰

    6、度值设置为该点某邻域窗口内的所有象素点灰度值的中值,在去除图像脉冲噪声、椒盐噪声的同时,又能保留图像的边缘细节,有效地保持图像轮廓的清晰。设G(x,y)表示原始图像在(x,y)处的灰度值,选用N*N的正方形窗口(N一般取3或5),F(x,y)表示滤波后的图像在(x,y)处的灰度值,Med表示对窗口求中值,则中值滤波的输出可表达为:2.1.2几何校正数字图像几何变形是指图像上的像元在图像坐标系的坐标与其在实际元件等参考坐标系之间的坐标不一致,从而导致图像行列式不均匀、像元大小和位置与实际对应不准确、形状不规则等。图像的总体几何变形是平移、缩放、旋转、偏扭、弯曲及其其他变形的综合作用结果。对于图像

    7、的几何校正有直接和间接两种方法,其关键环节在于:一是像素坐标变换;而是像素亮度值冲采样。在对工件进行图像采集时,主要涉及到的几何变形是投影畸变,形象的说获得的图像就像是影子近大远小,因此只要在采集图像时设置四个控制点,根据我们已知控制点的标准图像和获得的畸变的控制点图像建立传输函数,利用传输函数对元件的畸变图像反变换获得理想的元件图像。2.1.3测量定标元件尺寸的图像测量,是建立在实际尺寸与像素关系已知的基础上的,通过检测元件的像素个数,以及像素与实际尺寸的对应关系(图像分辨率)求得元件的实际尺寸。对于扫描仪等设备获取的图像,因为其设备为固定高度且步进电机匀速扫描采集信息,则可以获取元件图像的

    8、像素分辨率(像素/英寸dpi),然后直接利用此分辨率进行测距计算。而大部分图像,包括相机、摄像头获取,或者从屏幕上截取得到,其图像分辨率已经发生变化,或者根本没有任何实际意义,这是就需要对图像进行尺寸定标。在获取元件图像的同时,放置已知具体实际尺寸的标定物,在获取图像后与元件图像一起进行相同的几何校正等一系列操作,最终求的其像素数,从而获得像素数与实际尺寸的比例关系,设为分辨率dpi,进行元件实际尺寸的测量计算。2.1.4增强对比度和二值化处理经过几何校正后的图像则可以用于尺寸测量,但由于背景的影响,在检测元件边缘时会有较大的误差,因而更好的办法是增强对比度后设置门限,对图像进行二值化处理。1

    9、. 在数字图像处理中,二值图像占有非常重要的地位,二值化后的图像更容易检测元件图像的边缘。图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。2. 为了方便选取二值化所需的阈值,我们希望图像的直方图是一个标准的双峰一谷,则直接在谷底处取得阈值,使一侧为0另一侧为1,因此需要对图像首先进行对比度增强。如果原图象f(x,y)的灰度范围是m,M,我们希望调整后的图象g(x,y)的灰度范围是n,N,利用VC+图象处理工具箱中的函数,可以很容易实现上述线性变换的对比度增强。2.1.5投影

    10、法自动测距投影法就是统计目标像素在水平方向(x轴)和竖直方向(y轴)上累计的个数,然后画出统计图形。根据本次统计图形的零极点判断元件图像的边缘,测得边缘之间的距离即为所求元件的尺寸。对于统计图像峰值的判断,可以采用一阶甚至二阶差分,判断统计图像两侧异号或者突变的点,即元件的边缘位置。2.1.6手动两点测距应用最简单方法,测得图像上两点像素的坐标,计算出两点间的像素数,然后根据读取或者测得的图像分辨率计算出任意两点间距离。2.2 设计方案根据以上设计原理的选择,结合VC+6.0的进行图像处理,主要是图像轮廓提取和图像的尺寸计算/* * 函数名称: * ContourDIB() * 参数: * L

    11、PSTR lpDIBBits - 指向源DIB图像指针 * LONG lWidth - 源图像宽度(象素数,必须是4的倍数) * LONG lHeight - 源图像高度(象素数) * 返回值: * BOOL - 运算成功返回TRUE,否则返回FALSE。 * 说明: * 该函数用于对图像进行轮廓提取运算。 * 要求目标图像为只有0和255两个灰度值的灰度图像。*/int L=0,H=0; /图像的长 宽 char *Quality=NULL; /是否合格BOOL CDibImage:ContourDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)

    12、LPSTR lpSrc; / 指向源图像的指针 LPSTR lpDst; / 指向缓存图像的指针 LPSTR lpNewDIBBits; / 指向缓存DIB图像的指针 HLOCAL hNewDIBBits; long i,j,z; /循环变量 unsigned char find_L,find_H,Start_L,Start_H,flag_L,flag_H; /寻找到边界点标志unsigned int Q_L_MIN=100,Q_H_MIN=80, Q_L_MAX=360,Q_H_MAX=120; /产品合格标志 目前是手动在程序中输入 unsigned char n,e,s,w,ne,se,

    13、nw,sw; unsigned char pixel; /像素值 / 暂时分配内存,以保存新图像 hNewDIBBits = LocalAlloc(LHND, lWidth * lHeight); if (hNewDIBBits = NULL) return FALSE; lpNewDIBBits = (char * )LocalLock(hNewDIBBits); / 初始化新分配的内存,设定初始值为255 lpDst = (char *)lpNewDIBBits; memset(lpDst, (BYTE)255, lWidth * lHeight); for(j = 1; j lHeigh

    14、t-1; j+) for(i = 1;i lWidth-1; i+) / 指向源图像倒数第j行,第i个象素的指针 lpSrc = (char *)lpDIBBits + lWidth * j + i; / 指向目标图像倒数第j行,第i个象素的指针 lpDst = (char *)lpNewDIBBits + lWidth * j + i; /取得当前指针处的像素值,注意要转换为unsigned char型 pixel = (unsigned char)*lpSrc; /目标图像中含有0和255外的其它灰度值/ if(pixel != 255 & pixel != 0)/ return FALS

    15、E; if(pixel = 0) *lpDst = (unsigned char)0; /0 显示为黑色 也就是轮廓线 nw = (unsigned char)*(lpSrc + lWidth -1); n = (unsigned char)*(lpSrc + lWidth ); ne = (unsigned char)*(lpSrc + lWidth +1); w = (unsigned char)*(lpSrc -1); e = (unsigned char)*(lpSrc +1); sw = (unsigned char)*(lpSrc - lWidth -1); s = (unsign

    16、ed char)*(lpSrc - lWidth ); se = (unsigned char)*(lpSrc - lWidth +1); /如果相邻的八个点都是黑点 if(nw+n+ne+w+e+sw+s+se=0) *lpDst = (unsigned char)255; / 255 显示为白色 /*/ 计算长度 L 单位像素/*/ /寻找到边界点标志 find_L=1; find_H=1; Start_L=0; flag_L=1; /测试长度的起点 和结束点的标志 L=0; for(j = 1; j lHeight-1&find_H; j+) /列 for(i = 1;i lWidth-

    17、1&find_L; i+) /行 / 指向源图像倒数第j行,第i个象素的指针 lpSrc = (char *)lpDIBBits + lWidth * j + i; / 指向目标图像倒数第j行,第i个象素的指针 lpDst = (char *)lpNewDIBBits + lWidth * j + i; /取得当前指针处的像素值,注意要转换为unsigned char型 pixel = (unsigned char)*lpSrc; /*开始点检测*/ if(pixel = 0&flag_L) nw = (unsigned char)*(lpSrc + lWidth -1); n = (unsi

    18、gned char)*(lpSrc + lWidth ); ne = (unsigned char)*(lpSrc + lWidth +1); w = (unsigned char)*(lpSrc -1); e = (unsigned char)*(lpSrc +1); sw = (unsigned char)*(lpSrc - lWidth -1); s = (unsigned char)*(lpSrc - lWidth ); se = (unsigned char)*(lpSrc - lWidth +1); /如果相邻的八个点都是黑点 if(nw+n+ne+w+e+sw+s+se=0) L

    19、=0; else find_H=0; flag_L=0; Start_L=1; /*结束点检测*/ if(Start_L=1) L+; /长度像素 if(pixel = 0) nw = (unsigned char)*(lpSrc + lWidth -1); n = (unsigned char)*(lpSrc + lWidth ); ne = (unsigned char)*(lpSrc + lWidth +1); w = (unsigned char)*(lpSrc -1); e = (unsigned char)*(lpSrc +1); sw = (unsigned char)*(lpS

    20、rc - lWidth -1); s = (unsigned char)*(lpSrc - lWidth ); se = (unsigned char)*(lpSrc - lWidth +1); /如果相邻的八个点都是黑点 if(nw+n+ne+w+e+sw+s+se=0) find_L=0; Start_L=0; /*/ 计算宽 H 单位像素/*/ /寻找到边界点标志 find_L=1; find_H=1; Start_H=0; flag_H=1; H=0; for(i = 1;i lWidth-1&find_L; i+) /行 for(j = 1; j lHeight-1&find_H;

    21、j+) /列 / 指向源图像倒数第j行,第i个象素的指针 lpSrc = (char *)lpDIBBits + lWidth * j + i; / 指向目标图像倒数第j行,第i个象素的指针 lpDst = (char *)lpNewDIBBits + lWidth * j + i; /取得当前指针处的像素值,注意要转换为unsigned char型 pixel = (unsigned char)*lpSrc; /*开始点检测*/ if(pixel = 0& flag_H) nw = (unsigned char)*(lpSrc + lWidth -1); n = (unsigned char

    22、)*(lpSrc + lWidth ); ne = (unsigned char)*(lpSrc + lWidth +1); w = (unsigned char)*(lpSrc -1); e = (unsigned char)*(lpSrc +1); sw = (unsigned char)*(lpSrc - lWidth -1); s = (unsigned char)*(lpSrc - lWidth ); se = (unsigned char)*(lpSrc - lWidth +1); /如果相邻的八个点都是黑点 if(nw+n+ne+w+e+sw+s+se=0) H=0; else

    23、find_L=0; flag_H=0; Start_H=1; /*结束点检测*/ if(Start_H=1) H+; /宽度像素 if(pixel = 0) nw = (unsigned char)*(lpSrc + lWidth -1); n = (unsigned char)*(lpSrc + lWidth ); ne = (unsigned char)*(lpSrc + lWidth +1); w = (unsigned char)*(lpSrc -1); e = (unsigned char)*(lpSrc +1); sw = (unsigned char)*(lpSrc - lWid

    24、th -1); s = (unsigned char)*(lpSrc - lWidth ); se = (unsigned char)*(lpSrc - lWidth +1); /如果相邻的八个点都是黑点 if(nw+n+ne+w+e+sw+s+se=0) find_H=0; Start_H=0; /*/ 判断产品是否合格/*/ if(Q_L_MINL&LQ_L_MAX&Q_H_MINH&Q_H_MAX) Quality=合格; else Quality=不合格; / 复制腐蚀后的图像 memcpy(lpDIBBits, lpNewDIBBits, lWidth * lHeight); Loc

    25、alUnlock(hNewDIBBits); LocalFree(hNewDIBBits); return TRUE;2.3 设计流程图三. 课程设计的步骤及结果图3.1步骤1) 熟悉MVIPS应用软件,熟悉机器视觉实验平台的基本操作,掌握实验平台、工业数字相机和机器视觉LED光源的安装及调试。2) 实验平台搭建完成后,打开实验平台电源开关,光源控制器开关;3) 将配套相机驱动程序拷贝到计算机某盘下,安装相机驱动程序;4) 启动相机Demo,连接相机进入实时状态,观察图像显示区域,是否可以正常显示图像;5) 调整平台运动速度及光源亮度;6) 将MVIPS软件配套的加密狗插到计算机USB接口;7

    26、) 单击鼠标右键,选择“解锁”弹出登陆对话框,输入登录密码“admin”;8) 采集到一张标准模板图像,创建标准模板,设置相应的模板参数并保存(创建标准模板好坏关系到检测结果,对于创建过程附录中详细说明);9) 执行菜单采集?连续命令,会听到“咔哒”一声,表示拍摄的图像已经送到计算机的MVIPS图像处理软件进行处理;10) 程序开始运行分析处理当前采集图片;11) 输出检测结果画面;3.2结果图元件图: 进行轮廓提取后并检测是否合格:元件图:进行轮廓提取后并检测是否合格:四. 课程设计总结1. 通过此次实验设计,再次熟悉VC+6.0的使用,扩展VC+6.0在数字图像处理方面的应用,掌握一些基本的图像处理工具箱,而且学会了GUI图形界面的设计;2. 理论联系实践,将课堂内容深化,数字图像处理课程已经结课有一段时间了,重拾起来便有别样的体会,为解决实际问题而去查阅,收获更大,通过设计,回顾了关于图像直方图、噪声与滤波、增强与复原、压缩与编码以及图像校正等方面的课堂知识;3. 习得了一种新的测量尺寸的方法,先对图像进行预处理,滤波、校正、增强和二值化,然后通过定标、投影、测像素距离的方法实现实际尺寸距离的测量,而且效果比实际测量更理想。4. 完成本次设计,使本人对VC+6.0有了更进


    注意事项

    本文(实习报告数字图像处理实习 多长度尺寸测量.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开