gpt4 book ai didi

python - 如何将调整大小后的图像的坐标转换为原始图像的坐标?

转载 作者:行者123 更新时间:2023-12-02 16:17:50 25 4
gpt4 key购买 nike

我正在使用opencv在python中创建图像裁剪器。我从鼠标单击中选择要裁剪的4点截面的坐标。问题是我正在调整图像的大小以将其显示在屏幕上,例如(800x600),我无法使用这些点来裁剪原始图像。
我如何将这些坐标转换为可以裁剪大尺寸的图像,但显示它们的大小?
例如-如果图像为1920x1080,它将占据整个屏幕,因此我将其调整为1067x600,然后用点进行裁剪,但是裁剪后的图像将被调整为一个尺寸,而不是原始的高分辨率。
如何将(234,455)之类的坐标转换为未调整大小的图像坐标?

最佳答案

您可以用百分比来处理。
基本上,保持图像的纵横比,将其调整为较小的尺寸。

def resize_to_max_dimension(image,max_dimension):
image_height,image_width,channels = image.shape


if image_height < max_dimension and image_width < max_dimension: ##Only resize larger images
return image


if image_height > image_width:
final_height = max_dimension
final_width = int(final_height * image_width / image_height )
else:
if not image_width == 0:
final_width = max_dimension
final_height = int(final_width * image_height / image_width)
else:
final_height = 0
final_width = 0


return cv2.resize(image,(int(final_width),int(final_height)))
现在,调整大小后,假设尺寸为800 x 600,则在裁剪时,请从顶部计算百分比。
基本上,x_min_percentage,y_min_percentage,x_max_percentage,y_max_percentage
因此,如果从左起的x min为200,宽度为800,则x_min_percentage为25%。
现在很容易,采用原始图像尺寸,乘以百分比,就可以得到新的裁剪坐标。
image_height,image_width,channels = original_image.shape
crop_x_min = image_width * x_min_percentage
crop_y_min = image_height * y_min_percentage
crop_x_max = image_width * x_max_percentage
crop_y_max = image_height * y_max_percentage

关于python - 如何将调整大小后的图像的坐标转换为原始图像的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64350161/

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