python - 在 Python 中将图像转换为黑白与将图像转换为单色(灰度)
问题描述
我有下面的图片filename = '1.png'
:
每当我尝试使用下面的代码将其转换为单色时,图像与输入图像相同。
image_counter = 1
path = 'sample/' + str(image_counter) + '.png'
image = Image.open(path).convert('L') # Convert it into monochrome.
image = Image.fromarray(image)
image.save('monochrome.png')
单色输出:
但是当我将它转换为黑白图像时,输出是不同的,并且不会产生直线边框。
image_counter = 1
path = 'sample/' + str(image_counter) + '.png'
image = Image.open(path).convert('1') # Convert it into black and white.
image = Image.fromarray(image)
image.save('blackandwhite.png')
放大后,您可以真正观察到不直的边界。
为什么?
解决方案
将灰度(“L”)或“RGB”图像转换为双电平(模式“1”)图像的默认方法使用 Floyd-Steinberg 抖动来近似原始图像亮度级别。如果抖动为 NONE,则所有非零值都设置为 255(白色)。
抖动方法,用于从模式“RGB”转换为“P”或从“RGB”或“L”转换为“1”。可用方法为 NONE 或 FLOYDSTEINBERG(默认)。
推荐阅读
- python - 解包 2d 元组列表
- android - 从其他视图的位置动画/翻译视图
- android - 如何发送到 Activity Apps Permission Monitor Android
- java - Java 无法创建虚拟机等错误
- loops - 通过 ec2_instance_facts 结果的 Ansible 循环 - 差异输出调试与 set_fact
- regression - 如何获得 Math.NET 多元回归中每个系数的 t 统计量
- ios - Swift - 无法将值成功传递给接下来呈现的 ViewController
- angular - minLength 和 maxLength 验证器在 Angular7 反应形式中不起作用
- python - 尝试使用 ExchangeLib 在过去 24 小时内返回电子邮件
- python - 从比较关系中,从文件中选择特定数据并将其写入列表