再识别银行卡的项目中运用到了sobel算子进行梯度检测:
#只对X进行检测
gradX = cv2.Sobel(tophat, ddepth=cv2.CV_32F, dx=1, dy=0, #ksize=-1相当于用3*3的
ksize=-1)
#加绝对值,白到黑,黑到白的边界都可以检测到
gradX = np.absolute(gradX)
#将边界归一化处理,看的更清楚
(minVal, maxVal) = (np.min(gradX), np.max(gradX))
gradX = (255 * ((gradX - minVal) / (maxVal - minVal)))
#转化为8位无符号数
gradX = gradX.astype("uint8")