OpenCV - Resumen "Procesamiento de imágenes-2"

1. Gradiente de imagen-Operador Sobel

dst = cv2.Sobel(src, ddepth, dx, dy, ksize)
  • d depth: La profundidad de la imagen. La profundidad de la imagen de salida (puede entenderse como un tipo de datos), -1 significa la misma profundidad que la imagen original.
  • dx y dy representan las direcciones horizontal y vertical, respectivamente. Cuando la combinación es dx=1, dy=0, encuentra la primera derivada en la dirección x, y cuando la combinación es dx=0, dy=1, encuentra la primera derivada en la dirección y (si es 1 al mismo tiempo). tiempo, por lo general no puede obtener el resultado que desea)
  • ksize es el tamaño del operador Sobel. Parámetro opcional) El tamaño del operador Sobel debe ser 1, 3, 5 o 7, el valor predeterminado es 3. Al calcular las derivadas de primer orden en la dirección X y en la dirección Y, los núcleos de convolución son:
  • escala: (parámetro opcional) el factor de escala para ampliar el valor obtenido por el cálculo del gradiente, el efecto generalmente hace que el mapa de gradiente sea más brillante, el valor predeterminado es 1
  • delta: (parámetro opcional) antes de almacenar la imagen de destino en una matriz multidimensional, puede aumentar el valor de cada píxel por delta, el valor predeterminado es 0
  • borderType: (parámetro opcional) determina cómo se procesan los píxeles del borde cuando la imagen se filtra (enrevesada), el valor predeterminado es BORDER_DEFAULT

2. Gradiente de imagen-Operador de Scharr (operador de Scharr)

El operador scharr es una mejora del operador sobel.

3. Operador gradiente-laplaciano de imagen

Se puede entender que el operador se utiliza para encontrar el borde

4. Detección de bordes astutos

Detección de bordes astutos

    1.    使用高斯滤波器,以平滑图像,滤除噪声。
      
    1.    计算图像中每个像素点的梯度强度和方向。
      
    1.    应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。
      
    1.    应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。
      
    1.    通过抑制孤立的弱边缘最终完成边缘检测。
      
img=cv2.imread("lena.jpg",cv2.IMREAD_GRAYSCALE)

v1=cv2.Canny(img,80,150)
v2=cv2.Canny(img,50,100)

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

5. Pirámide de imágenes

5.1 Pirámide de Gauss

Upsampling es agrandar el gráfico y downsampling es reducir el gráfico.

up=cv2.pyrUp(img)
up_down=cv2.pyrDown(up)
cv_show(img-up_down,'img-up_down')

5.2 Pirámide laplaciana

down=cv2.pyrDown(img)
down_up=cv2.pyrUp(down)
l_1=img-down_up
cv_show(l_1,'l_1')

6. Esquema de la imagen

Modo cv2.findContours(img,mode,method)
: modo de recuperación de contorno

  • RETR_EXTERNAL: recupera solo los contornos más externos;
  • RETR_LIST: recupera todos los contornos y los guarda en una lista enlazada;
  • RETR_CCOMP: recuperar todos los contornos y organizarlos en dos capas: la capa superior es el límite exterior de cada parte, la segunda capa es el límite de la cavidad;
  • RETR_TREE: recupera todos los contornos y reconstruye toda la jerarquía de contornos anidados;

método: método de aproximación de contorno

  • CHAIN_APPROX_NONE: los contornos se generan como códigos de cadena de Freeman, todos los demás métodos generan polígonos (secuencias de vértices).
  • CHAIN_APPROX_SIMPLE: Comprime partes horizontales, verticales y oblicuas, es decir, la función conserva solo sus partes finales.

Supongo que te gusta

Origin blog.csdn.net/guoguozgw/article/details/128810048
Recomendado
Clasificación