Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将调整大小的图像坐标转换为原始图像的坐标?_Python_Python 3.x_Image_Opencv_Image Processing - Fatal编程技术网

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

Python 如何将调整大小的图像坐标转换为原始图像的坐标?,python,python-3.x,image,opencv,image-processing,Python,Python 3.x,Image,Opencv,Image Processing,我正在使用opencv在python中创建一个图像裁剪器。我正在从鼠标点击中选择要裁剪的4个截面点的坐标。问题是我正在调整图像的大小以在屏幕上显示(800x600),并且我无法使用这些点来裁剪原始图像 如何将这些坐标转换为,以便裁剪大分辨率图像,但显示调整大小的图像 例如,如果图像为1920x1080,则需要整个屏幕,因此我将其调整为1067x600,然后取点进行裁剪,但裁剪后的图像将是调整大小的图像,而不是原始高分辨率图像。 如何将坐标(23445)转换为未调整大小的图像坐标?您可以使用百分比

我正在使用opencv在python中创建一个图像裁剪器。我正在从鼠标点击中选择要裁剪的4个截面点的坐标。问题是我正在调整图像的大小以在屏幕上显示(800x600),并且我无法使用这些点来裁剪原始图像

如何将这些坐标转换为,以便裁剪大分辨率图像,但显示调整大小的图像

例如,如果图像为1920x1080,则需要整个屏幕,因此我将其调整为1067x600,然后取点进行裁剪,但裁剪后的图像将是调整大小的图像,而不是原始高分辨率图像。
如何将坐标(23445)转换为未调整大小的图像坐标?

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

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)))

您可能希望显示一些有关显示方式的代码,并告诉我们您当前的屏幕分辨率是多少这不是一个简单的转换和缩放点的问题吗?
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