图像处理
warpin
这个作者很懒,什么都没留下…
展开
-
目标检测数据增强——裁剪
在图像识别任务中,裁剪是一种比较常用的数据增强方法。通过numpy对图像数组进行截取就可以实现裁剪的功能。对于像目标检测这类带标注框的图像识别任务,裁剪要确保目标不被裁掉,另外,还要更新标注框的位置,因为经过裁剪后目标在图中的位置发生了变化。以下函数实现了:在保证目标点points不被裁掉的情况下,随机裁剪图像。计算原图中坐标点points在裁剪后的图像中的位置坐标。import numpy as npimport randomdef random_crop_with_points(im原创 2021-05-29 17:36:37 · 3274 阅读 · 0 评论 -
目标检测数据增强——旋转
在图像识别任务中,图像旋转是一种比较常用的数据增强方法。结合cv2的cv2.getRotationMatrix2D()和cv2.warpAffine()就可以实现图像的旋转。对于像目标检测这类带标注框的图像识别任务,不仅要对图像旋转,还要知道标注框被旋转到哪里了,所以还要计算坐标点的变化。下面的函数实现了:给定角度,旋转图像。自动调整图像尺寸,保证原图像的内容不会被旋转到图像外。计算原图中坐标点points在旋转后的图像中的位置坐标。import numpy as npimport cv2原创 2021-05-29 17:11:38 · 3091 阅读 · 2 评论 -
numpy实现图像90°旋转
在图像处理中有时候需要对图像进行旋转,如果要实现任意角度的旋转,则涉及线性变换的矩阵运算,比较复杂。有时候只是想实现简单的向左、向右旋转,感觉就是跟矩阵转置差不多的操作,用for循环重新排列像素点也能实现。但是也不用这么复杂,numpy提供的rot90()函数就能实现。在目标检测场景下,图像旋转还涉及到标注框坐标的变化,那么还需要多做一步,就是计算旋转后标注框的坐标,下面的函数就实现了这样的功能。import numpy as npdef rot90(image, points, times: i原创 2021-05-29 16:38:45 · 2162 阅读 · 0 评论