gpt4 book ai didi

Java 初学者 : convert an image to a binary array

转载 作者:行者123 更新时间:2023-11-29 06:16:57 25 4
gpt4 key购买 nike

这就是我到目前为止所做的,我似乎无法走得更远,因为我不了解 RGB 上的按位运算

// Read from a file
File file = new File("src/a.gif");
image = ImageO.read(file);
int[] rgbarr = image.getRGB(0, 0, 13, 15, null, 0, 13);// image is 13*15
System.out.println(rgbarr.length);
for (int i : rgbarr)
{
System.out.println(i);
}

Output: was values such as -16777216 and -1 Because I've already made an image black and white just to ease my understanding

但在我们的例子中,让我们假设它只是随机图像,我如何将每个像素的普通 RGB 图像转换为二进制值(0 或 1)。

最佳答案

我打赌数组中的每个 int 都是一个压缩的 ARGB 值;

boolean [] output = new boolean[rgbarr.length];
for ( int i=0; i<rgbarr.length; ++i ) {
int a = (rgbarr[i] >> 24 ) & 0x0FF;
int r = (rgbarr[i] >> 16 ) & 0x0FF;
int g = (rgbarr[i] >> 8 ) & 0x0FF;
int b = (rgbarr[i] ) & 0x0FF;
output[i] = (0.30*r + 0.59*g + 0.11*b) > 127;
}

我选择的输出方程取自维基百科的亮度定义。只要系数加起来为 1,您就可以更改比例。

关于Java 初学者 : convert an image to a binary array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com