一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于图像识别提取产品形状特征并计数的方法与流程

2023-01-15 03:39:09 来源:中国专利 TAG:


1.本发明涉及软件应用开发领域,尤其涉及一种基于图像识别提取产品形状特征并计数的方法。


背景技术:

2.产品进行包装分拣时,工序有计数的要求。对于单体重量在10克以上的磁芯,通过称重反算个数是比较准确的计数方法,但是对于个重低于0.5克的细小磁芯类产品,用这种方式来计算误差较大。现有技术中,通过现场将产品紧密排列至量具内,通过查询排版数与数量对照表得到磁芯类产品的个数。
3.现有技术中对于克重较小的产品的计数方式存在如下弊端:1、需要将产品排列紧密至量具内,根据形状规则查询对应表得到产品数,耗时耗力;2、当产品数量较多时,量具大小有限,这个过程需要多次操作,效率低下。


技术实现要素:

4.本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于图像识别提取产品形状特征并计数的方法。
5.为实现上述目的,本发明采用了如下技术方案:一种基于图像识别提取产品形状特征并计数的方法,包括以下步骤:s1:获取目标图片;工程师通过在线拍照或选择已有图片的方式获取目标图片;所述目标图片中包含待计数产品且待计数产品平铺不重叠。
6.s2:读取目标图片并将目标图片转化为灰度图;通过cv2.imread()函数读取目标图片的像素矩阵信息来读取目标图片;所述像素矩阵信息包括每个像素的r、g、b值;判断目标图片是否为灰度图;如果目标图片的每一个像素所对应的r、g、b的值相等,则所述目标图片为是灰度图,进入步骤s3;如果目标图片的每一个像素所对应的r、g、b的值不是完全相等,则所述目标图片不是灰度图,调用cv2.cvtcolor()函数将目标图片转换成灰度图。
7.s3:对灰度图进行二值化处理,得到灰度图对应的二值化图像;所述二值化图像是指只有黑色和白色两种颜色的图像,每个像素点可以用0或255表示,0表示黑色,255表示白色;通过调用cv2.adaptivethreshold()函数将灰度图转化为像素仅有0和255两个值的图像,将目标区域和背景区域彻底分割,得到灰度图对应的二值化图像;所述目标区域是指图像中待计数产品所占区域,背景区域是指图像中除去待计数
产品所占区域的其他区域;每一个待计数产品对应一个目标区域。
8.s4:检测二值化图像轮廓,提取二值化图像轮廓的水平矩形坐标,通过坐标绘制矩形;包括如下子步骤:s41:检测二值化图像轮廓,找出图像中的轮廓值;通过调用cv2.findcontours()函数获取二值化图像中每个目标区域的轮廓及轮廓值,所述轮廓是一系列点的集合,轮廓值是指各个点的坐标值;s42:根据图像的轮廓值,获取轮廓的垂直边界最小矩形;通过调用cv2.boundingrect()函数获取每个目标区域的垂直边界最小矩形边框信息,所述垂直边界最小矩形边框信息包括矩形左上点的坐标值、矩形的宽、矩形的高;根据矩形左上点的坐标值、矩形的宽和矩形的高计算出矩形四个顶点坐标;具体的计算方法为:设矩形矩形左上点的坐标为(x,y),矩形的高为h、矩形的宽为w;则矩形右上点的坐标为(x w,y);则矩形左下点的坐标为(x,y-h);则矩形右下点的坐标为(x w,y-h);所述矩形与图像上下边界平行;s43:绘制垂直边界最小矩形;根据步骤s42获取的垂直边界最小矩形的四个顶点坐标通过cv2.rectangle()函数绘制垂直边界最小矩形;绘制完成,得到二值化图像中所有目标区域的垂直边界最小矩形。
9.s5:在绘制出的每个矩形左上角写入计数编号,根据编号最大值得到目标图片内产品个数;根据步骤s42中获取的绘制的每个矩形的左上角坐标,cv2.puttext()函数调用矩形左上角坐标,在每个绘制的矩形左上角写入计数编号,编号为从1开始的阿拉伯数字;编号最大值即为目标区域个数,即为目标图像中待计数的产品数量。
10.与现有技术相比,本发明的有益效果为:通过本发明提出的基于图像识别提取产品形状特征并计数的方法,现场产品不需要按量具要求固定排列,只需要将产品平铺且不重叠,获取待识别产品图片,直接从图片中归纳产品特征,并基于特征计数得到产品的正确数量;每次容纳产品数量只受限于平铺场地,不需要提前维护产品形状参数,产品数量较大时,不需要多次将产品放入测量器具中,提高产品计数效率;不需要根据形状规则查询对应表得到产品数,节约时间。
附图说明
11.图1为本发明一种基于图像识别提取产品形状特征并计数的方法的步骤流程图。
具体实施方式
12.为使对本发明的目的、构造、特征、及其功能有进一步的了解,兹配合实施例详细说明如下。
13.一种基于图像识别提取产品形状特征并计数的方法,包括以下步骤:s1:获取目标图片;工程师通过在线拍照或选择已有图片的方式获取目标图片;所述目标图片中包含待计数产品且待计数产品平铺不重叠。
14.s2:读取目标图片并将目标图片转化为灰度图;通过cv2.imread()函数读取目标图片的像素矩阵信息来读取目标图片;所述像素矩阵信息包括每个像素的r、g、b值;所述r、g、b是指r(red)、g(green)、b(blue),rgb的值指亮度,用整数来表示;r、g、b各有256级亮度,用数字表示为从0-255;判断目标图片是否为灰度图;如果目标图片的每一个像素所对应的r、g、b的值相等,则所述目标图片为是灰度图,进入步骤s3;如果目标图片的每一个像素所对应的r、g、b的值不是完全相等,则所述目标图片不是灰度图,调用cv2.cvtcolor()函数将目标图片转换成灰度图。
15.s3:对灰度图进行二值化处理,得到灰度图对应的二值化图像;所述二值化图像是指只有黑色和白色两种颜色的图像,每个像素点可以用0或255表示,0表示黑色,255表示白色;通过调用cv2.adaptivethreshold()函数对图像进行自适应阈值处理,将灰度图转化为像素仅有0和255两个值的图像,通过将目标区域和背景区域彻底分割,得到灰度图对应的二值化图像;所述自适应阈值是指根据图像上的每一个小区域计算其局部最佳阈值,将灰度图中局部所有像素值小于阈值的像素点置为0,而大于阈值的像素点置为255,得到二值化图像;所述目标区域是指图像中待计数产品所占区域,背景区域是指图像中除去待计数产品所占区域的其他区域;每一个待计数产品对应一个目标区域;进一步的,所述图像对噪声敏感,对图像进二值化处理时,需要对图像进行降噪处理。
16.s4:检测二值化图像轮廓,提取二值化图像轮廓的水平矩形坐标,通过坐标绘制矩形;包括如下子步骤:s41:检测二值化图像轮廓,找出图像中的轮廓值;通过调用cv2.findcontours()函数获取二值化图像中每个目标区域的轮廓及轮廓值,所述轮廓是一系列点的集合,轮廓值是指各个点的坐标值;s42:根据图像的轮廓值,获取轮廓的垂直边界最小矩形;通过调用cv2.boundingrect()函数获取每个目标区域的垂直边界最小矩形边框
信息,所述垂直边界最小矩形边框信息包括矩形左上点的坐标值、矩形的宽、矩形的高;根据矩形左上点的坐标值、矩形的宽和矩形的高计算出矩形四个顶点坐标;所述矩形与图像上下边界平行;具体的计算方法为:设矩形矩形左上点的坐标为(x,y),矩形的高为h、矩形的宽为w;则矩形右上点的坐标为(x w,y);则矩形左下点的坐标为(x,y-h);则矩形右下点的坐标为(x w,y-h);例如:矩形左上点的坐标为(4,5)、矩形的高为3、矩形的宽为2;则矩形右上点的坐标为(4 2,5),即(6,5);则矩形左下点的坐标为(4,5-3),即(4,2);则矩形右下点的坐标为(4 2,5-3),即(6,2);通过函数获取每个目标区域的垂直边界最小矩形边框信息,包括矩形左上点的坐标值、矩形的宽、矩形的高,由于每个待计数产品不重叠,则每个矩形不重叠,矩形个数即为待计数产品数量;s43:绘制垂直边界最小矩形;根据步骤s42获取的垂直边界最小矩形的四个顶点坐标通过cv2.rectangle()函数绘制垂直边界最小矩形;绘制完成,得到二值化图像中所有目标区域的垂直边界最小矩形。
17.s5:在绘制出的每个矩形左上角写入计数编号,根据编号最大值得到目标图片内产品个数;根据步骤s42中获取的绘制的垂直边界最小矩形及垂直边界最小矩形边框信息,cv2.puttext()函数调用矩形左上角坐标,在每个绘制的矩形左上角写入计数编号,编号为从1开始的阿拉伯数字;编号最大值即为目标区域个数,即为目标图像中待计数的产品数量。
18.本发明已由上述相关实施例加以描述,然而上述实施例仅为实施本发明的范例。必需指出的是,已揭露的实施例并未限制本发明的范围。相反地,在不脱离本发明的精神和范围内所作的更动与润饰,均属本发明的专利保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献