一种基于Opencv的菲涅尔透镜中心定位方法技术

技术编号:33437523 阅读:14 留言:0更新日期:2022-05-19 00:25
一种基于Opencv的菲涅尔透镜中心定位方法,相比人工标记菲涅尔透镜中心点,基于Opencv实现菲涅尔透镜中心点的自动定位节约了时间,增加了生产效率,提高了生产产能。基于Opencv的菲涅尔透镜的中心点定位实现自动化生产菲涅尔透镜的第一环节的检测,返回的坐标可供给机械臂执行后续切割等任务。可供给机械臂执行后续切割等任务。可供给机械臂执行后续切割等任务。

【技术实现步骤摘要】
一种基于Opencv的菲涅尔透镜中心定位方法


[0001]本专利技术涉及机器视觉领域,具体涉及一种基于Opencv的菲涅尔透镜中心定位方法。

技术介绍

[0002]工业领域生产光伏菲涅尔透镜以及投影菲涅尔透镜主要原理是利用菲涅尔透镜模具在高温情况下铸压亚克力板从而在亚克力板上形成菲涅尔透镜。然而单片亚克力板可铸压形成多片菲涅尔透镜,亚克力板上不同的菲涅尔透镜使用的模具不相同,因而透镜模具螺纹的中心也不相同,导致铸压后的菲涅尔透镜中心点位置不同。现有定位菲涅尔透镜中心点的方式通过人工肉眼观察标记,并为后续在亚克力板上切割菲涅尔透镜提供中心坐标,这对于工业大批量生产是不利的。现有机器视觉相关技术可实现自动定位菲涅尔透镜中心坐标。Opencv是机器视觉领域中重要的开源库,基于Opencv可实现图像处理操作、目标检测和视频分析等任务。

技术实现思路

[0003]本专利技术为了克服以上技术的不足,提供了一种提升生产效率的基于Opencv的菲涅尔透镜中心定位方法。
[0004]本专利技术克服其技术问题所采用的技术方案是:
[0005]一种基于Opencv的菲涅尔透镜中心定位方法,包括如下步骤:
[0006]a)利用彩色摄像机对铸压成型的亚克力板进行拍摄,得到具有RGB三通道的原始图像A,一块亚克力板上铸压制成N片菲涅尔透镜、1个位于亚克力板上方的横轴定位点及N个沿竖直方向间隔设置于亚克力板边缘的纵轴定位点,原始图像A中具有N+1个定位点;
[0007]b)对原始图像A进行预处理,得到预处理图像B;
[0008]c)对预处理图像B进行高斯模糊得到滤波图像C;
[0009]d)将滤波图像C进行灰度变换得到单通道灰度图D;
[0010]e)将灰度图D中像素值大于阈值T的像素点重置像素值为255,将灰度图D中像素值小于阈值T的像素点重置像素值为0,构成二值图像E;
[0011]f)根据二值图像E寻找二值图像E中所有N+1个定位点轮廓和其它轮廓;
[0012]g)N+1个定位点的轮廓面积大小分别为S1、S2、

、S
N
、S
N+1
,通过公式计算得到阈值下限S
min
,通过公式计算得到阈值上限S
max
,如果轮廓的面积在区间[S
min
,S
max
]内,则保留该轮廓的信息,如果轮廓的面积不在区间[S
min
,S
max
]内则剔除该轮廓,得到保留下的轮廓信息为N+1个定位点的轮廓信息,剔除掉的轮廓信息为其他轮廓信息;
[0013]h)获取N+1个定位点轮廓外接矩形信息,返回外接矩形左上角点的像素坐标(x
left
,y
left
)以及外接矩形的高h和宽w,将N+1个定位点轮廓根据外接矩形左上角点的纵轴像素坐标y
left
由小到大进行排序并标记,将排序好的N+1个定位点轮廓信息存储到列表中;
[0014]i)计算N+1个定位点轮廓的重心像素坐标,第一个定位点轮廓的重心像素坐标为后N个定位点轮廓的重心像素坐标分别为
[0015]j)以第一个定位点轮廓的重心像素坐标为用于确定N片菲涅尔透镜的横轴坐标,后N个定位点轮廓的重心像素坐标分别确定N片菲涅尔透镜的纵轴坐标,得到N片菲涅尔透镜的中心坐标从上至下依次为进一步的,步骤b)中通过python图像库PIL增强原始图像A的亮度、色彩及对比度,得到预处理图像B。
[0016]进一步的,步骤c)包括如下步骤:
[0017]c

1)在预处理图像B中读取k行k列像素的矩阵块α,k为奇数,通过二维高斯核函数公式计算得到像素权重G(x,y),式中x为预处理图像B的图像像素的横坐标,y为预处理图像B的图像像素的纵坐标,σ为常数,x0为矩阵块α中心像素的横坐标,y0为矩阵块α中心像素的纵坐标。
[0018]c

2)通过Opencv的接口GaussianBlur使用像素权重G(x,y)计算得到k行k列的权重模板矩阵;
[0019]c

3)使用权重模板矩阵与矩阵块α做卷积运算,将卷积运算结果替代矩阵块α中心像素值;
[0020]c

