首页 > 解决方案 > img_as_float 和 rgb2gray 的功能

问题描述

在 scikit-image 中有两个函数,img_as_float 和 rgb2gray。它们是否生成相同类型的数值数组,值为 [0,1]?这两个函数与用于表示图像的底层 numpy 数组的真正区别是什么?

标签: python-3.ximage-processingscikit-image

解决方案


它们做不同的事情:img_as_float将图像从任何类型转换为 [0, 1] 中的浮点类型,无论它是否是彩色图像。例如,包含 0-255 范围内的 uint8 值的 (512, 512) 图像将转换为包含 0-1 范围内的 float64 值的 (512, 512) 图像。有关更多信息,请参阅图像数据类型及其含义

rgb2gray根据此亮度公式,将图像从最终轴中的 3 种颜色(红色、绿色和蓝色)转换为少一个轴且只有强度信息的图像。您可能对此感到困惑的原因img_as_float是在转换为灰度之前rgb2gray调用其输入。img_as_float所以一个 (512, 512, 3) uint8 值在 0-255 之间的图像会被自动转换成一个 (512, 512, 3) float64 值在 0-1 之间的图像,然后应用亮度公式得到一个(512, 512) 0-1 中的 float64 值的图像。


推荐阅读