You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中不使用OpenCV将PNG图片转换为0、1二进制形式

Python实现PNG转0/1二进制字符(无需OpenCV)

我们可以用Pillow(Python Imaging Library的活跃分支)完成这个需求,无需依赖OpenCV。下面是具体实现步骤:

1. 安装Pillow

先确保已安装Pillow库,未安装则执行:

pip install pillow

2. 实现代码

以下代码会将PNG转为灰度图,再根据阈值把每个像素转换为1(浅色)或0(深色),最终输出每行由0/1组成的字符串:

from PIL import Image

def png_to_binary(image_path, threshold=127):
    # 打开图片并转换为8位灰度模式(像素值0-255,0=黑,255=白)
    with Image.open(image_path) as img:
        gray_img = img.convert('L')
        width, height = gray_img.size
        binary_lines = []
        
        # 逐行处理像素
        for y in range(height):
            current_line = []
            for x in range(width):
                pixel_value = gray_img.getpixel((x, y))
                # 根据阈值判断,大于阈值则为1,否则为0
                current_line.append('1' if pixel_value > threshold else '0')
            binary_lines.append(''.join(current_line))
    
    return binary_lines

# 调用示例
if __name__ == "__main__":
    # 替换为你的PNG图片路径
    output_lines = png_to_binary("test_image.png")
    # 逐行打印结果
    for line in output_lines:
        print(line)

3. 自定义调整

  • 反转黑白:若需要黑色显示为1、白色显示为0,将判断条件改为pixel_value < threshold即可。
  • 调整阈值:默认阈值为127,可根据图片明暗修改该值,让转换结果更贴合预期。

内容的提问来源于stack exchange,提问作者Sohaib El Mediouni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:20:44