Rumah >Java >javaTutorial >Bagaimana untuk mendapatkan piksel (nilai RGB) imej menggunakan perpustakaan OpenCV Java?

Bagaimana untuk mendapatkan piksel (nilai RGB) imej menggunakan perpustakaan OpenCV Java?

WBOY
WBOYke hadapan
2023-08-19 12:57:031925semak imbas

Imej digital disimpan sebagai susunan 2D piksel, yang merupakan elemen terkecil imej digital.

Setiap piksel mengandungi nilai alfa, merah, hijau dan biru Setiap nilai warna berjulat dari 0 hingga 255 dan menduduki 8 bit (2^8).

Nilai ARGB disimpan dalam 4 bait memori dalam susunan yang sama (kanan ke kiri), nilai biru dalam bit 0-7, nilai hijau dalam bit 8-15, nilai merah dalam bit 16 -23, alpha Nilai dalam bit 24-31.

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

Dapatkan semula kandungan piksel (nilai ARGB) imej -

Untuk mendapatkan nilai piksel daripada imej -

  • Gelung setiap piksel dalam imej. iaitu jalankan gelung bersarang melalui ketinggian dan lebar imej.

  • Gunakan kaedah getRGB() untuk mendapatkan nilai piksel bagi setiap titik.

  • Semerta objek Warna dengan menghantar nilai piksel sebagai parameter.

  • Dapatkan nilai merah, hijau dan biru menggunakan kaedah getRed(), getGreen() dan getBlue().

kaedah getBlue() masing-masing.

Contoh

Berikut ialah contoh dalam Java yang membaca kandungan setiap piksel imej dan menulis nilai RGB ​​pada fail −

rreee

Output

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");
   }
}

Anda juga boleh menggunakan operator anjakan untuk mendapatkan semula nilai RGB daripada piksel

Untuk melakukan ini,

  • anjak ke kanan, gerakkan kedudukan permulaan setiap warna ke kedudukan yang sepadan, contohnya 24 untuk alfa dan 24 untuk merah 16, dsb.

  • Operasi anjakan yang betul boleh menjejaskan nilai saluran lain Untuk mengelakkan ini, anda perlu melakukan operasi bitwise dengan 0Xff. Ini menutup pembolehubah, menyimpan hanya 8 bit terakhir dan mengabaikan semua yang lain.

RGB values at each pixel are stored in the specified file

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan piksel (nilai RGB) imej menggunakan perpustakaan OpenCV Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam