[发明专利]一种双色导线颜色提取与匹配方法在审
申请号: | 202210491216.7 | 申请日: | 2022-05-07 |
公开(公告)号: | CN114972784A | 公开(公告)日: | 2022-08-30 |
发明(设计)人: | 罗建超;蔺耀华 | 申请(专利权)人: | 西北工业大学太仓长三角研究院;西北工业大学 |
主分类号: | G06V10/44 | 分类号: | G06V10/44;G06V10/56;G06V10/74;G06V10/28;G06T7/73 |
代理公司: | 西安凯多思知识产权代理事务所(普通合伙) 61290 | 代理人: | 赵革革 |
地址: | 215400 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 导线 颜色 提取 匹配 方法 | ||
1.一种双色导线颜色提取与匹配方法,其特征在于,包括如下步骤:
步骤1:获取导线图像;
将导线水平放置在白色背景板上,相邻两根导线的距离控制在1厘米到2厘米之间,使用工业相机对导线拍照,得到大小为3072*2048的原始导线图像image1;
步骤2:异常图像处理;
步骤2-1:表征原始导线图像image1的数据是一个三维矩阵,维度是3072*2048*3,其中第三维对应每个像素点的颜色信息,分别对应蓝色B、绿色G、红色R三个颜色通道;
步骤2-2:找到image1中白色背景对应的像素点,将其颜色修改为黑色,具体为:遍历image1中所有像素点,若像素点的值介于[240,240,240]与[255,255,255]之间,将其修改为[0,0,0],得到图像image2,image2维度与image1相同;
步骤2-3:将image2转为灰度图,再将灰度图转为二值图,得到图像image3;
步骤2-4:对图像image3提取轮廓,将所有轮廓按纵坐标由小到大排序,并舍弃其中面积小于设定阈值的轮廓,得到轮廓列表contours1;
步骤2-5:定义一个与图像image3大小相同的二维图像mask用来存放轮廓信息,mask初始时每个像素值都为0;
若contours1为空,在mask中间位置绘制一条水平的白色线段,转到步骤2-11;
步骤2-6:若contours1不为空,则从contours1中取出一个轮廓;
步骤2-7:在mask中相同的位置绘制与取出的轮廓相同的实心轮廓;
步骤2-8:从第二个轮廓开始将当前轮廓与上一个轮廓的中心点纵坐标相减得到距离distance;
步骤2-9:若distance大于300,在mask中的当前轮廓与上一轮廓的中间位置绘制一条水平的白色线段;
若distance小于100,将mask中的当前轮廓与上一轮廓中心点用一条白色线段相连;
步骤2-10:重复执行步骤2-6到步骤2-9,直到contours1为空;
步骤2-11:遍历mask矩阵,对于像素值为0的点,将image2中相同位置的值改为[0,0,0];对于像素值为255的点,将image2中相同位置的值保留,操作结束后,将修改后的image2定义为image4;
步骤3:导线颜色提取;
步骤3-1:将步骤2得到的image4转灰度图,将灰度图转二值图得到图像image5;
步骤3-2:对图像image5提取轮廓,将所有轮廓按纵坐标由小到大排序,并舍弃其中面积小于设定阈值的轮廓,得到轮廓列表contours 2;
步骤3-3:令lines表示用于存放导线图像的列表,初始时列表lines为空;
步骤3-4:若contours2不为空,则从contours2中取出一个轮廓;
步骤3-5:提取轮廓的外接矩形,在image4中截取与轮廓外接矩形相同大小和位置的图像,放入列表lines中;
步骤3-6:重复步骤3-4和步骤3-5,直至contours2为空;
步骤3-7:定义array1、array2为二维列表,array3为一维列表,三个列表初值均为空;定义二维列表point1和point2;定义color为维度为2*3列表,用于存放一根导线的两个颜色信息;
步骤3-8:若lines不为空,则从lines中取出一个图像;
步骤3-9:将图像line中每个像素点的值相加,依次存放到array1中相同位置;
步骤3-10:取array1中值大于30的像素点的坐标信息,根据坐标信息依次从line中取出一个BGR值,按行存放到array2中;
步骤3-11:依次将array2中每个像素点三个颜色通道的值相加,并将结果依次存放到一维列表array3中;
步骤3-11:求array3中所有元素的平均值得到average;
步骤3-12:遍历array3,若任一元素的值大于average,则将array2中相应位置的值按行存放到point1;若任一元素的值小于或等于average,则将array2中相应位置的值按行存放到point2;
步骤3-13:计算point1中每一列的平均值,得到当前导线的第一个颜色信息;计算point2中每一列的平均值,得到当前导线的第二个颜色信息;将两个颜色信息加入列表color,再将color加入列表colors;
步骤3-14:重复执行步骤步骤3-8到步骤3-13,直至列表lines为空;
步骤4:导线颜色匹配;将待匹配的导线的两种颜色信息存储在current中;
步骤4-1:定义dists为大小为100的一维列表,初值为空,将用于记录当前待检测导线和colors中所有导线颜色的差异度;
步骤4-2:如果列表colors不为空,则从列表colors中取出一根导线的颜色信息color;
步骤4-3:将current与color的两个颜色信息分别做差、取平方之后相加,得到颜色差异度候选值dist1;
步骤4-4:交换current中两个颜色信息的顺序之后,将current与color的两个颜色信息分别做差取、取平方之后相加,得到颜色差异度候选值dist2;
步骤4-5:令dist=min{dist1,dist2},将dist存入列表dists;
步骤4-6:重复执行步骤4-2到步骤4-5直至colors为空;
步骤4-7:如果dists为空,则输出错误信息;否则,查找dists中的最小值所在的位置,并将该位置赋值给order,输出order。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学太仓长三角研究院;西北工业大学,未经西北工业大学太仓长三角研究院;西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210491216.7/1.html,转载请声明来源钻瓜专利网。