【发布时间】:2023-03-20 18:23:01
【问题描述】:
我正在研究 python,我需要从图像上的一组特定像素中提取最大值或最小值。假设我的图像是 40 x 40 图像。我有一个带有一些给定矢量坐标示例的列表:vectorlist=[[10,15],[13,14],[15,23]]。我需要提取列表中这些向量的像素值并计算最小值和最大值。我正在寻找一些快速的方法来做到这一点,因为 FOR 循环会变慢。
a=[]
for i in range(0,len(vectorlist)):
a.append(image[vectorlist[i][0],vectorlist[i][1]])
max1=max(a)
min1=min(a)
如果有更快的方法,那就太好了!
谢谢!
【问题讨论】:
-
如果示例中的
for循环对于构建数组是必需的,则可以使用它来获取最大值和最小值,例如if (max1 is None or max1 > image[vectorlist[i][0],vectorlist[i][1]]):...和if (min1 is None or min1 < image[vectorlist[i][0],vectorlist[i][1]]):... -
我还是一个 Python 菜鸟,但我认为你想要 "fancy indexing".... jakevdp.github.io/PythonDataScienceHandbook/… 或者也许是一个 "masked array"...docs.scipy.org/doc/numpy-1.13.0/reference/…
标签: python-3.x opencv numpy-ndarray