【问题标题】:How to normalize image to range 0 255 with PIL Lib如何使用 PIL Lib 将图像标准化为 0 255 范围
【发布时间】:2021-06-08 06:26:47
【问题描述】:

我遇到了灰度图像标准化问题。 OpenCV 有一个cv2.normalize() 方法(使用代码中的参数),但我需要使用 Pillow 库 来读取图像并使用 numpy 对它们进行操作。 我需要将其从输入范围标准化为[0,255]。 这是我的代码,但结果不好。

def disparity_normalization(self, disp): # disp is an array in uint8 data type
        # disp_norm = cv2.normalize(src=disp, dst= disp, beta=0, alpha=255, norm_type=cv2.NORM_MINMAX)
        _min = np.amin(disp)
        _max = np.amax(disp)
        disp_norm = disp - _min * 255.0 / (_max - _min)
        disp_norm = np.uint8(disp_norm)
        plt.imshow(disp_norm)
        plt.show()

        return disp_norm 

编辑: 函数的最小值和最大值是正确的,但绘图结果不好。

Here is function plot

Here is cv2.normalize() plot

【问题讨论】:

  • 函数刚才返回的最小值和最大值是多少
  • 最小值和最大值是正确的,但情节的结果很糟糕。看看编辑。

标签: python image python-imaging-library normalization


【解决方案1】:

我想你忘记了括号。

应该是这样的:

def disparity_normalization(self, disp): # disp is an array in uint8 data type
        # disp_norm = cv2.normalize(src=disp, dst= disp, beta=0, alpha=255, norm_type=cv2.NORM_MINMAX)
        _min = np.amin(disp)
        _max = np.amax(disp)
        #disp_norm = disp - _min * 255.0 / (_max - _min)
        disp_norm = (disp - _min) * 255.0 / (_max - _min)
        disp_norm = np.uint8(disp_norm)
        plt.imshow(disp_norm)
        plt.show()

        return disp_norm 

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 2019-08-12
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 2019-05-03
    • 2019-12-23
    相关资源
    最近更新 更多