使用Python获取GIMP所选区域的坐标

3

我想获取图像中选定区域的像素坐标。我使用的是GIMP,在Python FU控制台上是否可以实时调试并查看?

我打算在图片上自由选择一些区域,并想在控制台上学习它。该选定区域包含哪些坐标?

1个回答

5

首先,在Python控制台中,您必须获取对工作图像的引用 - 获取方式最简单的方法是调用gimp.image_list() - 这会向您呈现一个反向列表,其中包含以“单窗口”模式中选项卡上出现的相反顺序打开的图像。因此,要获取最后打开的图像,可以键入:

 image = gimp.image_list()[0]

(按下<enter>键) 如果您输入“image”并按下 ,您将检查其内容-Python将显示Image对象的标准表示方式:<gimp.Image '[Untitled]'> - 现在,这个图像对象及其层(Python以列表形式公开在image.layers属性中)可以作为参数传递给数百个函数,您只需在对话框底部按一下按钮即可轻松搜索。 找到所需的方法后,只需单击PDB浏览对话框上的apply按钮,函数及其所需参数将粘贴在Python提示符上-如果需要,请编辑参数以满足您的需求,然后按 ; 在这种情况下,您想调用的是("gimp_get_selection_bounds"):

>>> non_empty, x1, y1, x2, y2 = pdb.gimp_selection_bounds(image)

你所需的值现在存储在变量x1、y1、x2和y2中。如果只是想要显示它们,可以删除命令直到pdb,返回的值将会被打印出来。

如果你经常处理这种工作,学习一点Python会非常有用-在http://python.org网站上的教程将能够帮助你很多。


这个是有效的,但对我没有帮助。它只给了我端点的坐标。我需要在该选择中所有的坐标。 - Murat
因此,接受我的“学习Python”的建议 - 抱歉,我无法在一个答案中回答这个问题,因为我不知道你是否熟悉编程。如果您键入selection = image.selection.get_pixel_rgn(0, 0, image.width, image.height),则会获得选择区域上所有像素的2D数组 - 所有非零值的像素都是选择区域的一部分。 - jsbueno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接