предупреждающее сообщение об использованииjection.equalize_adapthist в scikit-изображении - PullRequest
0 голосов
/ 04 октября 2019

При выполнении выравнивания адаптивной гистограммы с ограниченной контрастностью я получил следующее предупреждающее сообщение. Как этого избежать и на что это указывает?

from skimage import exposure
img_adapteq = exposure.equalize_adapthist(image_gray, clip_limit=0.03)

C:\Users\ugwz\AppData\Local\Continuum\anaconda3\lib\site-packages\skimage\util\dtype.py:135: UserWarning: Possible precision loss when converting from float64 to uint16
  .format(dtypeobj_in, dtypeobj_out))

1 Ответ

1 голос
/ 05 октября 2019

rgb2gray преобразует ваше изображение в плавающее, потому что оно вычисляет относительную яркость в соответствии с формулой на этой странице . Обратите внимание, что из-за соглашений экосистемы Scientific Python она также изменяет масштаб значений в [0, 1], поэтому .astype(np.uint16) не будет делать то, что вы хотите. Вместо этого используйте skimage.util.img_as_{ubyte,uint}, как подробно описано в документации scikit-image для типов данных :

from skimage import color, util, exposure

image = io.imread(<your-filename>)
image_gray = color.rgb2gray(image)
image16 = util.img_as_uint(image_gray)
img_adapteq = exposure.equalize_adapthist(image_gray, clip_limit=0.03)

К сожалению, с версией 0.15 вы все равно увидите предупреждение, но онобыл удален в версии 0.16 и выше, которая должна выйти в ближайшие дни.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...