【问题标题】:Image standardisation and normalisation using Numpy and OpenCV使用 Numpy 和 OpenCV 进行图像标准化和归一化
【发布时间】:2019-11-24 23:19:24
【问题描述】:

我正在尝试通过以下方式使用 Numpy 和 OpenCV 对图像进行标准化然后标准化;但是,matplotlib 输出的图像看起来是一样的。这是为什么呢?

代码

%matplotlib inline

import cv2
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

IMG_SIZE = 256

def show_img(img):
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    imgplot = plt.imshow(img_rgb)

img = cv2.imread('/content/drive/My Drive/ai/test_images/test_image3.tif')
img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))
show_img(img)

img = img.astype('float32')
img = (img - img.mean(axis=(0, 1, 2), keepdims=True)) / img.std(axis=(0, 1, 2), keepdims=True)

img = cv2.normalize(img, None, 0, 1, cv2.NORM_MINMAX)
show_img(img)

【问题讨论】:

    标签: python numpy opencv matplotlib computer-vision


    【解决方案1】:

    这是正常行为。标准化图像意味着将其范围从 0-255 更改为 0-1。 Matplotlib 检查 RGB 值的范围并相应地显示图像。

    至于标准化,如果您仔细观察,您会发现颜色变化。在第二张图片上,橙色似乎更淡一些。

    这些行为是正常的,因为预处理不应该改变图像(至少是里面的信息),但应该帮助模型处理它们。

    【讨论】:

      猜你喜欢
      • 2019-09-22
      • 1970-01-01
      • 2021-07-30
      • 2020-07-22
      • 2017-03-31
      • 1970-01-01
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多