Maison > Java > javaDidacticiel > Lire l'image couleur en image en niveaux de gris à l'aide de la bibliothèque Java OpenCV

Lire l'image couleur en image en niveaux de gris à l'aide de la bibliothèque Java OpenCV

PHPz
Libérer: 2023-09-06 16:09:03
avant
964 Les gens l'ont consulté

La méthode

imread() de la classe Imgcodecs accepte une chaîne représentant le nom du fichier comme valeur du paramètre. Cette méthode lit le contenu du fichier spécifié dans un objet matrice et le renvoie. En utilisant cette méthode, vous pouvez lire le contenu de l'image.

En plus de cela, la classe Imgcodecs fournit également une autre variante de cette méthode qui accepte une valeur entière représentant un drapeau spécifiant le mode de lecture souhaité.

p>

Voici les différents champs de la classe Imgcodecs qui peuvent être utilisés comme valeurs d'indicateur.

  • IMREAD_COLOR - Si le drapeau est défini sur cette valeur, l'image chargée sera convertie en une image couleur BGR (Bleu Vert Rouge) à 3 canaux.

  • IMREAD_GRAYSCALE - Si l'indicateur est défini sur cette valeur, l'image chargée sera convertie en une image en niveaux de gris à canal unique.

  • IMREAD_LOAD_GDAL - Si l'indicateur est défini sur cette valeur, les images peuvent être chargées à l'aide du pilote GDAL.

  • IMREAD_ANYCOLOR - Si le drapeau est défini sur cette valeur, l'image sera lue dans n'importe quel format de couleur possible.

    li>
  • Imread_redOed_Color_2 ou,

    IMREAD_REDUBED_COLOR_4 ou,

    IMREAD_REDOBSE_COLOR_8 - Si l'indicateur est défini sur cette valeur, l'image est lue comme un BGR à trois canaux et que les dimensions de l'image sont par rapport au champ utilisé un zoom arrière à 1/2, 1/4 ou 1/8 de la taille originale de l'image.

  • IMREAD_REDUCED_GRAYSCALE_2 ou,

    IMREAD_REDUCED_GRAYSCALE_4 ou,

    IMREAD_REDUCED_GRAYSCALE_8 - Si l'indicateur est défini sur cette valeur, l'image est lue comme une image en niveaux de gris à canal unique et la taille de l'image est Zoom arrière relatif vers le image en utilisant le champ 1/2, 1/4 ou 1/8 de la taille originale.

  • IMREAD_UNCHANGED - Si l'indicateur est défini sur cette valeur, l'image chargée est renvoyée telle quelle.

Donc, si vous avez besoin de lire une image couleur en image en niveaux de gris, vous devez passer IMREAD_GRAYSCALE ou IMREAD_REDUCED_GRAYSCALE_X comme paramètre.

Exemple 1

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadAsGreyScale {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      //Reading the Image from the file
      Mat matrix = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
      //Writing the image
      Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix);
      System.out.println("Image re-Saved");
   }
}
Copier après la connexion

Entrée

使用Java OpenCV库将彩色图像读取为灰度图像

Sortie

使用Java OpenCV库将彩色图像读取为灰度图像

Exemple 2