Python 使用IMGAUGE旋转后,图像的形状不会改变
我正在按以下方式旋转图片:Python 使用IMGAUGE旋转后,图像的形状不会改变,python,image-processing,computer-vision,data-augmentation,Python,Image Processing,Computer Vision,Data Augmentation,我正在按以下方式旋转图片: # Read in image img = cv2.imread("pic.jpg") height, width, _ = img.shape print("height ", height) print("width ", width) # Rotate image by 90 degrees augmentation = iaa.Affine(rotate=90) img_aug = augmenta
# Read in image
img = cv2.imread("pic.jpg")
height, width, _ = img.shape
print("height ", height)
print("width ", width)
# Rotate image by 90 degrees
augmentation = iaa.Affine(rotate=90)
img_aug = augmentation(image=img)
height, width, _ = img_aug.shape
print("Height after rotation ", height)
print("Width after rotation ", width
> height 1080
> width 1920
> Height after rotation 1080
> Width after rotation 1920
为什么图像的形状没有改变?图像增强不会改变图像的实际形状或物理形状。将原始的
形状
想象为一个窗口
,从中可以看到图像或外部世界。在这里,所有的变换,即旋转、拉伸、平移,或一般的单应性或非线性扭曲,都应用于你窗外的世界。在我的类比中,从你看图像的那个窗口,无论外面的世界如何变化,也就是图像如何变化,都保持不变
现在,它显然可以将原始视图中不存在的其他区域引入到增强视图中。最常见的情况是,新引入的像素将是黑色的,或者它可能取决于应用了什么类型的填充
简而言之,增强操作不像矩阵转置那样,实际形状可能会发生变化
img=cv2.imread(“img.png”)
增强=iaa.仿射(旋转=90)
img_aug=增强(image=img)
让我们看看图片:
Original Image
图像增强不会改变图像的实际形状或物理形状。将原始的形状
想象为一个窗口
,从中可以看到图像或外部世界。在这里,所有的变换,即旋转、拉伸、平移,或一般的单应性或非线性扭曲,都应用于你窗外的世界。在我的类比中,从你看图像的那个窗口,无论外面的世界如何变化,也就是图像如何变化,都保持不变
现在,它显然可以将原始视图中不存在的其他区域引入到增强视图中。最常见的情况是,新引入的像素将是黑色的,或者它可能取决于应用了什么类型的填充
简而言之,增强操作不像矩阵转置那样,实际形状可能会发生变化
img=cv2.imread(“img.png”)
增强=iaa.仿射(旋转=90)
img_aug=增强(image=img)
让我们看看图片:
Original Image
谢谢@swag2198的详细解释。我现在只是使用cv2.ROTATE_90_顺时针来改变图像的形状。我很好奇,你为什么要改变图像的形状!我很感激你的话,但请看这里:。因为它可以在旋转堆栈溢出图像中看到,它切断了图像的一部分。通过cv2.ROTATE_90_顺时针改变形状,这不应该发生。我用它来增强目标检测模型。如果我不改变形状,我的边界框将得到负值。iaa.Rot90(keep_size=False)将实现我想要的:-)iaa.Affine(rotate)不改变形状是有道理的,因为图像不仅可以旋转-90、90和180,而且可以旋转任何角度。谢谢@swag2198的详细解释。我现在只是使用cv2.ROTATE_90_顺时针来改变图像的形状。我很好奇,你为什么要改变图像的形状!我很感激你的话,但请看这里:。因为它可以在旋转堆栈溢出图像中看到,它切断了图像的一部分。通过cv2.ROTATE_90_顺时针改变形状,这不应该发生。我用它来增强目标检测模型。如果我不更改形状,我的边界框会得到负值。iaa.Rot90(keep_size=False)将执行我想要的操作:-)有意义的是,iaa.Affine(rotate)不会更改形状,因为图像不仅可以旋转-90、90和180,还可以旋转任何角度。你旋转内容,而不是图像。你旋转内容,而不是图像。