Python 如何从以下函数返回像素坐标值?

Python 如何从以下函数返回像素坐标值?,python,image,image-processing,jupyter-notebook,python-imaging-library,Python,Image,Image Processing,Jupyter Notebook,Python Imaging Library,我已经有了一个功能完善的脚本。脚本的目的是基于先前手动提取的像素坐标数据,在图像上迭代并围绕图像中的特定物种绘制矩形 但是,现在我希望返回/提取矩形四个角的每个像素坐标值,如下面“for loop”的“draw.rectangle”行中计算和绘制的: for index, row in img1_df.iterrows(): for i in range(len(img1_df)): draw.rectangle(((float(row['x'])-float(row['

我已经有了一个功能完善的脚本。脚本的目的是基于先前手动提取的像素坐标数据,在图像上迭代并围绕图像中的特定物种绘制矩形

但是,现在我希望返回/提取矩形四个角的每个像素坐标值,如下面“for loop”的“draw.rectangle”行中计算和绘制的:

for index, row in img1_df.iterrows():
    for i in range(len(img1_df)):
        draw.rectangle(((float(row['x'])-float(row['r']), float(row['y'])-float(row['r'])), (float(row['x'])+float(row['r']), float(row['y'])+float(row['r']))), fill=(255,0,0,55))
我希望这是一个.csv格式的文件,有5列(或类似的内容):“文件名”、左上角(x/y)、左下角(x/y)、右上角(x/y)、右下角(x/y)

我如何做到这一点

谢谢,R

请看一下。您希望使用
csv.writer
实例将数据写入文件。像这样的方法应该会奏效:

import csv

with open('coordinates.csv', 'w') as f:
    writer = csv.writer(f)
    for index, row in img1_df.iterrows():
        for i in range(len(img1_df)):
            writer.writerow([(float(row['x'])-float(row['r']), float(row['y'])- float(row['r'])),
                             (float(row['x'])+float(row['r']), float(row['y'])+float(row['r']))])

抱歉,我以为我回复了这个评论@MilanCermak!谢谢你,这非常有帮助,我用了几个tweek就成功地将它作为我整个脚本的一部分。现在我看到一个.csv文件,其中有四个像素坐标值,两个用于左上角的x/y坐标,两个用于右下角的x/y坐标。我如何修改它以返回中心点的x/y坐标以及高度和宽度?再次感谢。如果你有左上角和右下角的x/y,那么找到高度、宽度和中心只是简单的算术,不是吗?计算并将其添加到writerow函数的列表中。是的,你是对的,对不起,我写这篇文章时有点想得出来。。。。我现在已经做了必要的修改,我的'writer.writerow'函数现在如下:
writer.writerow([(float(row['x'])、float(row['y'])、float(row['y'])+float(row['y'])、float(row['x'])+float(row['x'])
。但是,我也希望在.csv文件中包含“filename”,每当我尝试将其添加为一列时,脚本都不会执行。我如何实现这一点?再次感谢@MilancerMak在传递给writerow的列表中添加新值?我尝试了
writer.writerow([(float(row['filename']),(float(row['x']),float(row['y']),(float(row['r'])+float(row['r']),(float(row['r'])+float(row['r'])))
,但这不起作用。