基于OpenCV的 桌面手机的尺寸测量

代码   见资源:基于OpenCV(C++)的桌面手机的尺寸测量

网址:https://download.csdn.net/download/Aquamarine__/16689432

实验数据:https://download.csdn.net/download/Aquamarine__/16690457

目录

基于OpenCV的 桌面手机的尺寸测量

(一)摘要:

(二)关键词:

(三)引言:

(四)图片预处理:

1.1 图片的基本处理

1.2 图片的直线检测

1.3 图片矫正

(五)目标识别:

5.1 流程

5.2 尺寸识别

(六)结  论:

表6.1 实验结果

(七)参考文献(References):


(一)摘要:

在工业领域,物体的尺寸识别一直是一个需要耗费大量的人力和无力的事情。本文针对该问题,在前期对图像进行预处理,以减少噪声,改善图像的质量,使之更适合机器的处理,利用灰度化、二值化、高斯滤波、Canny算子检测边缘以及膨胀腐蚀对不连续线段进行连接;再对处理后的图像进行直线的标定及交点的确定,以对其进行倾斜矫正,并利用四个点之间的关系,求取校正后的图像的位置,以实现对部分图像的透视矫正;使之在之后的目标识别测量中的结构更精确,在实现测量便捷的同时,也提高了检测的效率。

实验针对10组数据,进行了检测,其中有10%能够实现透视矫正,有20%能够实现倾斜校正,有80%能够粗略的测量手机的尺寸。实验结果表明,本文的预处理及所运用的识别方法行之有效,较传统方法相比,有参考物体的比照,使之计算量大大减少,能够快速便捷有效地检测手机的尺寸。

(二)关键词:

图像识别;边缘检测;物体尺寸测量


(三)引言:

在这个科技高速发展的时代,数字化和自动化已经成为一个不可避免的趋势,传统的手工测量不仅存在成本高、效率低的特点,而且主观性强,而基于机器视觉的检测方法可以很大程度上克服上述弊端。付泰等人(2016)采用从CAD图纸获取参数精确控制面阵CCD工业相机移动拍摄再结合运动参数和视觉检测数据进行在线精密尺寸测量[1]。赵明等人(2016)提出了基于多通道色彩下的边缘检测和目标识别方法,以及后期的以圆为参照的目标尺寸计算方法[2]。王爱珍(2019)研究了低对比度物体二维图像尺寸测量的算法,克服了低对比度物体在机器视觉中难以测量零件尺寸的不足[3]。

在图像处理方面,透视矫正、倾斜矫正是图片变形的较大的影响因素。代勤等人(2012)根据透视变换的原理提出了基于改进的霍夫变换和透视变换的透视图像矫正技术,并利用该算法根据摄像机的成像机理进行透视图像校正[4]。郑全新等人(2012)通过长方体表面对边平行的性质确定图像的消失线,得到图像采集系统的成像模型,参照消失线的位置在图像平面和长方体表面所在平面上分别建立平面直角坐标系,并计算两坐标系的对应关系,再按对应关系对图像进行插值处理的方式对图像进行矫正[5]。苗立刚(2009)根据文档图像的文本行和竖直笔画边界,提出了一种基于数学形态学的分层校正算法,可以有效地恢复文档图像的正面平行视图[6]。

本文运用图像处理技术,直接对图片中的手机进行目标识别、矫正,根据参照物硬币的大小计算得手机的尺寸大小。


(四)图片预处理:

1.1 图片的基本处理

1.1.1 图像的缩小

在实验中,当直接导入原图后,窗口不能完整的显示出图片,因此先利用函数对原图进行缩小处理。

1.1.2 图像的灰度化

使用颜色空间转换函数实现图片的RGB颜色转向HSV、HIS等颜色空间的转换。在该实验中,我们实现的是其向灰度图的转换。

1.1.3 图像的二值化

使用自适应阈值化操作,从二值化图像中,根据像素的邻域块的像素值分布来确定该像素位置上的二值化的阈值,分离目标区域和背景区域。为每一个像素点单独计算的阈值,即每个像素点的阈值都是不同的,就是将该像素点周围x*x区域内的像素加权平均,然后再减去一个常熟c,从而得到该点的阈值。

由于每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的;并且亮度较高的图像区域的二值化阈值通常较高,亮度低的图像区域的二值化阈值则会相适应的变小;除此之外,不同亮度、对比度、纹理的局部图像区域将会拥有相对的局部二值化阈值的这些优点,都使得其的分割效果较传统的更好。

