OpenCV - Seuil simple

Le seuillage est une méthode de segmentation d'image, en général, il est utilisé pour créer des images binaires. Le seuillage est de deux types, à savoir le seuillage simple et le seuillage adaptatif.

Seuils simples

Dans une opération de seuillage simple, les pixels dont les valeurs sont supérieures à la valeur de seuil spécifiée se voient attribuer une valeur standard.

Vous pouvez effectuer une opération de seuil simple sur une image en utilisant la méthode threshold() du Imgproc class, Voici la syntaxe de cette méthode.

threshold(src, dst, thresh, maxval, type)

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).

  • thresh - Une variable de type double représentant la valeur seuil.

  • maxval - Une variable de type double représentant la valeur à donner si la valeur du pixel est supérieure à la valeur seuil.

  • type - Une variable de type entier représentant le type de seuil à utiliser.

Exemple

Le programme suivant montre comment effectuer une opération de seuillage simple sur une image dans OpenCV.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class Thresh {
   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/chap14/thresh_input.jpg";
      Mat src = Imgcodecs.imread(file);

      // Creating an empty matrix to store the result
      Mat dst = new Mat();
      Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);

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

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

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

Production

Lors de l'exécution du programme, vous obtiendrez la sortie suivante -

Image Processed

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

Autres types de seuillage simple

En plus de THRESH_BINARYopération démontrée dans l'exemple précédent, OpenCV répond à divers autres types d'opérations de seuil. Tous ces types sont représentés par des champs statiques prédéfinis (valeurs fixes) deImgproc classe.

Vous pouvez choisir le type d'opération de seuil dont vous avez besoin, en passant sa valeur prédéfinie respective au paramètre nommé type du threshold() méthode.

Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);

Voici les valeurs représentant divers types d'opérations de seuil et leurs sorties respectives.

Fonctionnement et description Production
THRESH_BINARY
THRESH_BINARY_INV
THRESH_TRUNC
THRESH_TOZERO
THRESH_TOZERO_INV