gpt4 book ai didi

numpy - 当我尝试使用 Keras 预处理功能向图像添加噪声时出现错误参数错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:17 25 4
gpt4 key购买 nike

为了执行图像预处理,我尝试使用 ImageDataGenerator来自 Keras 的类(class)。以下是它的使用方法:

    data_generator = keras.preprocessing.image.ImageDataGenerator(
rotation_range = 60,
width_shift_range = 0.1,
height_shift_range = 0.1,
brightness_range = [0.5, 1.5],
shear_range = 0.01,
zoom_range = [0, 1],
horizontal_flip = True,
vertical_flip = True,
preprocessing_function = preprocess_other
)

已为 preprocessing_function 属性分配了一个名为 preprocess_other 的函数,定义如下:

    def preprocess_other(image):
flip = np.random.random()
if flip > 0.5:
# Add noise
blank_image = np.zeros(image.shape, np.uint8)
cv2.randn(blank_image, 0, 5)
noisy_image = cv2.add(image, blank_image)
return noisy_image
else:
# Return the original image
return image

这个函数的作用是以0.5的概率给一张图片加上噪声。

当我开始训练过程(训练 CNN)时,它工作了几秒钟但由于 preprocess_other 函数的一些错误而失败,错误说:

error: OpenCV(3.4.3) /io/opencv/modules/core/src/arithm.cpp:683:
error: (-5:Bad argument) When the input arrays in
add/subtract/multiply/divide functions have different types,
the output array type must be explicitly specified in function
'arithm_op'

我调试了但无法理解它的原因。我是否试图以不正确的方式添加噪音?我该如何纠正这个错误?

最佳答案

问题是 imageblank_image 有不同的类型。

您可以更改:

blank_image = np.zeros(image.shape, np.uint8)

到:

blank_image = np.zeros(image.shape, image.dtype)

或:

blank_image = np.zeros_like(image)

关于numpy - 当我尝试使用 Keras 预处理功能向图像添加噪声时出现错误参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55733105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com