gpt4 book ai didi

python - 如何裁剪图像,如果坐标不存在,则延伸另一侧,从而保持裁剪的大小相同?

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:42 26 4
gpt4 key购买 nike

我目前正在以这种方式裁剪图像:

self.crop = self.img[self.y_center - self.radius:self.y_center + self.radius,
self.x_center - self.radius:self.x_center + self.radius:, ]

其中 y_center 和 x_center 由点击定义,radius 是裁剪的大小。但是我反复遇到一个问题,即点击是在图像的极端一侧。在那种情况下,我如何在图像的另一侧扩展边?

基本上我不想在尺寸上妥协。

最佳答案

简单而愚蠢的 (r) 方式:

  • 检查点周围的矩形是否超出图像范围
  • 如果需要,将其移动相应数量的像素
  • 对所有 4 个面重复

s&s 不是如何处理矩形大于整个图像的情况,但我们会看到......

# X,Y - size of the image - 1 (maximum possible values for x,y)
# x,y - click coordinates relative to the image
t=x+radius; if t>X: x-=t-X
t=y+radius; if t>Y: y-=t-Y
t=x-radius; if t<0: x-=t #t<0 so it's increased actually
t=y-radius; if t<0: y-=t
del t
crop = img[x-radius:min(x+radius,X), y-radius:min(y+radius,Y)]

使用 min,我们处理矩形大于图像的情况。我们从“高”侧检查,因为我们选择了调整顺序,以便最后一个将矩形停靠到“低”侧。

关于python - 如何裁剪图像,如果坐标不存在,则延伸另一侧,从而保持裁剪的大小相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36520393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com