1.1.4 图像的滤波

图像滤波,指在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。图像滤波的目的有两个,一是抽出对象的特征作为图像识别的特征模式,二是为适应图像处理的要求,消除图像数字化时所混入的噪声。

图像平滑处理操作的方法有很多,常用的有方框滤波、均值滤波、高斯滤波、中值滤波和双边滤波五种。在该实验中,我们采用的是高斯滤波,其根据高斯函数的形状来选择权值的线性平滑滤波器,对于抑制服从正态分布的噪声非常有效,函数越平缓效果越好。

1.1.5 图像的边缘检测

边缘检测,是识别数字图像中亮度变化明显的点,在图像属性中的显著变化通常反映了属性的重要事件和变化;其可以大幅度地减少数据量,并剔除可认作是不相关的信息,保留图像重要的结构属性。在进行图像的边缘检测时,必须满足两个条件,一是能有效地抑制噪声,二是必须尽量精确确定边缘的位置。

在该实验中,我们使用Canny算子的边缘检测方法,其属于先平滑后求导数的方法。Canny算法中的双阈值是指:如果边缘像素的梯度值高于高阈值,则将其标记为强边缘像素;如果边缘像素的梯度值小于高阈值并且大于低阈值,则将其标记为弱边缘像素;如果边缘像素的梯度值小于低阈值,则会被抑制。而阈值的选择取决于给定输入图像的内容。Canny算法在对图像中物体边缘敏感性的同时,还可以抑制或消除噪声的影响。

        

                                               图1 原图Ⅰ                                                                              图2 原图Ⅱ                                                               图3 原图Ⅰ的Canny检测效果

1.1.6 图像的膨胀腐蚀

图像的膨胀腐蚀,主要是为了消除噪声、分割出独立的图像元素并在图像中连接相邻的元素、寻找图像中的明显的极大值区域或极小值区域、求出图像的梯度。膨胀与腐蚀是一对闭合函数,需要成对出现,属于开闭运算,膨胀是将线条加粗,腐蚀是将线条变细。都是针对高亮部分而言的。

在该实验中,我们先利用膨胀函数,再使用腐蚀函数,主要是用于线条不连续时,先加粗使之连续,再变细之后就连续了。这么做的原因是,在之后最小边框检测时,需要封闭连续的图像做检测。

1.2 图片的直线检测

1.2.1 霍夫线变换

霍夫线变换是一种用于对边缘二值图像来寻找直线的方法,其利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点,以把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题,即把检测整体特性转化为检测局部特性。

在该实验中,我们使用累计概率霍夫变换,因为其发现的直线条数更多,能检测大部分的直线线条,效果更好。

1.2.2 线的过滤与绘制

在上一步的霍夫线的变换中,几乎可以检测出图像中绝大多数的线条,但大多数线条是无用的,不能用于框定目标物体,因此需要省去。在该实验中,根据图片的目标物体的位置属性,定义了两个点,一个是图片的中点,一个是将图片平分为左上、左下、右上、右下四个部分并取左上部分的中心点作为第二个参考点。遍历上一步检测出的所有线条,以这两个参考点来判断上一步检测出的线条是否满足要求,并利用四个标志位,来判断目标物体的四个方向上是否已经存在线条来确定。

1.2.3 交点的计算

利用数学中两直线求交点的方法,定义一个计算两直线交点的函数,并将求取后的交点有序的存取于容器中,并构造变换矩阵,为下面的图片矫正打基础。

                     图4 原图Ⅰ过滤后的直线及其交点的绘制

1.3 图片矫正

1.3.1 倾斜校正

根据直线检测过滤后的线的交点,来求取需要转的角度的正切值,求取角度并将其转换为弧度值,设置图片的缩小的比例值,再利用仿射函数对图像进行变换。倾斜校正的效果图如图5所示:

                            图5 原图Ⅰ倾斜校正效果

1.3.2 透视校正

根据直线检测过滤后的交点,求取透视校正后的点的对于位置,按照其位置,对该图进行透视校正,再裁剪出有用的图像,以待后续使用。透视校正的效果图如图6所示:

                               图6 原图Ⅱ透视校正效果


(五)目标识别:

5.1 流程

本实验的识别流程如下图7所示:

           图7 整体流程图

