登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 电子科学与技术 > 正文

视频测量系统研究毕业论文

 2020-02-17 11:02  

摘 要

在科技飞速发展的今天,非接触式测量技术越来越便利着我们的生活,在某些不便于测量物体大小的环境下,非接触式测量技术可以快速并且准确地解决我们的需求。尤其是近几年来,视频测量系统一直是备受关注的一个前沿课题。本文提出了基于Opencv计算机视觉库的视频测量系统。本文的研究内容如下:

1、设计环境的配置。进行了Opencv库以及Python的环境配置,并对设计环境进行了使用测试;

2、视频图像的预处理。完成了对图像进行的灰度化处理、高斯滤波、边缘检测、形态学操作以及轮廓检测等图像预处理;

3、视频测量系统的实现。在图像预处理的基础上实现了对橡胶圈的非接触式测量,并完成了系统的测试及误差分析。

本文针对非接触式测量技术,基于Opencv计算机视觉库,实现了视频测量系统,经测试,系统测量水平较为优秀。

关键词:Opencv;python;非接触式测量

Abstract

Today, with the rapid development of technology, non-contact measurement technology is more and more convenient for our lives. In some environments where it is not convenient to measure the size of objects, non-contact measurement technology can solve our needs quickly and accurately. Especially in recent years, video measurement systems have always been a frontier topic of concern. This paper presents a video measurement system based on Opencv computer vision library. The research content of this paper is as follows:

1. Configuration of the design environment. The Opencv library and Python environment configuration were performed, and the design environment was tested.

2. Preprocessing of video images. Image preprocessing such as grayscale processing, Gaussian filtering, edge detection, morphological operation, and contour detection on the image is completed;

3. Implementation of the video measurement system. On the basis of image preprocessing, the non-contact measurement of the rubber ring is realized, and the system test and error analysis are completed.

This paper implements a video measurement system based on the Opencv computer vision library for non-contact measurement technology. After testing, the system measurement level is excellent.

Key words:Opencv;python;Non-contact measure

目录

第1章 绪论 1

1.1研究背景及意义 1

1.2国内外发展现状 1

1.3论文的主要研究内容 2

第2章Opencv图像技术 3

2.1 Opencv技术简介 3

2.2OpenCV与python 3

2.3配置Opencv环境 4

2.4测试opencv环境 5

2.5本章小结 5

第3章 图像预处理 6

3.1图像的读取 7

3.2选取单通道即图像灰度化 8

3.3使用滤波器进行图像滤波处理 10

3.4进行图像的边缘检测 14

3.5进行形态学操作 17

3.6轮廓检测 17

3.7本章小结 18

第4章视频测量的实现 19

4.1筛选轮廓 19

4.2计算轮廓的旋转边界框 19

4.3绘制边界线 20

4.4 轮廓线中点以及中线的获取和计算 20

4.5初始化单位像素长度 22

4.6物体实际尺寸的测量 22

4.7实际效果展示 22

4.8误差分析 23

4.9本章小结 24

第5章 总结和展望 25

参考文献 26

附录 27

致谢 31

第1章 绪论

1.1研究背景及意义

随着时代的进步,信息技术以及制造业的不断发展,社会慢慢进入智能时代,图像处理扮演着越来越重要的角色,同时也在大大便利着人们的生活,比如某些场合下,需要自动测量某物的大小进而进行自动处理,而无需人工测量,进而节省大量的人力物力。在此形势下,图像处理有着非接触式、精度高以及抗干扰能力强等优点,进而可以极大提高制造业的生产速度以及精度,在现代社会中起着越来越重要的作用。

现代社会环境复杂,在测量一些橡胶圈的大小时需要消耗大量的人力物力,并且无法保证测量的精度,效率低,成本高。相比人工测量,如果将图像处理应用于检测橡胶圈等物品的大小中,基于OPENCV的框架开发非接触式测量橡胶圈的大小,就可以极大的提高效率。同时由于图像处理是采用的非接触式测量,只需要拍摄图片就可以实现远距离测量大小,节省大量不必要的人工成本;并且图像处理速度极快,可以在短时间内处理大量图片,相比人工测量极大地提高了检测效率。这种图像处理技术如果大量的应用于现在社会中,必然可以极大地促进制造业的发展。

1.2国内外发展现状

随着现代技术的发展,现代工业的生产效率也越来越高。测量技术也要求高效、准确和无损伤。传统的游标卡尺、千分尺和其他接触式量规是低效且不稳定的,而且由于量具直接接触工件表面,它将不可避免地对工件或者量具造成损坏。非接触测量技术应运而生。

