我想获取图像中选定区域的像素坐标。我使用的是GIMP,在Python FU控制台上是否可以实时调试并查看?
我打算在图片上自由选择一些区域,并想在控制台上学习它。该选定区域包含哪些坐标?
我想获取图像中选定区域的像素坐标。我使用的是GIMP,在Python FU控制台上是否可以实时调试并查看?
我打算在图片上自由选择一些区域,并想在控制台上学习它。该选定区域包含哪些坐标?
首先,在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网站上的教程将能够帮助你很多。
selection = image.selection.get_pixel_rgn(0, 0, image.width, image.height)
,则会获得选择区域上所有像素的2D数组 - 所有非零值的像素都是选择区域的一部分。 - jsbueno