首先对图片进行预处理,包括图像灰度化、二值化、高斯滤波、Canny边缘检测、膨胀腐蚀等,再进行直线检测,判断是否需要透视校正,若需要则进行透视校正,并对矫正后的图像进行裁剪;若不需要则进行尺寸测量,再判断是否需要倾斜校正,若需要则根据四个点的坐标位置按照数学关系进行校正,若不需要则实验的测量识别结束。

5.2 尺寸识别

首先,是轮廓查找,利用函数查找轮廓,并遍历所有顶层轮廓,绘制出每个连接组件的颜色。然后再将轮廓按照从左到右的顺序进行排序,标注出圆的长款,以得到矩形的长宽,完成测量识别。识别的效果图如下图8、图9所示:

                                                 图8 原图Ⅰ检测效果图

(六)结  论:

手机的官方尺寸为:长157.4mm,宽74.8mm。该实验中的测试结果如表1所示:

1

2

3

4

5

145.631

159.224

154.647

161.357

159.865

72.3404

73.5622

79.2543

73.1185

80.2577

宽比

7.477

1.159

1.749

2.514

1.566

长比

0.329

1.655

5.955

2.248

7.296

6

7

8

9

10

167.343

171.713

164.886

156.398

152.133

77.7815

82.5563

78.5556

79.009

61.1844

宽比

6.317

9.093

4.756

0.637

3.346

占比

3.986

10.369

5.021

5.627

18.202

6.1 实验结果

本实验对手机尺寸的识别进行了研究,通过图像预处理、直线检测与过滤、透视变换、倾斜变换等步骤,实现了对手机尺寸的倾斜校正、尺寸轮廓提取的处理。通过以上测试和结果分析,有80%的图片可以识别,而有30%的图片可以较为准确的识别;因此本实验的方法在大多数情况下可以有效的识别并测量手机的长宽,目标尺寸的计算结果精确到小数点后4位,识别和计算过程简捷。但在图片的透视校正部分的校正方法还有待进一步的研究,以可满足不同的复杂的环境下的测量需求。

(七)参考文献(References):

[1] Fu T, Wang G T, Cheng S H, Xiong F .2016. Size Sophisticated Detection Based on Machine Vision Complex Plane. Electromechanical engineering technology ,45(08)(付泰,王桂棠,程书豪,熊峰. 2016.基于机器视觉的复杂平面零件尺寸精密检测. 机电工程技术,45(08)) [DOI:10.3969/j.issn.1009-9492.2016.08.003]

[2] Zhao M. 2016. Research on Image-based Object Size Measurement Algorithm. Software Guide,48-52 (赵明.2016.基于图像的物体尺寸测量算法研究. 软件导刊 ,48-52)[DOI:10.11907/rjdk.162445]

[3] Wang A Z. 2019. Research on Two-dimensional Measurement Method of Low Contrast Object Based on Machine Vision. Xi'an University of Technology: 64(王爱珍. 2019. 基于机器视觉的低对比度物体二维尺寸测量方法的研究. 西安理工大学: 64 )

[4] Dai Q, Wang Y J, Han G L. 2012. Perspective Image Rectification Based on Improved Hough Transformation and Perspective Transformation. Chinese Journal of Liquid Crystals and Displays. 552-556 (代勤, 王延杰, 韩广良. 2012. 基于改进Hough变换和透视变换的透视图像矫正. 液晶与显示, 552-556) [DOI:1007-2780(2012)04-0552-05]

[5] Zheng Q X, Yang M Q, Li W H. 2012. Perspective Distortion Correction Method of Cuboid's Surface Based on Vanishing Line. Computer Engineering, 261-265 (郑全新, 杨明强, 李文辉. 2012. 基于消失线的长方体表面透视变形校正方法. 计算机工程, 261-265) [DOI:1000-3428(2013)05-0261-05]

[6] Miao L G. 2009. Perspective Correction Algorithm of Document Image Based on Morphology. Journal of Optoelectronics.Laser, 1262-1266 (苗立刚. 2009. 基于形态学的文档图像透视校正算法. 光电子.激光, 1262-1266 )[DOI:10.16136/j.joel.2009.09.017]

