En este artículo se discute una Operación Morfológica llamada Cierre .
- Ayuda a reducir el ruido interno presente dentro de una imagen.
- En este artículo se elabora otro operador llamado cierre que es justo lo contrario de Apertura y aplica dilatación seguida de erosión .
- Al igual que el operador Apertura, también utiliza un elemento estructurante, pero se utiliza para eliminar pequeños agujeros en lugar de pertusiones.
Sintaxis:
morphologyEx (src, dst, op, kernel, ancla, iteraciones, borderType, borderValue)
Parámetros:
- src: Es la imagen de entrada.
- dst: Es la imagen de salida.
- op: Tipo de operación morfológica.
- Núcleo: Elemento estructurante utilizado para el Cierre.
- ancla: Posición del ancla en el interior del elemento estructurante. El valor predeterminado es [-1, -1} que significa posición como el centro del elemento de estructuración.
- iteraciones: Número de veces que se aplica Closing.
- borderType: Tipo de borde ( BORDER_CONSTANT, BORDER_REPLICATE, etc.)
- borderValue: valor del borde
- Devolución: imagen de salida (objeto Mat)
La operación de cierre viene dada por la expresión:
- La expresión representa el hecho de que A es una subimagen de A. B. _
- Este operador se utiliza para eliminar pequeños agujeros de la imagen.
- También ayuda a suavizar los contornos y la fusión de grietas estrechas y golfos largos y delgados.
A continuación se muestra el programa que demuestra el Operador Morfológico de Cierre:
C++
// C++ program for demonstrating the // closing morphological operator // For drawing shapes #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace cv; using namespace std; // Function to demonstrate the // closing morphological operator void closingMorphological() { // Reading the Image Mat image = imread( "C:/Users/harsh/Downloads/geeks.png", IMREAD_GRAYSCALE); // Check if the image is // created successfully if (!image.data) { cout << "Could not open or " << "find the image\n"; return 0; } int morph_size = 2; // Create structuring element Mat element = getStructuringElement( MORPH_RECT, Size(2 * morph_size + 1, 2 * morph_size + 1), Point(morph_size, morph_size)); Mat output; // Closing morphologyEx(image, output, MORPH_CLOSE, element, Point(-1, -1), 2); // Displays the source and // the closing image formed imshow("source", image); imshow("Closing", output); waitKey(); } // Driver Code int main(int argc, char** argv) { // Function Call closingMorphological(); return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por Captain_JackSparrow y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA