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

如何使用Python将图像转换为[1,0,0,1,0]格式的像素数组?

Python 二值图像转01矩阵实现方案

直接通过OpenCV+Numpy即可实现需求,步骤如下:

  1. 先安装依赖库
    pip install opencv-python numpy
    
  2. 完整可运行代码
    import cv2
    import numpy as np
    
    # 以灰度模式读取目标图像
    img = cv2.imread("heart.png", 0)
    
    # 二值化分割黑白像素:阈值设为127,灰度<127判定为黑,≥127判定为白
    # 如果输出的0/1映射和需求相反,把cv2.THRESH_BINARY替换为cv2.THRESH_BINARY_INV即可
    _, binary_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
    
    # 像素值映射:白色(255)转1,黑色(0)转0,转为Python列表格式
    matrix = (binary_img // 255).astype(int).tolist()
    
    # 按照要求的格式拼接输出文本
    output_lines = []
    for i, row in enumerate(matrix):
        line = f"[{','.join(str(num) for num in row)}]"
        if i != len(matrix) - 1:
            line += ","
        output_lines.append(line)
    final_output = "\n".join(output_lines)
    
    # 打印结果,也可写入本地文件
    print(final_output)
    # 写入文件示例
    # with open("matrix_result.txt", "w", encoding="utf-8") as f:
    #     f.write(final_output)
    

可选调整项

  • 如果图像边缘有杂色噪点,可以在二值化前加一行高斯模糊去噪,避免杂点生成错误的0/1值:
    img = cv2.GaussianBlur(img, (3, 3), 0)
    
  • 如果需要固定输出尺寸(比如和示例一致输出10*10的矩阵),可以在读取图像后先做缩放:
    img = cv2.resize(img, (10, 10))
    

内容的提问来源于stack exchange,提问作者OrbisX

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:15:37