ホームページ  >  記事  >  Java  >  Java OpenCVライブラリを使用して画像のピクセル(RGB値)を取得するにはどうすればよいですか?

Java OpenCVライブラリを使用して画像のピクセル(RGB値)を取得するにはどうすればよいですか?

WBOY
WBOY転載
2023-08-19 12:57:031856ブラウズ

デジタル画像は、デジタル画像の最小要素であるピクセルの 2D 配列として保存されます。

各ピクセルにはアルファ、赤、緑、青の値が含まれており、各色の値の範囲は 0 ~ 255 で、8 ビット (2^8) を占めます。

ARGB 値は、同じ順序 (右から左) で 4 バイトのメモリに保存されます。青の値はビット 0 ~ 7、緑の値はビット 8 ~ 15、赤の値になります。ビット 16 ~ 23 ビットの値、24 ~ 31 ビットのアルファ値。

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

# 画像のピクセル コンテンツ (ARGB 値) を取得します -

画像からピクセル値を取得するには -

  • 画像内の各ピクセルをループします。つまり、画像の高さと幅に対してネストされたループを実行します。

  • getRGB() メソッドを使用して、各ポイントのピクセル値を取得します。

  • ピクセル値をパラメータとして渡して、Color オブジェクトをインスタンス化します。

  • getRed()、getGreen()、および getBlue() メソッドを使用して、赤、緑、および青の値を取得します。

getBlue() メソッドをそれぞれ呼び出します。 例

次は、画像の各ピクセルの内容を読み取り、RGB 値をファイルに書き込む Java の例です。 -

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

出力

RGB values at each pixel are stored in the specified file

シフト演算子を使用してピクセルから RGB 値を取得することもできます

これを行うには、

    #右にシフトして、各色の開始位置を対応する位置に移動します (アルファの場合は 24、赤の場合は 16 など)。
  • 右シフト演算は他のチャネルの値に影響を与える可能性があるため、これを回避するには、0Xff とのビット単位の AND 演算を実行する必要があります。これにより変数がマスクされ、最後の 8 ビットのみが保持され、残りはすべて無視されます。
  • うわー

以上がJava OpenCVライブラリを使用して画像のピクセル(RGB値)を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。