《机器视觉系统应用》课件-腰线瓷片检测_第1页
《机器视觉系统应用》课件-腰线瓷片检测_第2页
《机器视觉系统应用》课件-腰线瓷片检测_第3页
《机器视觉系统应用》课件-腰线瓷片检测_第4页
《机器视觉系统应用》课件-腰线瓷片检测_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

腰线瓷片检测程序运行演示课程引入代码分析代码演示一二三目录能力目标检测瓷砖是否有污渍,若有标出污渍;获得瓷砖的面积与周长。知识目标(1)图像二值化(2)边缘检测(3)膨胀与腐蚀(4)图像几何特征获取。课程目标一课程引入中国是瓷器之国,几千年的历史博大精深,从生产瓷器的那一天起,就有瓷片的产生,那时的人们在烧制瓷器时,往往会产生大量的残次品,而这些残次品的命运,就是被埋入地下。尤其是官窑烧制瓷器中产生的大量瓷片,皇家有专门负责此项检测瓷器烧制的官员,进驻窑厂,监督制作。而如今,我们不再需要人工去检测了,我们运用机器视觉技术去检测瓷片的好坏。本文案的内容为检测瓷片是否有污渍,以及计算瓷片的面积与周长。二代码分析

在Opencv中可直接使用函数cv2.cvColor()将彩色图像转为其它类型的图像。其语法格式为:dst=cv2.cvtColor(src,code[,dstCn])式中:dst表示输出图像,与原始输入图像具有同样的数据类型和深度。Src表示原始输入图像。可以是8位无符号图像、16位无符号图像,或者单精度浮点数等。Code是色彩空间转换码,常用的有:cv2.COLOR_BGR2GRAY#彩色图像转换为灰度图cv2.COLOR_GRAY2BGR#灰度图像转换为彩色图cv2.COLOR_BGR2RGB#BGR彩色图像转换为RGB彩色图dstCn是目标图像的通道数。如果参数为默认的0,则通道数自动通过原始输入图像和code得到。图像灰度化二代码分析

在Opencv中可使用cv2.threshold()函数进行阈值化处理,该函数的语法格式为:Retval,dst=cv2.threshold(src,thresh,maxval,type)式中:retval代表返回的阈值。dst代表阈值分割结果图像,与原始图像具有相同的大小和类型。src代表要进行阈值分割的图像,可以是多通道的,8位或32位浮点型数值。thresh代表要设定的阈值。maxval代表当type参数为THRESH_BINARY或者THRESH_BINARY_INV类型时,需要设定的最大值。type代表阈值分割的类型,具体类型值如表3-1所示。图像二值化

二代码分析

在Opencv中可直接使用函数cv2.cvColor()将彩色图像转为其它类型的图像。其语法格式为:dst=cv2.cvtColor(src,code[,dstCn])式中:dst表示输出图像,与原始输入图像具有同样的数据类型和深度。Src表示原始输入图像。可以是8位无符号图像、16位无符号图像,或者单精度浮点数等。Code是色彩空间转换码,常用的有:cv2.COLOR_BGR2GRAY#彩色图像转换为灰度图cv2.COLOR_GRAY2BGR#灰度图像转换为彩色图cv2.COLOR_BGR2RGB#BGR彩色图像转换为RGB彩色图dstCn是目标图像的通道数。如果参数为默认的0,则通道数自动通过原始输入图像和code得到。图像灰度化二代码分析Canny边缘检测Opencv提供了函数cv2.Canny()来实现Canny边缘检测,其语法形式如下:Edges=cv2.Canny(image,threshold1,threshold2[,apertureSize[,L2gradient]])式中:edges为计算得到的边缘图像。image为8位输入图像。threshold1表示处理过程中的第一个阈值。threshold2表示处理过程中第二个阈值。apertureSize表示Sobel算子的孔径大小。L2gradient为计算图像梯度幅度(gradientmagnitude)的标识。其默认值为False。如果为True,则使用更精确的L2范数进行计算(即两个方向的导数的平方和再开方),否则使用L1范数(直接将两个方向导数的绝对值相加)。

二代码分析一个轮廓对应着一系列的点,这些点以某种方式表示图像中的一条曲线。在Opencv中,函数cv2.findContours()用于查找图像的轮廓,并能够根据参数返回特定表示方式的轮廓(曲线)。函数cv2.drawContours()能够将查找到的轮廓绘制到图像上,该函数可以根据参数在图像上绘制不同样式(实心/空心点,以及线条的不同粗细、颜色等)的轮廓,可以绘制全部轮廓也可以仅绘制制定的轮廓。函数cv2.findContours()的语法格式为:image,contours,hierarchy=cv2.findContours(image,mode,method)式中的返回值为:image:与函数参数中的原始图像image一致。contours:返回的轮廓。hierarchy:图像的拓扑信息(轮廓层次)。式中的参数为:image:原始图像。8位单通道图像,所以非零值被处理为1,所有零值保持不变。也就是说灰度图像会被自动处理为二值图像。在实际操作时,可以根据需要,预先使用阈值处理等函数将待查找轮廓的图像处理为二值图像。mode:轮廓检索模式。method:轮廓的近似方法。轮廓提取

二代码分析函数cv2.drawContours()的语法格式是:image=cv2.drawCountours(image,contours,contourIdx,color[,thickness[,lineType[,hierarchy[,maxLevel[,offset]]]]])其中,函数的返回值为image,表示目标图像,即绘制了边缘的原始图像。式中:image:待绘制轮廓的图像。contours:需要绘制的轮廓。contourIdx:需要绘制的边缘索引,告诉函数cv2.drawContours()要绘制某一条轮廓还是全部轮廓。color:绘制的颜色,用BGR格式表示。thickness:可选参数,表示绘制轮廓时所用画笔的粗细。lineType:可选参数,表示绘制轮廓时所用的线型。hierarchy:对应函数cv2.drawContours()所输出的层次信息。maxLevel:控制所绘制的轮廓层次的深度。Offset:偏移参数。该参数使轮廓偏移到不同的位置展现出来。轮廓提取

三代码演示三代码演示gray=cv2.cvtColor(new_img,cv2.COLOR_BGR2GRAY)_,binary=cv2.threshold(gray,85,255,cv2.THRESH_BINARY)dst=cv2.bitwise_not(binary)

原图

二值化处理后三代码演示kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(4,4))dst=cv2.morphologyEx(dst,cv2.MORPH_OPEN,kernel)#cv2.imshow('dst2',dst)

二值化处理

开运算处理后三代码演示blurred=cv2.GaussianBlur(image,(3,3),0)gray=cv2.cvtColor(blurred,cv2.COLOR_BGR2GRAY)dst=cv2.Canny(gray,15,45)

原图

Canny边缘处理三代码演示font=cv2.FONT_HERSHEY_SIMPLEX#正常字体大小cv2.putText(img,'perimeter:'+str(perimeter),(0,15),font,0.5,(0,0,0))cv2.putText(img,'area:'+str(area),(0,30),font,0.5,(0,0,0))cv2.imshow("img",img)

原图

最终结果腰线瓷片检测方法讲解课程引入相关库的获取和导入原理分析一二三目录能力目标检测瓷砖是否有污渍,若有标出污渍;获得瓷砖的面积与周长。知识目标(1)图像二值化(2)边缘检测(3)膨胀与腐蚀(4)图像几何特征获取。课程目标一课程引入中国是瓷器之国,几千年的历史博大精深,从生产瓷器的那一天起,就有瓷片的产生,那时的人们在烧制瓷器时,往往会产生大量的残次品,而这些残次品的命运,就是被埋入地下。尤其是官窑烧制瓷器中产生的大量瓷片,皇家有专门负责此项检测瓷器烧制的官员,进驻窑厂,监督制作。而如今,我们不再需要人工去检测了,我们运用机器视觉技术去检测瓷片的好坏。本文案的内容为检测瓷片是否有污渍,以及计算瓷片的面积与周长。二相关库获取和导入导入库本章节我们需用到的库如下图示意。cv2是opencv-python用于图像处理。

numpy是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nestedliststructure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。三原理分析

车牌图像的采集一般是通过数码相机或者摄像机进行的,得到的图片一般是RGB图像,即真彩图像。根据三基色原理,每种颜色都可以由红、绿、蓝三种基色按不同的比例构成,所以车牌图像的每个像素都由3个数值来指定红、绿、蓝的颜色分量。灰度图像实际上是一个数据矩阵I,该矩阵中每个元素的数值都代表一定范围内的亮度值,矩阵I可以是整型或者是双精度,通常0代表黑色,255代表白色。在RGB模型中,如果R=G=B,则表示一种灰度颜色。其中,R=G=B的值叫灰度值,由彩色转为灰度的过程叫作图像灰度化处理。因此,灰度图像是指只有强度信息而没有颜色信息的图像。一般而言,可采用加权平均值法对原始RGB图像进行灰度化处理,该方法的主要思想是从原图像中取R、G、B各层的像素值经过加权求和得到灰度图的亮度值。图像灰度化三原理分析

灰度图像二值化在图像处理的过程中有着很重要的作用,图像二值化处理不仅能使数据量大幅减少,还能突出图像的目标轮廓,便于进行后续的图像处理与分析。对车牌灰度图像而言,所谓的二值化处理就是将其像素点的灰度值设置为0或255,从而让整幅图片呈现黑白效果。因此,对灰度图像进行适当的阈值选取,可以在图像二值化的过程中保留某些关键的图像特征。在车牌图像二值化的过程中,灰度大于或等于阈值的像素点被判定为目标区域,其灰度值用255表示;否则这些像素点被判定为背景或噪声而排除在目标区域以外,其灰度值用0表示。

图像二值化是指在整幅图像内仅保留黑、白二值的数值矩阵,每个像素都取两个离散数值(0或1)之一,其中0代表黑色,1代表白色。在车牌图像处理系统中,进行图像二值化的关键是选择合适的阈值,使得车牌字符与背景能够得到有效分割。采用不同的阈值设定方法对车牌图像进行处理也会产生不同的二值化处理结果;阈值设置得过小,则容易误分割,产生噪声,影响二值变换的准确度;阈值设置得过大,则容易过分割,降低分辨率,使非噪声信号被视为噪声而被过滤,造成二值变换的目标损失。图像二值化三原理分析Canny边缘检测

Canny边缘检测是一种非常流行的边缘检测算法。它是一个多阶段的算法,即由多个步骤构成:图像降噪;计算图像梯度;非极大值抑制;阈值筛选;首先,图像降噪。我们知道梯度算子可以用于增强图像,本质上是通过增强边缘轮廓来实现的,也就是说是可以检测到边缘的。但是,它们受噪声的影响都很大。那么,我们第一步就是想到要先去除噪声,因为噪声就是灰度变化很大的地方,所以容易被识别为伪边缘。第二步,计算图像梯度,得到可能边缘。我们在前面的关于《图像梯度》文章中有所介绍,计算图像梯度能够得到图像的边缘,因为梯度是灰度变化明显的地方,而边缘也是灰度变化明显的地方。当然这一步只能得到可能的边缘。因为灰度变化的地方可能是边缘,也可能不是边

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论