记录一些opencv数据增强方法
- 亮度、饱和度、色相
关于三者的介绍:https://blog.csdn.net/u011608180/article/details/86525766
先将opencv读取的图片转为PIL格式:
img = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
然后使用torchvision进行增广:
color_aug = torchvision.transforms.ColorJitter(brightness=0, contrast=0.0, saturation=[0.7,0.8], hue=0)
注意这里参数的含义,brightness为亮度,取值相当于原图的多少倍,如1.2,即更亮,反之0.5则变暗,可以通过[0.5,1.2]数组控制范围。
saturation饱和度,同理。
2.也可以使用opencv里颜色模式转换
先转为HSV,在此基础上直接进行数值操作,这个过程可能会报错:
Unsupported depth of input image:
‘VDepth::contains(depth)’
where
‘depth’ is 6 (CV_64F)
原因是数据格式不对,转为 np.float32再使用cv2.colorconvert
附格式转换:Numpy属性dtype的转换(数据类型转换):unit8和float32转换
3.画矩形框时,想要颜色填充&#x