Я использую skimage
для преобразования изображений RGB в пространство Lab Lab, но кажется, что skimage использует тип данных float64
, в то время как Tensorflow использует float32
.Использование 32-разрядных лабораторных изображений в Tensorflow
Есть ли способ конвертировать 64-разрядное лабораторное изображение в 32-битный тип данных? Документация не охватывает ничего конкретного об этом, и я не уверен, что использование image.astype(np.float32)
- это путь, поскольку это может повредить точность данных (или нет).
Вот часть кода:
from skimage import color, io
import numpy as np
rgb = io.imread('Test.jpg') # Could be any shape
lab = color.rgb2lab(rgb)
converted = np.array(lab).astype(np.float32)
rgb = color.lab2rgb(converted)
Последняя строка выдает ошибку:
ValueError: Images of type float must be between -1 and 1.
и вот Трассировка стека:
File "C:\Anaconda3\lib\site-packages\skimage\color\colorconv.py", line 928, in lab2rgb
return xyz2rgb(lab2xyz(lab))
File "C:\Anaconda3\lib\site-packages\skimage\color\colorconv.py", line 855, in lab2xyz
arr = _prepare_colorarray(lab).copy()
File "C:\Anaconda3\lib\site-packages\skimage\color\colorconv.py", line 153, in _prepare_colorarray
return dtype.img_as_float(arr)
File "C:\Anaconda3\lib\site-packages\skimage\util\dtype.py", line 291, in img_as_float
return convert(image, np.float64, force_copy)
File "C:\Anaconda3\lib\site-packages\skimage\util\dtype.py", line 195, in convert
raise ValueError("Images of type float must be between -1 and 1.")
ValueError: Images of type float must be between -1 and 1.
Использование 'img_as_float (лаборатория) .astype (np.float32)' дает мне ту же ошибку, как с помощью 'np.array (лаборатория) .astype (н.п. .float32) '=>' Образы типа float должны быть между -1 и 1. Вы даже можете попробовать код самостоятельно. – Cypher
Если вы начинаете с массива с плавающей запятой, который не находится между -1 и 1, вы можете столкнуться с этой проблемой. Если вы разместите пример изображения или можете проиллюстрировать вашу проблему на одном из примеров изображений skimage.data, я был бы рад еще раз взглянуть. –