Módulos básicos de OpenCV
OpenCV es una biblioteca de visión por computadora de gran potencia que contiene varios módulos, cada uno centrado en diferentes funciones.
OpenCV está compuesto por múltiples módulos, cada uno de los cuales ofrece diferentes funciones.
A continuación se presentan algunos de los módulos más comunes en OpenCV:
- cv2.core: Módulo principal, que incluye las funciones básicas del procesamiento de imágenes (como la representación y operación de matrices de imágenes).
- cv2.imgproc: Módulo de procesamiento de imágenes, que proporciona diversas operaciones sobre imágenes, como filtrado, transformaciones de imágenes, operaciones morfológicas, etc.
- cv2.highgui: Módulo de interfaz gráfica de usuario, que ofrece funciones para mostrar imágenes y videos.
- cv2.video: Proporciona funciones de procesamiento de video, como captura de video, procesamiento de flujos de video, etc.
- cv2.features2d: Módulo de detección y coincidencia de características, que incluye detección de esquinas, bordes, puntos clave, etc.
- cv2.ml: Módulo de aprendizaje automático, que ofrece varios algoritmos de aprendizaje automático para clasificación de imágenes, regresión, agrupamiento, etc.
- cv2.calib3d : Módulo de calibración de cámaras y reconstrucción 3D.
- cv2.objdetect : Módulo de detección de objetos.
- cv2.dnn : Módulo de aprendizaje profundo.
1. Módulo Core
Funciones:Proporciona las funciones centrales de OpenCV, incluidas estructuras de datos básicas, operaciones de matrices, funciones de dibujo, etc.
Clases y funciones principales:
-
Mat:Estructura de datos básica en OpenCV para almacenar imágenes y matrices.
-
Scalar:Se utiliza para representar colores o valores de píxeles.
-
Point、Size、Rect:Se utiliza para representar puntos, tamaños y rectángulos.
-
Funciones de dibujo básicas:
cv.line()、cv.circle()、cv.rectangle()、cv.putText()etc.
Escenarios de aplicación:
-
Operaciones básicas de imágenes (como crear, copiar, recortar).
-
Dibujar formas geométricas y texto.
2. Módulo Imgproc
Funciones:Proporciona funciones de procesamiento de imágenes, incluyendo filtrado de imágenes, transformaciones geométricas, conversión de espacios de color, etc.
Clases y funciones principales:
-
Filtrado de imágenes:
cv.blur()、cv.GaussianBlur()、cv.medianBlur()etc. -
Transformaciones geométricas:
cv.resize()、cv.warpAffine()、cv.warpPerspective()etc. -
Conversión de espacios de color:
cv.cvtColor()(como BGR a escala de grises, BGR a HSV). -
Umbralización:
cv.threshold()、cv.adaptiveThreshold()。 -
Detección de bordes:
cv.Canny()、cv.Sobel()、cv.Laplacian()。
Escenarios de aplicación:
-
Suavizado, nitidez y detección de bordes de imágenes.
-
Escalado, rotación y transformación afín de imágenes.
-
Binarización de imágenes, conversión de espacios de color.
3. Módulo HighGUI
Funciones:Proporciona funciones de GUI de alto nivel y E/S de medios, para la visualización e interacción de imágenes.
Clases y funciones principales:
-
Visualización de imágenes:
cv.imshow()、cv.waitKey()、cv.destroyAllWindows()。 -
Captura de video:
cv.VideoCapture()、cv.VideoWriter()。 -
Eventos de ratón y teclado:
cv.setMouseCallback()。
Escenarios de aplicación:
-
Mostrar imágenes y videos.
-
Capturar desde cámara o archivos de video.
-
Manejar la interacción del usuario (como clics del ratón, entrada por teclado).
4. Módulo Video
Funciones:Proporciona funciones de análisis de video, incluida la detección de movimiento, seguimiento de objetos, etc.
Clases y funciones principales:
-
Sustracción de fondo:
cv.createBackgroundSubtractorMOG2()、cv.createBackgroundSubtractorKNN()。 -
Flujo óptico:
cv.calcOpticalFlowPyrLK()。 -
Seguimiento de objetos:
cv.TrackerKCF_create()、cv.TrackerMOSSE_create()。
Escenarios de aplicación:
-
Detección de movimiento en video.
-
Seguimiento de objetos (como seguimiento de peatones, vehículos).
5. Módulo Calib3d
Funciones:Proporciona funciones de calibración de cámaras y reconstrucción 3D.
Clases y funciones principales:
-
Calibración de cámara:
cv.calibrateCamera()、cv.findChessboardCorners()。 -
Reconstrucción 3D:
cv.solvePnP()、cv.reprojectImageTo3D()。
Escenarios de aplicación:
-
Calibración de cámara (para eliminar la distorsión del lente).
-
Reconstrucción 3D (como recuperar información 3D a partir de imágenes 2D).
6. Módulo Features2d
Funciones:Proporciona funciones de detección y descripción de características.
Clases y funciones principales:
-
Detección de características:
cv.SIFT_create()、cv.ORB_create()、cv.SURF_create()。 -
Coincidencia de características:
cv.BFMatcher()、cv.FlannBasedMatcher()。 -
Dibujo de puntos clave:
cv.drawKeypoints()。
Escenarios de aplicación:
-
Extracción y coincidencia de características de imágenes.
-
Unión de imágenes (stitching), reconocimiento de objetos.
7. Módulo Objdetect
Funciones:Proporciona funciones de detección de objetos.
Clases y funciones principales:
-
Clasificador de características Haar:
cv.CascadeClassifier()(para detección de rostros). -
Clasificador de características HOG:Para detección de peatones.
Escenarios de aplicación:
-
Detección de rostros, detección de peatones.
8. Módulo ML
Funciones:Proporciona algoritmos de aprendizaje automático.
Clases y funciones principales:
-
Máquina de vectores de soporte (SVM):
cv.ml.SVM_create()。 -
Agrupamiento por K-medias (K-Means):
cv.kmeans()。 -
Red neuronal artificial (ANN):
cv.ml.ANN_MLP_create()。
Escenarios de aplicación:
-
Clasificación de imágenes, análisis de agrupamiento.
9. Módulo DNN
Funciones:Proporciona funciones de aprendizaje profundo, compatible con la carga y ejecución de modelos de aprendizaje profundo preentrenados.
Clases y funciones principales:
-
Carga de modelos:
cv.dnn.readNetFromCaffe()、cv.dnn.readNetFromTensorflow()。 -
Propagación hacia adelante:
net.forward()。
Escenarios de aplicación:
-
Clasificación de imágenes, detección de objetos, segmentación semántica.
10. Otros módulos
-
Flann:Búsqueda rápida de vecinos más cercanos aproximados.
-
Photo:Restauración de imágenes y eliminación de ruido.
-
Stitching:Unión de imágenes (stitching).
-
Shape:Coincidencia de formas y cálculo de distancias.