Java-二进制图像像素索引

Java-二进制图像像素索引,java,image-processing,Java,Image Processing,如何判断生成的二进制图像是0索引还是1索引 我已经做了一个程序,它读取一个图像,生成一个二进制图像,并对图像执行一些其他功能。然而,我想知道,如何判断二值图像中的像素值是哪个“索引” 这是怎么做到的 是否有一个简单的内置函数(例如image.getRGB();)可以被调用来确定这一点?我不知道0或1索引是什么意思,但这里有一些事实 buffereImage是一种通用图像,因此像素从坐标(0,0)开始 如果要处理来自此图像的数组,则左上角将位于索引0中(除非另有指定) image.getRGB(0

如何判断生成的二进制图像是0索引还是1索引

我已经做了一个程序,它读取一个图像,生成一个二进制图像,并对图像执行一些其他功能。然而,我想知道,如何判断二值图像中的像素值是哪个“索引”

这是怎么做到的


是否有一个简单的内置函数(例如
image.getRGB();
)可以被调用来确定这一点?

我不知道0或1索引是什么意思,但这里有一些事实

buffereImage
是一种通用图像,因此像素从坐标(0,0)开始

如果要处理来自此图像的数组,则左上角将位于索引0中(除非另有指定)

image.getRGB(0,0,image.getWidth(),image.getHeight(),数组,0,image.getWidth())

buffereImage
本机不支持1 BPP图像,但可以通过带有Colormodel的打包模式或2索引调色板。没有例子我就说不出你有哪一个

不管内部格式如何,不同的getRGB()方法应始终为每个像素返回一个值,为每个值返回一个像素。请注意,完整不透明度值(0xFF000000,-16777216)也将包含在结果中

例如


我不知道你用0或1索引是什么意思,但这里有一些事实

buffereImage
是一种通用图像,因此像素从坐标(0,0)开始

如果要处理来自此图像的数组,则左上角将位于索引0中(除非另有指定)

image.getRGB(0,0,image.getWidth(),image.getHeight(),数组,0,image.getWidth())

buffereImage
本机不支持1 BPP图像,但可以通过带有Colormodel的打包模式或2索引调色板。没有例子我就说不出你有哪一个

不管内部格式如何,不同的getRGB()方法应始终为每个像素返回一个值,为每个值返回一个像素。请注意,完整不透明度值(0xFF000000,-16777216)也将包含在结果中

例如


什么是“二进制图像”?您使用的是什么类或数据结构?二进制,如纯黑白图像中的像素为黑白。当您“读入图像”时,它是如何存储的?这应该可以回答您的问题“是否有一个简单的内置函数(例如image.getRGB();”)。一旦你将其分类,手动创建一个小图像,将其中一个像素设置为黑色,其余像素设置为白色,你可以非常快速地确定如何设置索引,例如通过打印索引和值。我的意思是,“二进制图像”是指数组还是
缓冲图像
或其他什么?为什么不发布一段代码?你的意思是“如何确定图像中像素的索引”还是“如何确定给定像素是黑色还是白色”?什么是“二进制图像”?您使用的是什么类或数据结构?二进制,如纯黑白图像中的像素为黑白。当您“读入图像”时,它是如何存储的?这应该可以回答您的问题“是否有一个简单的内置函数(例如image.getRGB();”)。一旦你将其分类,手动创建一个小图像,将其中一个像素设置为黑色,其余像素设置为白色,你可以非常快速地确定如何设置索引,例如通过打印索引和值。我的意思是,“二进制图像”是指数组还是
缓冲图像
或其他什么?你为什么不发布一个代码片段?你的意思是“如何确定图像中像素的索引”还是“如何确定给定像素是黑色还是白色”?
    BufferedImage image = new BufferedImage(16, 16, BufferedImage.TYPE_BYTE_BINARY);

    image.setRGB(0, 0, 0xFFFFFFFF);
    image.setRGB(1, 0, 0xFF000000);
    image.setRGB(0, 1, 0xFF000000);
    image.setRGB(1, 1, 0xFFFFFFFF);

    System.out.println(image.getRGB(0, 0));
    System.out.println(image.getRGB(1, 0));
    System.out.println(image.getRGB(0, 1));
    System.out.println(image.getRGB(1, 1));

    int[] array = image.getRGB(0, 0, image.getWidth(), image.getHeight(), null, 0, image.getWidth());
    System.out.println(array[0]); // at (0,0)
    System.out.println(array[1]); // at (1,0)
    System.out.println(array[16]); // at (0,1)
    System.out.println(array[17]); // at (1,1)