近来,运用OpenCV进行图像识别有着许多应用,在图像特征检测方面应用例如:对车辆轮廓的检测、图像特征的提取与处理、图形边缘检测;图像内容识别也有着广泛应用,例如:手势识别、车牌识别以及人脸识别。同时,在辅助应用功能上也有着广泛的发展和应用,例如对运动目标的检测与追踪,是近几年以来发展最快的研究方向。

1.3论文的主要研究内容

本论文是基于OpenCV的视频测量系统研究,主要目的是实现非接触式测量橡胶圈的大小。该设计主要由硬件部分和软件部分两部分组成。硬件部分包括摄像头和计算机,摄像头用来采集参照物以及橡胶圈的实物,计算机作为软件的处理平台。而软件部分主要是使用OpenCV来对硬件获取的图片信息进行分析处理,得到所需测量的橡胶圈的大小数值。

第一章绪论主要介绍了非接触式测量技术的的研究背景及意义,同时从国内外两个角度阐述了非接触式测量的发展现状;

第二章主要阐述了opencv库和python。对opencv库进行了简介,同时也对如何配置opencv以及安装opencv-python进行了详尽的介绍;

第三章介绍了图像的预处理。主要对图像预处理中的灰度化处理、高斯滤波、边缘检测、形态学操作以及轮廓检测等过程进行了简介;

第四章阐述了通过筛选轮廓、计算外接矩形、绘制轮廓三个步骤来实现轮廓线的校验,在检测完轮廓线后,再通过计算欧几里得距离与单位像素长度的比值计算出物体的实力尺寸;

第五章为总结和展望,主要对本论文的研究内容进行了一个总结,同时也对未来的研究方向进行了明确的展望。

图1.1为整体框图。

绘图2

图1.1 设计整体框架

第2章Opencv图像技术

2.1 Opencv技术简介

OpenCV(Open Source Computer Vision Library)于1999年由Gary Bradsky在英特尔创立,第一个版本于2000年诞生。

随后Vadim Pisarevsky加入了主要负责管理英特尔的俄罗斯软件OpenCV团队Gary Bradsky。OpenCV现在支持计算机的多种算法,同时也发展的越来越成熟。

同时,由于opencv支持多种语言的编程,它也成为目前最常用的计算机视觉库,被用以各种图像处理工程。

Opencv-python相当于是Opencv的API。结合了Opencv和python语言共同的特性。

2.2OpenCV与python

Opencv-python是python 的一个库,目的是解决计算机视觉问题。

Python是由Guido van Rossum开发的一种通用编程语言。代码相对简单因此非常流行。

和c语言和C 比起来,python处理虽然较慢,但是在python中编写代码相对简单。

OpenCV-Python使用Numpy,这是一个高度优化的数据库操作库。和MATLAB有相似的语法。所有OpenCV数组结构都转换为Numpy数组。这也使得与使用Numpy的其他库(如SciPy和Matplotlib)集成更容易。

2.3配置Opencv环境

在项目实施前,配置环境是尤为重要的一步,能够正确地使用opencv也是视频测量系统的关键。本次开发平台为windows10操作系统,在python2.7.15版本开发环境下使用opencv2.4版本。以下为opencv的环境配置过程:

2.3.1安装python

本次设计中,使用的是python2.7.15版本,安装过程如下:

