将低分辨率黑白图片转换为二进制矩阵的最简方法是什么
实现方案
1. Python脚本实现(最适合批量自定义处理)
首先需要安装Pillow图像处理库,执行安装命令:pip install pillow
可以直接使用以下脚本完成转换:
from PIL import Image import numpy as np # 可选,用于快速存储矩阵 def img_to_bin_matrix(img_path): # 加载图片并转为灰度模式 img = Image.open(img_path).convert("L") w, h = img.size bin_matrix = [] for y in range(h): current_row = [] for x in range(w): # 纯黑白图灰度值只有0(黑)和255(白),阈值设为128不会有判断误差 gray_val = img.getpixel((x,y)) current_row.append(1 if gray_val < 128 else 0) bin_matrix.append(current_row) return bin_matrix # 调用示例 target_matrix = img_to_bin_matrix("test.png") # 可选:将矩阵保存为csv文件 np.savetxt("output_matrix.csv", target_matrix, delimiter=",", fmt="%d")
- 脚本可以直接套循环批量处理文件夹内所有.png文件,适配你的批量需求
- 输出的矩阵维度和原图像素尺寸完全对应,无需额外调整
2. 无代码桌面工具实现
直接使用免费开源的ImageJ工具即可:
- 打开ImageJ后导入目标图片
- 依次点击菜单栏
Image > Type > 8-bit将图片转为灰度图 - 点击
Process > Binary > Make Binary,确认前景色为黑色、背景色为白色 - 点击
File > Save As > Text Image即可直接导出二进制矩阵文件,默认导出的数值是黑为255白为0,你可以直接用Excel批量替换255为1即可完成要求。
3. 命令行批量处理(适合大批量自动化处理)
安装ImageMagick工具后,执行单条命令即可直接输出对应图片的二进制矩阵:convert 输入图片.png -threshold 50% txt: | tail -n +2 | awk '{print ($3 == "(0,0,0)" ? 1 : 0)}' | pr -ts "" -$(identify -format "%w" 输入图片.png)
- 命令会直接输出每行的0/1序列,和图片行像素一一对应
- 套入shell循环即可批量处理文件夹内所有png图片
内容的提问来源于stack exchange,提问作者Anne Aunyme
相关产品推荐
相关产品推荐

