当前位置:   article > 正文

yolov4图像预处理--图像缩放并加上灰度条_图片预处理yolo

图片预处理yolo

对图像进行随机缩放,然后paste到416*416的灰度图上,达到数据增强的目的。
参考代码:https://github.com/bubbliiiing/yolov4-keras

"""
time: 2022/04/14
author: cong
theme: 对图像进行长和宽的扭曲达到缩放的目的并且多余部分加上灰度条。
"""
from PIL import Image
import numpy as np


def rand(a=0, b=1):
    return np.random.rand() * (b - a) + a


w = 416
h = 416
jitter = 0.3
new_ar = w / h * rand(1 - jitter, 1 + jitter) / rand(1 - jitter, 1 + jitter)
print('new_ar:', new_ar)
scale = rand(.25, 2)
print('scale:', scale)
image = Image.open('img.png')
# 随机缩放
if new_ar < 1:
    nh = int(scale * h)
    nw = int(nh * new_ar)
    print('nw:', nw, 'nh:', nh)
else:
    nw = int(scale * w)
    nh = int(nw / new_ar)
    print('nw:', nw, 'nh:', nh)
image = image.resize((nw, nh), Image.BICUBIC)
image.show()
image.save('random_scale.jpg')
# ------------------------------------------#
#   将图像多余的部分加上灰条
# ------------------------------------------#
dx = int(rand(0, w - nw))
dy = int(rand(0, h - nh))
print('dx:', dx, 'dy:', dy)
new_image = Image.new('RGB', (w, h), (128, 128, 128))
new_image.paste(image, (dx, dy)) # 把image粘到new_image上,起始位置相对于new_image的位置(dx,dy)
new_image.show()
new_image.save('random_scale_gray.jpg')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

img.png原图如下所示:
原图

random_scale.jpg如下图所示:
图像随机缩放
random_scale_gray.jpg加上灰度条之后的图像,如下所示:
加上灰度条

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/292274
推荐阅读
相关标签
  

闽ICP备14008679号