Heim > Java > javaLernprogramm > Wie erhalte ich die Pixel (RGB-Werte) eines Bildes mithilfe der Java OpenCV-Bibliothek?

Wie erhalte ich die Pixel (RGB-Werte) eines Bildes mithilfe der Java OpenCV-Bibliothek?

WBOY
Freigeben: 2023-08-19 12:57:03
nach vorne
1935 Leute haben es durchsucht

Digitale Bilder werden als 2D-Pixel-Arrays gespeichert, die die kleinsten Elemente digitaler Bilder sind.

Jedes Pixel enthält Alpha-, Rot-, Grün- und Blauwerte. Jeder Farbwert reicht von 0 bis 255 und belegt 8 Bit (2^8).

ARGB-Werte werden in 4 Bytes Speicher in der gleichen Reihenfolge (von rechts nach links) gespeichert, blaue Werte in den Bits 0-7, grüne Werte in den Bits 8-15, rote Werte in den Bits 16 -23, Alpha Der Wert steht in den Bits 24-31.

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

Den Pixelinhalt (ARGB-Werte) eines Bildes abrufen –

So erhalten Sie die Pixelwerte eines Bildes –

  • Durchlaufen Sie jedes Pixel im Bild. d. h. eine verschachtelte Schleife durch die Höhe und Breite des Bildes ausführen.

  • Verwenden Sie die Methode getRGB(), um den Pixelwert jedes Punkts abzurufen.

  • Instanziieren Sie ein Farbobjekt, indem Sie den Pixelwert als Parameter übergeben.

  • Erhalten Sie rote, grüne und blaue Werte mit den Methoden getRed(), getGreen() und getBlue().

getBlue()-Methode bzw.

Beispiel

Das Folgende ist ein Beispiel in Java, das den Inhalt jedes Pixels des Bildes liest und die RGB-Werte in eine Datei schreibt −

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");
   }
}
Nach dem Login kopieren

Ausgabe

RGB values at each pixel are stored in the specified file
Nach dem Login kopieren

Sie können auch den Verschiebungsoperator verwenden, um die RGB-Werte aus den Pixeln abzurufen

Dazu

  • nach rechts verschieben und dabei die Startposition jeder Farbe an die entsprechende Position verschieben, zum Beispiel 24 für Alpha und 24 für Rot 16 usw.

  • Die rechte Verschiebungsoperation kann sich auf die Werte anderer Kanäle auswirken. Um dies zu vermeiden, müssen Sie eine bitweise UND-Verknüpfung mit 0Xff durchführen. Dadurch wird die Variable maskiert, nur die letzten 8 Bits bleiben erhalten und der Rest wird ignoriert.

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;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erhalte ich die Pixel (RGB-Werte) eines Bildes mithilfe der Java OpenCV-Bibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage