繁体   English   中英

使用函数参数索引函数内的2D numpy数组

[英]Indexing a 2D numpy array inside a function using a function parameter

假设我有一个存储在numpy数组中的python中的2D图像,并称为npimage(1024倍1024像素)。 我想定义一个函数ShowImage,它将一个numpy数组的参数作为参数:

def ShowImage(npimage,SliceNumpy):
    imshow(npimage(SliceNumpy))

这样它可以绘制图像的给定部分,让我们说:

ShowImage(npimage,[200:800,300:500])

将绘制图像为200到800之间的行和300到500之间的行,即

imshow(npimage[200:800,300:500])

有可能在python中这样做吗? 暂时将[200:800,300:500]之类的内容作为参数传递给函数导致错误。

感谢您的帮助或链接。 格雷格

这是不可能的,因为当不直接用作slice[...]是语法错误,但您可以这样做:

  • 仅给出相关的切片图像 - 不是单独的参数ShowImage(npimage[200:800,300:500]) (无逗号)

  • 或者给出一个slices tuple作为参数: ShowImage(npimage,(slice(200,800),slice(300:500))) 这些可以用于在函数内部进行切片,因为它们只是定义此切片的另一种方式:

     npimage[(slice(200,800),slice(300, 500))] == npimage[200:800,300:500] 

第二种选择的可能解决方案可能是:

import matplotlib.pyplot as plt
def ShowImage(npimage, SliceNumpy):
    plt.imshow(npimage[SliceNumpy])
    plt.show()

ShowImage(npimage, (slice(200,800),slice(300, 500)))
# plots the relevant slice of the array.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM