数据增强的时候遇到的几个问题
一、运行opencv中函数出现 expected ptrcv::umat for argument 'src’的问题
1 原因
输入的数据格式是tensor,而opencv允许的数据格式是np.float32,
2 处理方法
使用np.float32()转格式,代码如下:
patch = np.float32(patch)
aug = cv2.GaussinBlur(patch, (7,7), 1.5)
二、torch.from_numpy报错:some of the strides of a given numpy array are negative.
1 原因
numpy数组转为tensor时,要求内存是连续的,而上述代码在进行flip或者高斯blur后numpy数组的内存不在连续。
2 处理方法
使用.copy()对flip或高斯blur后的numpy数据进行拷贝,即可将数组内存连续化,代码如下:
x_aug = cv2.GaussianBlur(np.float32(patch), (7,7), 1.5)
x_aug = torch.from_numpy(x_aug.copy())