【问题标题】:How to get the pixel values of a Black and white image in java如何在java中获取黑白图像的像素值
【发布时间】:2019-10-13 17:24:54
【问题描述】:

我是图像处理的新手。我正在尝试获取黑白图像的像素值。我在这里搜索过,但找不到正确的方法。我看到了很多关于 RGB 值的帖子,但我正在寻找一个具有特定黑白值的样本,我认为这将是一个 M x N x 1 数组。我想知道如何在java中实现这一点。

【问题讨论】:

  • RGB 值有什么问题? rgb(0,0,0) 用于黑色,rgb(255,255,255) 用于白色。
  • 在 StackOverflow 上提问之前请阅读本节:stackoverflow.com/help/mcve。您的问题太含糊,未经编辑无法回答。

标签: java image-processing


【解决方案1】:

您可以用 RGB 值表示黑白。 rgb(0,0,0) 用于黑色,rgb(255,255,255) 和灰色阴影:rgb(240,240,240) , rgb(128,128,128) etc

如果您想将颜色转换为灰度,请参阅post

【讨论】:

    【解决方案2】:

    通常在 Java 中,您使用 BufferedImage 来表示图像。 BufferedImage 包含一个长度为 Width x Height X Channels(图像尺寸)的一维数组。要访问像素值,一个非常简单的解决方案是使用 Raster:

    BufferedImage image = ... // A gray level or binary image
    WritableRaster wr = image.getRaster() ;
    for (int y=0 ; y < image.getHeight() ; y++)
        for (int x=0 ; x < image.getWidth() ; x++)
            int pixelvalue = wr.getSample(x, y, 0) ;
    

    pixelvalue会根据图像编码在不同的范围内(image.getType()):

    • TYPE_BYTE_BINARY,范围 = [0,1],黑色 = 0,白色 = 1。
    • TYPE_BYTE_GRAY,范围 = [0,255],黑色 = 0,白色 = 255。
    • TYPE_USHORT_GRAY,范围 = [0,65535],黑色 = 0,白色 = 65535。

    访问像素的最快方法是使用 DataBuffer,但它有点复杂。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-24
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 2018-10-18
      • 2017-11-13
      相关资源
      最近更新 更多