极值法
极值法首先需要获取光条纹横截面的灰度分布函数,并对其进行梯度运算。梯度值等于零处的像素点就是光条纹中横截面灰度极大值点,并将该点作为光条纹中心点。极值法要求激光条纹截面的灰度分布近似成理想高斯分布,由于受到环境噪声的影响,列车轮对表面的激光条纹灰度分布并不是理想的高斯分布,如果在这种情况下使用极值法提取光条纹中心线,得到的光条纹中心点有可能是局部的极值点,造成提取结果出现较大的误差。如图1-5左图所示,当光条的灰度分布成理想的高斯分布式,极值法可以快速的提取出激光光条的中心。在受到噪声干扰时,如图1-5右图所示,最大值已经不再原来的位置,而是到了噪声的地方,因此和真实的光条中心会存在Δo的误差。在信噪比较低的列车轮对的检测环境下,该方法难以适用于动态环境下列车轮对激光条纹中心线的提取。
python代码
# Maximum value method
import cv2
import numpy as np
import time
def Extreme(img, thresh):
row,col,chanel = img.shape
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
points= []
newimage