OpenCV - Opérateur Scharr

Scharr est également utilisé pour détecter les secondes dérivées d'une image dans les directions horizontale et verticale. Vous pouvez effectuer une opération scharr sur une image en utilisant la méthodescharr(). Voici la syntaxe de cette méthode -

Scharr(src, dst, ddepth, dx, dy)

Cette méthode accepte les paramètres suivants -

  • src - Un objet de la classe Mat représentant l'image source (entrée).

  • dst - Un objet de la classe Mat représentant l'image de destination (sortie).

  • ddepth - Une variable entière représentant la profondeur de l'image (-1)

  • dx- Une variable entière représentant la dérivée x. (0 ou 1)

  • dy- Une variable entière représentant la dérivée y. (0 ou 1)

Exemple

Le programme suivant montre comment appliquer scharr à une image donnée.

import org.opencv.core.Core;
import org.opencv.core.Mat;

import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class ScharrTest {

   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 Box Filter effect on the Image
      Imgproc.Scharr(src, dst, Imgproc.CV_SCHARR, 0, 1);

      // Writing the image
      Imgcodecs.imwrite("E:/OpenCV/chap16/scharr_output.jpg", dst);

      System.out.println("Image processed");
   }
}

Supposons que ce qui suit est l'image d'entrée scharr_input.jpg spécifié dans le programme ci-dessus.

Production

En l'exécutant, vous obtiendrez la sortie suivante -

Image Processed

Si vous ouvrez le chemin spécifié, vous pouvez observer l'image de sortie comme suit -

Plus de dérivés scharr

En passant différentes valeurs au dernier aux paramètres (dx et dy) (entre 0 et 1), vous obtiendrez des sorties différentes -

// Applying scharr on the Image
Imgproc.Scharr(src, dst, -1, 1, 1);

Voici un tableau répertoriant différentes valeurs pour les variables dx et dy de la méthode scharr() et leurs résultats respectifs.

Dérivé X Dérivé Y Production
0 1
1 0