4)重复执行步骤c

1)至步骤c

3)直至预处理图像B中所有像素均被替代,最终得到滤波图像C。
[0021]进一步的,步骤d)中通过Opencv的接口cvtColor将三通道的彩色的滤波图像C转化为灰度图像D。
[0022]优选的,步骤e)中阈值T的取值为68。
[0023]进一步的,步骤f)中基于Opencv的接口findContours返回所有二值图像E中被检测到的轮廓模型并将所有轮廓标记为同一层级。
[0024]进一步的,步骤h)中基于Opencv的接口boundingRect获取N+1个定位点轮廓的外接矩形信息,并返回外接矩形左上角点的像素坐标(x
left
,y
left
)以及外接矩形的高h和宽w。
[0025]进一步的,步骤i)包括如下步骤:
[0026]i

1)通过公式计算得到图像空间矩m
ji
,式中I(x,y)为像素(x,y)处的像素值,i∈{0,1},j∈{0,1}且i+j≤1,图像零阶空间矩返回参数为m
00
,图像一阶空间矩返回参数为m
01
和m
10

[0027]i

2)通过公式计算得到定位点轮廓的重心像素坐标
[0028]本专利技术的有益效果是:相比人工标记菲涅尔透镜中心点,基于Opencv实现菲涅尔透镜中心点的自动定位节约了时间,增加了生产效率,提高了生产产能。基于Opencv的菲涅尔透镜的中心点定位实现自动化生产菲涅尔透镜的第一环节的检测,返回的坐标可供给机械臂执行后续切割等任务。
附图说明
[0029]图1为本专利技术的方法流程图。
具体实施方式
[0030]下面结合附图1对本专利技术做进一步说明。
[0031]一种基于Opencv的菲涅尔透镜中心定位方法,包括如下步骤:
[0032]a)利用高清彩色摄像机对铸压成型的亚克力板进行拍摄,得到具有RGB三通道的原始图像A,一块亚克力板上铸压制成N片菲涅尔透镜、1个位于亚克力板上方的横轴定位点及N个沿竖直方向间隔设置于亚克力板边缘的纵轴定位点,原始图像A中具有N+1个定位点。
[0033]b)对原始图像A进行预处理,得到预处理图像B。
[0034]c)为减少预处理图像B的噪声及细节层次,对预处理图像B进行高斯模糊得到滤波图像C。
[0035]d)将滤波图像C进行灰度变换得到单通道灰度图D。
[0036]e)将灰本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Opencv的菲涅尔透镜中心定位方法,其特征在于,包括如下步骤:a)利用彩色摄像机对铸压成型的亚克力板进行拍摄,得到具有RGB三通道的原始图像A,一块亚克力板上铸压制成N片菲涅尔透镜、1个位于亚克力板上方的横轴定位点及N个沿竖直方向间隔设置于亚克力板边缘的纵轴定位点,原始图像A中具有N+1个定位点;b)对原始图像A进行预处理,得到预处理图像B;c)对预处理图像B进行高斯模糊得到滤波图像C;d)将滤波图像C进行灰度变换得到单通道灰度图D;e)将灰度图D中像素值大于阈值T的像素点重置像素值为255,将灰度图D中像素值小于阈值T的像素点重置像素值为0,构成二值图像E;f)根据二值图像E寻找二值图像E中所有N+1个定位点轮廓和其它轮廓;g)N+1个定位点的轮廓面积大小分别为S1、S2、

、S
N
、S
N+1
,通过公式计算得到阈值下限S
min
,通过公式计算得到阈值上限S
max
,如果轮廓的面积在区间[S
min
,S
max
]内,则保留该轮廓的信息,如果轮廓的面积不在区间[S
min
,S
max
]内则剔除该轮廓,得到保留下的轮廓信息为N+1个定位点的轮廓信息,剔除掉的轮廓信息为其他轮廓信息;h)获取N+1个定位点轮廓外接矩形信息,返回外接矩形左上角点的像素坐标(x
left
,y
left
)以及外接矩形的高h和宽w,将N+1个定位点轮廓根据外接矩形左上角点的纵轴像素坐标y
left
由小到大进行排序并标记,将排序好的N+1个定位点轮廓信息存储到列表中;i)计算N+1个定位点轮廓的重心像素坐标,第一个定位点轮廓的重心像素坐标为后N个定位点轮廓的重心像素坐标分别为j)以第一个定位点轮廓的重心像素坐标为用于确定N片菲涅尔透镜的横轴坐标,后N个定位点轮廓的重心像素坐标分别确定N片菲涅尔透镜的纵轴坐标,得到N片菲涅尔透镜的中心坐标从上至下依次为2.根据权利要求1所述的基于opencv的菲涅尔透镜中心定位方法,其特征在于:步骤b)中通过python图像库PIL增强原始图像A的亮度、色彩及对比度,得到预处理图像B。3.根据权利要求1所述的基于opencv的菲涅尔透镜中心定...

【专利技术属性】
技术研发人员:庞少鹏李家豪李广良
申请(专利权)人:齐鲁工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1