Maison > Java > javaDidacticiel > le corps du texte

Comment obtenir les pixels (valeurs RVB) d'une image à l'aide de la bibliothèque Java OpenCV ?

WBOY
Libérer: 2023-08-19 12:57:03
avant
1871 Les gens l'ont consulté

Les images numériques sont stockées sous forme de tableaux 2D de pixels, qui sont les plus petits éléments des images numériques.

Chaque pixel contient des valeurs alpha, rouge, verte et bleue. Chaque valeur de couleur va de 0 à 255 et occupe 8 bits (2 ^ 8).

Les valeurs ARGB sont stockées dans 4 octets de mémoire dans le même ordre (de droite à gauche), les valeurs bleues dans les bits 0 à 7, les valeurs vertes dans les bits 8 à 15, les valeurs rouges dans les bits 16 -23, alpha La valeur est dans les bits 24 à 31.

如何使用Java OpenCV库获取图像的像素(RGB值)?

Récupérer le contenu en pixels (valeurs ARVB) d'une image -

Pour obtenir les valeurs de pixels d'une image -

  • Parcourez chaque pixel de l'image. c'est-à-dire exécuter une boucle imbriquée sur la hauteur et la largeur de l'image.

  • Utilisez la méthode getRGB() pour obtenir la valeur en pixels de chaque point.

  • Instancier un objet Color en passant la valeur du pixel en paramètre.

  • Obtenez les valeurs rouge, verte et bleue en utilisant les méthodes getRed(), getGreen() et getBlue().

getBlue() respectivement.

Exemple

Ce qui suit est un exemple en Java qui lit le contenu de chaque pixel de l'image et écrit les valeurs RVB dans un fichier −

import java.io.File;
import java.io.FileWriter;
import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class GetPixels {
   public static void main(String args[])throws Exception {
      FileWriter writer = new FileWriter("D:\Images\pixel_values.txt");
      //Reading the image
      File file= new File("D:\Images\cat.jpg");
      BufferedImage img = ImageIO.read(file);
      for (int y = 0; y < img.getHeight(); y++) {
         for (int x = 0; x < img.getWidth(); x++) {
            //Retrieving contents of a pixel
            int pixel = img.getRGB(x,y);
            //Creating a Color object from pixel value
            Color color = new Color(pixel, true);
            //Retrieving the R G B values
            int red = color.getRed();
            int green = color.getGreen();
            int blue = color.getBlue();
            writer.append(red+":");
            writer.append(green+":");
            writer.append(blue+"");
            writer.append("\n");
            writer.flush();
         }
      }
      writer.close();
      System.out.println("RGB values at each pixel are stored in the specified file");
   }
}
Copier après la connexion

Output

RGB values at each pixel are stored in the specified file
Copier après la connexion

Vous pouvez également utiliser l'opérateur shift pour récupérer les valeurs RVB des pixels

Pour ce faire,

  • décalez vers la droite, en déplaçant la position de départ de chaque couleur vers la position correspondante, par exemple 24 pour alpha et 24 pour rouge 16, etc.

  • L'opération de décalage à droite peut affecter les valeurs des autres canaux. Pour éviter cela, vous devez effectuer une opération ET au niveau du bit avec 0Xff. Cela masque la variable, en ne gardant que les 8 derniers bits et en ignorant tout le reste.

int p = img.getRGB(x, y);
//Getting the A R G B values from the pixel value
int a = (p>>24)&0xff;
int r = (p>>16)&0xff;
int g = (p>>8)&0xff;
int b = p&0xff;
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal