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

如何提取二值图像255值像素的行列列表并使用matplotlib连续绘图

实现步骤

1. 单独创建行、列坐标列表

在原有循环外初始化两个空列表,遍历到符合条件的像素时分别存入对应列表:

# 初始化空列表存储行、列坐标
rows = []
cols = []

for row in range(0,700):
    for column in range(354):
        if thresh[row][column]==255:
            rows.append(row)
            cols.append(column)

如果是处理视频逐帧数据,可将列表初始化逻辑放在帧遍历循环内部,每帧生成一组行、列列表即可。

2. 基于matplotlib实现列值连续绘制

以行坐标为横轴、列坐标为纵轴绘制连续曲线,示例代码如下:

import matplotlib.pyplot as plt

# 创建画布
plt.figure(figsize=(10,6))
# 连续绘制列值变化曲线
plt.plot(rows, cols, c='blue', linewidth=1, label='列坐标变化')
# 可选:如果同个行存在多个255像素,可改用散点绘制:plt.scatter(rows, cols, c='red', s=2, label='255像素位置')

# 坐标轴设置
plt.xlabel('行坐标', fontsize=12)
plt.ylabel('列坐标', fontsize=12)
plt.title('二值图255像素列坐标连续分布', fontsize=14)
plt.legend()
# 反转y轴适配图像坐标系(图像左上角为原点,列值从上到下递增,可根据需求调整)
plt.gca().invert_yaxis()
plt.show()

补充说明

如果单帧图像中同一行存在多个取值为255的像素,可根据需求调整绘制逻辑:

  • 若需要保留所有点,改用散点图展示即可
  • 若需要每行仅保留一个列值,可在遍历行时添加取均值/最大值/最小值的逻辑

内容的提问来源于stack exchange,提问作者Sch. M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:24:02