基于OpenCV的 桌面手机的尺寸测量相关推荐

  1. HALCON示例程序check_fish_stick_dimension.hdev生鱼棒尺寸测量;基于形态学的像素级精度尺寸测量

    HALCON示例程序check_fish_stick_dimension.hdev基于形态学的像素级精度尺寸测量 示例程序源码(加注释) 关闭实时显示更新 dev_update_off () 关闭窗口 ...

  2. 【计算机视觉OpenCV基础】实验四 尺寸测量

    实验四 尺寸测量 计算机视觉OpenCV基础实验合辑(实验1234+扩展) 资源下载地址: https://download.csdn.net/download/weixin_53403301 合辑: ...

  3. 机器视觉 基于XAVIS机器视觉组态软件的尺寸测量

    ZM-VS1200 机器视觉教学实验平台是一种创新实验系统,功能强大,使用方便,可满足 机器视觉各类实验开设需求,其中包含图像获取,图像处理.模式识别.形状匹配,形态学分 析.机器学习等功能.     ...

  4. opencv 全景 android,基于OpenCV的Android手机全景图像拼接技术研究

    摘要: 21世纪是信息化时代,人们每天被各式各样的信息所包围,这些信息中90%来自于图像.在生活中很多情况下,人们需要记录某些场景,常用的工具就是相机,包括带拍照功能的智能手机.随着科技的发展,软硬件 ...

  5. 基于opencv实现桌面图标识别

    一.必要的库 numy和opencv.直接使用pip安装即可: 二.在指定区域截图 直接贴代码: from ctypes import windll, byref, c_ubyte from ctyp ...

  6. opencv实战---物体尺寸测量

    物体尺寸测量的思路是找一个确定尺寸的物体作为参照物,根据已知的计算未知物体尺寸. 如下图所示,绿色的板子尺寸为220*300(单位:毫米),通过程序计算白色纸片的长度. 目录 1.相关库 2.读图+图 ...

  7. 基于OpenCV的单目摄像机测距

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 我的论文方向目前是使用单目摄像头实现机器人对人 ...

  8. opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...

    " 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...

  9. OpenCV2学习笔记(十四):基于OpenCV卡通图片处理

    得知OpenCV有一段时间.除了研究的各种算法的内容.除了从备用,据导游书籍和资料,尝试结合链接的图像处理算法和日常生活,第一桌面上(随着摄像头)完成了一系列的视频流处理功能.开发平台Qt5.3.2+ ...

  10. Python基于opencv “三维”旋转图片,解决日常小问题

    背景 前段时间因为要办理一些事情,需要家里人拍 户口本首页 和 个人所在页的照片用来打印,家里父亲已经年过六旬,能学会玩微信已经实属不易,让父亲用手机拍出很正的图片有点太难,户口本首页拍了有5张以上, ...

最新文章

  1. 在线文档预览方案-office web apps
  2. invalid dts/pts combination
  3. 三个很有用的sqlserver中的处理多个以分隔符分隔的参数的函数
  4. c语言 在txt文件中搜索关键词_网络推广外包—网络推广外包如何在搜索引擎中体现关键词优化效果...
  5. 58如何调出eclipse左边文件栏
  6. 为什么雷军指责“华为不懂研发”?
  7. java读取word文档内容_合并多个Word文档内容,还在复制粘贴就out了,同事五秒轻松搞定...
  8. c语言编程蛇形,蛇形矩阵c语言实现
  9. scrapy-redis3
  10. iOS Mac安装ipa文件的几种方法
  11. 在哪里能看到计算机缓存大小,怎么查看电脑硬盘缓存大小
  12. win10支持8t 硬盘_最快最简单!Win10 正式版硬盘安装方法详解
  13. apmserv mysql_APMServ MySQL 1577错误解决方法_MySQL
  14. 计算机网络基础【2】
  15. 缺失数据填补基础方法(3)——Multiple Imputation by Chained Equations (MICE)
  16. 系统集成项目管理工程师备考资料(口袋应试第二版)2
  17. Oracle后台专家解决library cache锁争用的终极武器
  18. Python之文档测试
  19. webscarab fuzz testing
  20. MySQL执行过程(一条SQL从Java到数据库都经历了什么)

热门文章

  1. GIS真正的魅力在哪?
  2. 从SNP_VCF文件提取SNV
  3. pythonmath库阶乘函数_Python--math库
  4. dylib动态库注入及重签名打包
  5. appcan java_appcan下载
  6. 【编程语言】Java夯实基础(一):Java的起源与发展
  7. Windows服务器无法配置IP
  8. 【报错】进程已结束,退出代码-1073740791 (0xC0000409)
  9. R如何读取csv文件
  10. 由偷菜/抢车位引发的思考