归一化后为什么输出图像变黑?

我想通过均值和标准差对许多灰度图像进行归一化处理。我使用以下过程:

  1. 计算图像的均值和标准差。

  2. 从图像中减去平均值。

  3. 将结果图像除以标准差。

但是,结果我得到了黑色图像。我的代码有什么问题?

    import cv2

    img = cv2.imread('E.png')   # read an image 
    gray_image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  # converting the image to grayscale image
    img = cv2.resize(gray_image,(60,60))  # Resize the image to the size 60x60 pixels

    cv2.imwrite("Grayscale Image.png",img)  #To write the result  

    mean,stdDev = cv2.meanStdDev(img)  #Get Mean and Standard-deviation
    image = (img-mean)/stdDev  #Normalization process

    cv2.imwrite("Normalized Image.png",image)  #To write the result 

输入图片:

归一化后为什么输出图像变黑?

灰度输出:

归一化后为什么输出图像变黑?

归一化图像输出:

归一化后为什么输出图像变黑?

bduxxl 回答:归一化后为什么输出图像变黑?

保存图像时,需要考虑数据类型。要将标准化图像另存为png,您需要将标准化值缩放到整数范围(例如[0,255])或使用支持浮点格式的图像格式。

使用z分数归一化时(如代码中所示),您可以使用

将其另存为png。
image -= image.min() 
image /= image.max()

image *= 255 # [0,255] range
cv2.imwrite("Normalized Image.png",image)
本文链接:https://www.f2er.com/3158924.html

大家都在问