进入python的官网(https://www.python.org/),选择版本2.7.15进行下载安装,安装完成后,进入命令提示符输入命令:python,进行python版本的检查,如图2.1所示。

图1

图2.1 检查python版本

2.3.2安装opencv-python及库文件

本次设计中,使用的是opencv-python2.4.13,安装过程如下:

进入opencv官网(http://opencv.org/ ),因为我们使用的是opencv2.4,因此下载安装opencv2即可。

安装好opencv后,开始安装python的调用库文件,调用库是否完整,决定了完成的程序能否正常运行。

首先要更新opencv的pip版本,如果pip版本过低将无法正常安装python的库文件。

打开命令提示符,输入命令:python -m pip install -U pip,即可更新pip;

进入python的调用库文件网站(http://www.lfd.uci.edu/~gohlke/pythonlibs/),这里包含了许多python使用的库文件,我们找到opencv-python,选择下载opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl,下载完成后,打开命令提示符,输入命令pip install opencv _python- 2.4.13.7-cp27-cp27m-win_ amd64.whl即可完成安装,如图2.2所示。

图2

图2.2 opencv-python的安装

除此之外,我们还需要下载scipy和numpy两个库文件,安装方法同上。

2.4测试opencv环境

新建一个.py文件,输入以下代码后保存为test.py:

import cv2 
import numpy as np 
image = cv2.imread(“1.png”) 
cv2.imshow(“Image”,image) 
cv2.waitKey(0) 

完成后进入命令提示符,执行 python test.py命令,经测试可以输出测试图片,表明opencv和python的环境配置完毕。

2.5本章小结

本章主要对所使用的语言python和所使用的开源计算机库opencv进行了介绍,同时也给出了opencv的环境配置过程和opencv所需部分库的安装,最后还进行了opencv的使用测试,表明所安装的opencv可以正常使用,为本论文的实施奠定了先决条件。

第3章 图像预处理

图像预处理是进行图像处理的第一步,也是至关重要的一步。一般我们有外部设备所获得的图片或者视频当中,都包含了多种噪声,例如:当光照不充足或者光照不均匀时,图像灰度化通常集中等等,因为我们要进行图像预处理来降低或去除这些噪声。

图像预处理的常见过程包括:灰度化处理、图像过滤、图像增强处理、图像降噪处理、边缘检测及扩张等。

本论文中主要通过先对图像读取,然后进行灰度化处理得到灰度图,然后使用高斯过滤器平滑,然后执行边缘检测和扩张,以消除边缘图中边缘之间的任何间隙。经过这几步后可以使图像质量得以极大提高,为后文检测图像大小提供了优秀的条件。

在图像进行预处理前,我们首先要定义一个度量单位,即进行测量时的参照物。我们将使用这个参照物来进行单位像素的测量。

为了测量图中橡胶圈的实际大小,我们首先要选取一个参照物来作为整个图片的校准点,所选取的参照物必须要有以下特点:

  1. 首先必须知道参照物的实际大小,即参照物的真实尺寸,这个尺寸将作为图片的单位像素尺寸在计算橡胶圈的实际尺寸;
  2. 基于参照物的位置,必须能够在需要处理的图片中快速找到提前设定的参照物。

在本论文中,使用的是中国人民银行发行的菊花一元硬币,提前度量可得,一元硬币的实际宽度为25mm,且保持硬币存在于图片的最左边。

我们定义单位像素宽度为pixels_per_metric =物体像素宽 / 物体真实宽,一元硬币的实际大小为25.0mm。我们假设所处理的图片中一元硬币的像素宽度为150个像素,这种情况下单位像素宽度就为150px/25.0mm=6px/mm。

在进行目标解析前,需要两个命令行参数,即需要测量的目标图像的图片路径image和参照物目标的是实际尺寸width。

如图3.1为对命令行参数的定义。

1111

图3.1 对命令行参数的定义

在有了参照物的像素单位后,就可以进行对图片的处理了。

3.1图像的读取

图像的读取是图像预处理的第一步,由于在python中不需要声明变量,因此读取图像过程相对简单,只需要图像读取代码即可:

#图像路径的获取

“image = cv2.imread('./images\\example_01.jpg')”

只要输入的路径正确,这样就可以成功读取所需测量图像example_01.jpg了。如图3.2所示。

1

图3.2 整体待测图片

3.2选取单通道即图像灰度化

在获取图像时,往往会采集大量的彩色信息,会占用计算机的储存空间和运行速度。因此,为了加快处理速度。通常使用图像灰度化的图像处理方法。

有以下几种常见的途径来进行图像灰度化:

1、分量法:

分量法是使用彩色图像中三个分量的亮度作为三个灰度图像的灰度值,并且可以根据应用的需要选择灰度图像。

(3.1)

  1. 平均值法:

首先计算出R,G,B三个分量上各像素点的平均值,然后再把平均值赋给相对应的像素点,实现对图像的灰度化处理,得到一个平均灰度值。

(3.2)

  1. 最大值法:

将彩色图像中的三分量R,G,B亮度的最大值设为灰度值,通过以下算法可以得到通过最大值法处理后的灰度图像:

(3.3)

  1. 加权平均:

由于人的眼睛对不同颜色的敏感度各不相同,因此对三个分量R,G,B设置不同的指标,将三个分量R,G,B以不同的权值进行加权平均。

因为人眼对绿色的敏感度最高,对蓝色的敏感度最低,因此选用了通用的0.299,0.587,0.114的指标进行灰度化处理,加权平均法的计算公式如下:

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

gaos

均值

zhongzhi

双边

gaos

canny

QQ图片20190517171529

您需要先支付 50元 才能查看全部内容!立即支付

微信号:bysjorg

Copyright © 2010-2022 毕业论文网 站点地图