gpt4 book ai didi

java - java.awt.image.BufferedImage 的二值化规则是什么

转载 作者:行者123 更新时间:2023-11-30 11:10:35 30 4
gpt4 key购买 nike

我可以使用这个代码

BufferedImage image = ImageIO.read(new File("toolbar.png"));
BufferedImage grayImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
Graphics graphics = grayImage.getGraphics();
graphics.drawImage(image, 0, 0, null);
graphics.dispose();

将 BufferedImage 从 TYPE_3BYTE_BGR 转换为 TYPE_3BYTE_BGR。

例如,输入:

enter image description here

输出:

enter image description here

我知道彩色像素根据计算规则变成白色像素或黑色像素。它是什么,我可以做些什么来调整它?提前感谢您的帮助。

最佳答案

上面代码中的转换是一种隐式转换,因为输入图像 (RGB) 具有比目标图像(二进制索引颜色)更多的颜色。

这种转换为二元颜色的“规则”可以简单地描述为“在目标中选择最接近输入颜色的颜色”。由于您的颜色只有黑色和白色,所有 R、G 和 B 平均值低于 50% 的颜色都将变为黑色,其余颜色将变为白色。没有办法直接“调整”它。

但是,您可以直接控制阈值或根据输入计算阈值,以获得更好的图像。参见示例 this blog举个例子。

关于java - java.awt.image.BufferedImage 的二值化规则是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654161/

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