在 python (pyraf) 中使用 imcopy (IRAF) 从适合的图像中剪切像素时的可变限制

variable limits when cutting pixels from a fits image with imcopy (IRAF) in python (pyraf)

我正在尝试使用 pyraf 在 python 中的一个代码中使用 iraf 的任务 imcopy。我的问题是你必须在 x 和 y 中指定要剪切图像的范围,但我希望这些限制是变量,因为一切都在一个循环中,我必须复制几个区域。

例如,我有这个:

img_seg =raw_input('Name of the segmentation image? ')
iraf.imcopy(input=img_seg+'[200:220,300:400]',output='out')

但是如果我尝试使用例如:

x1 = 200
x2 = 220
y1 = 300
y2 = 400
iraf.imcopy(input=img_seg+'[x1:x2,y1:y2]',output='out'),

那是行不通的。它给我一个语法错误和消息 ERROR (1, "Number of input and output images not the same")

我已经尝试了一段时间,但一直没能成功。因此,如果有人可以向我解释如何执行此操作,我将非常高兴,在此先感谢!

ps。我的答案与这个类似 How to run a function on a list of objects in python/pyraf?,但那里的答案基本上不适合我。

好的,关键是 IRAF 只需要查看间隔,但您可以使用 python 来构建 IRAF 所需的间隔。 所以需要做的就是:

iraf.imcopy(input=img_seg+'['+str(x1)+':'+str(x2)+','+str(y1)+':'+str(y2)+']',output='out')