detección de bordes caramelo detallada en OpenCV

detección de bordes Procedimiento General caramelo

  1. El uso de un filtro gaussiano para suavizar la imagen, filtrado de ruido.

  2. Cálculo de la intensidad de gradiente y la dirección de cada píxel en la imagen.

  3. La aplicación de un valor que no sea máximo (Non-supresión máxima) la inhibición, para eliminar la respuesta espurio causado por la detección de bordes.

  4. La aplicación de detección de doble umbral (doble Umbral) para determinar el borde real y potencial.

  5. Al inhibir el borde finalizado detectar un borde débil aislado.

1, un filtro de Gauss
Aquí Insertar imagen Descripción

2, la dirección del gradiente y Aquí Insertar imagen Descripción
3, la supresión no maximal
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
4, de detección de umbral dual
Aquí Insertar imagen Descripción
siguiente significado breve común de los parámetros de esta función cv2.Candy ()

cv2.Canny(src, thresh1, thresh2,edges,apertureSize,L2gradient) 

src:输入原图(必须为单通道图)
thresh1:minVal
thresh2:maxVal
apertureSize:Sobel算子的大小
L2gradient:bool类型;
true: 使用更精确的L2范数进行计算(即两个方向的倒数的平方和再开放)
false:使用L1范数(直接将两个方向导数的绝对值相加)
gray=cv2.imread("lena.jpg",cv2.IMREAD_GRAYSCALE)
img=cv2.GaussianBlur(gray,(3,3),0)
v1=cv2.Canny(img,80,150)
v2=cv2.Canny(img,50,100)

res = np.hstack((v1,v2))
cv_show(res,'res')

Aquí Insertar imagen Descripción

gray=cv2.imread("car.png",cv2.IMREAD_GRAYSCALE)
img=cv2.GaussianBlur(gray,(3,3),0)
v1=cv2.Canny(img,120,250)
v2=cv2.Canny(img,50,100)

res = np.hstack((v1,v2))
cv_show(res,'res')

Aquí Insertar imagen Descripción

Publicado 27 artículos originales · alabanza ganado 20 · vistas 1550

Supongo que te gusta

Origin blog.csdn.net/qq_39507748/article/details/104542565
Recomendado
Clasificación