标签:gray alt nbsp bsp 两种方法 检测 设置 inf 很多
在理解的过程中需要注意以下两点:
1.非极大抑制是回答这样一个问题:“当前的梯度值在梯度方向上是一个局部最大值吗?“。所以,要把当前位置的梯度值与梯度方向上两侧的梯度值进行比较。
2.梯度方向垂直于边缘方向。但实际上,我们只能得到C点邻域的8个点的值,而dTmp1和dTmp2并不在其中,要得到这两个值就需要对该两个点两端的已知灰度进行线性插值,也即根据图中的g1和g2对dTmp1进行插值,根据g3和g4对dTmp2进行插值,这要用到其梯度方向,这是Canny算法中要求解梯度方向矩阵Thita的原因。完成非极大值抑制后,会得到一个二值图像,非边缘的点灰度值均为0,可能为边缘的局部灰度极大值点可设置其灰度为128。检测结果还是包含了很多由噪声及其他原因造成的假边缘。因此还需要进一步的处理。
方法二:
import cv2 as cv import numpy as np img = cv.imread(‘lena.jpg‘, cv.IMREAD_GRAYSCALE) c = cv.Canny(img, 80, 150) cv.imshow(‘c‘, c) cv.waitKey(0) cv.destroyAllWindows()
其中, c = cv.Canny(img, 80, 150) 后面两个数字表示双阈值检测中的最大值和最小值,适当的调整,可以改变检测结果。
标签:gray alt nbsp bsp 两种方法 检测 设置 inf 很多
原文地址:https://www.cnblogs.com/missdx/p/12374255.html