OpenCV - Operador Sobel
Utilizando el sobel operation, puede detectar los bordes de una imagen tanto en dirección horizontal como vertical. Puede aplicar la operación de sobel en una imagen usando el métodosobel(). A continuación se muestra la sintaxis de este método:
Sobel(src, dst, ddepth, dx, dy)
Este método acepta los siguientes parámetros:
src - Un objeto de la clase Mat que representa la imagen de origen (entrada).
dst - Un objeto de la clase Mat que representa la imagen de destino (salida).
ddepth - Una variable entera que representa la profundidad de la imagen (-1)
dx- Una variable entera que representa la derivada x. (0 o 1)
dy- Una variable entera que representa la derivada y. (0 o 1)
Ejemplo
El siguiente programa demuestra cómo realizar la operación Sobel en una imagen determinada.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class SobelTest {
public static void main(String args[]) {
// Loading the OpenCV core library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// Reading the Image from the file and storing it in to a Matrix object
String file ="E:/OpenCV/chap16/sobel_input.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
// Applying sobel on the Image
Imgproc.Sobel(src, dst, -1, 1, 1);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap16/sobel_output.jpg", dst);
System.out.println("Image processed");
}
}
Suponga que la siguiente es la imagen de entrada sobel_input.jpg especificado en el programa anterior.
Salida
Al ejecutar el programa, obtendrá el siguiente resultado:
Image Processed
Si abre la ruta especificada, puede observar la imagen de salida de la siguiente manera:
Variantes sobel
Al pasar diferentes valores al último a los parámetros (dx y dy) (entre 0 y 1), obtendrá diferentes salidas:
// Applying sobel on the Image
Imgproc.Sobel(src, dst, -1, 1, 1);
La siguiente tabla enumera varios valores para las variables dx y dy del método Sobel() y sus respectivos productos.
Derivado X | Derivado de Y | Salida |
---|---|---|
0 | 1 | |
1 | 0 | |
1 | 1 |