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

OpenCV像素点NumPy数组求最值问题求助

搞定NumPy数组的最值获取问题

嘿,作为NumPy新手遇到这种嵌套格式的数组确实容易懵!别担心,咱们一步步来解决~

首先得先搞清楚cv2.findNonZero(mask)返回的数组形状:它其实是一个**形状为(N, 1, 2)**的NumPy数组,所以你看到的输出才是一个个[[x y]]的嵌套结构。咱们可以先把这个数组简化成更易处理的格式:

# 把形状从(N,1,2)改成(N,2),每一行就是一个(x,y)坐标对
pixelpoints = pixelpoints.reshape(-1, 2)

调整完形状后,你的数组就会变成这样(以你给的示例数据为例):

[[1288 700]
 [1289 700]
 [1290 700]
 [1291 700]
 [1287 701]
 [1288 701]
 [1289 701]
 [1290 701]
 [1291 701]
 [1292 701]]

接下来获取最值就非常简单了:

获取x坐标的最值

x_min = pixelpoints[:, 0].min()  # 所有x中的最小值
x_max = pixelpoints[:, 0].max()  # 所有x中的最大值

获取y坐标的最值

y_min = pixelpoints[:, 1].min()  # 所有y中的最小值
y_max = pixelpoints[:, 1].max()  # 所有y中的最大值

如果只是想获取整个数组里的全局最值,直接用:

global_min = pixelpoints.min()
global_max = pixelpoints.max()

而且完全不用担心百万条数据的性能问题,NumPy的这些内置方法都是基于C实现的,比手动循环快得多,处理起来毫无压力~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:50:59