我正在尝试编写我自己的裁剪函数,这样我就可以从更大的图像中选择一个区域,然后对其执行其他操作。我使用matplotlib来导入和显示图像:self.img=plt.imread("someimage.png")
如果我待在画布区域,效果很好: 在
def __onclick__(self, event):
self.point=[]
if event.xdata is not None:
xholder=event.xdata
else:
xholder = 0
if event.ydata is not None:
yholder = event.ydata
else:
yholder = 0
self.point.append([int(xholder),int(yholder)])
def __onrelease__(self,event):
if event.xdata is not None:
xholder=event.xdata
else:
xholder = self.img.shape[0]
if event.ydata is not None:
yholder = event.ydata
else:
yholder = self.img.shape[1]
self.point.append([int(xholder),int(yholder)])
self.plotcanvas.axes.imshow(self.img[self.point[0][1]:self.point[1][1],self.point[0][0]:self.point[1][0]])
self.plotcanvas.draw()
但是一旦我超出画布边界event.xdata
和{
使用允许导入.png文件然后进行裁剪的代码进行编辑
^{pr2}$这是在剔除了所有不必要的东西之后,仍然制作了一个功能程序,可以让你导入一个.png文件,然后从中挤出一个区域。我确信Ed Smith提出的矩形选择器可能会起作用,但是我很难让示例代码正常工作,并且对这些值的存储位置以及eclick和erelease如何与其他事件处理程序一起工作感到困惑。恐怕我对matplotlib和python不是很精通。在
框选择器matplotlib widget可能是最简单的方法。您可以将代码与您的图像一起使用:
虽然鼠标不局限于方框,但当}时,默认行为是将返回的坐标限制在框中。我不认为你可以轻易地将鼠标移动限制在画布上。在
minspanx
和minspany
是{相关问题 更多 >
编程相关推荐