После преобразования из rgb в lab возникает проблема с matplotlib?

Я преобразовал изображение RGB в lab с помощью этой команды:

im_lab=skimage.color.rgb2lab(im, illuminant='D65', observer='2')

Однако, как только я отправляю свой алгоритм в сегмент, а затем показываю через matplotlib.pyplot, я получаю следующую ошибку (это длинная ошибка, но это последняя часть):

/home/xxx/anaconda2/envs/lda-nv/lib/python2.7/site-packages/matplotlib/cm.pyc in to_rgba(self, x, alpha, bytes, norm)
    255                 if xx.dtype.kind == 'f':
    256                     if norm and xx.max() > 1 or xx.min() < 0:
--> 257                         raise ValueError("Floating point image RGB values "
    258                                          "must be in the 0..1 range.")
    259                     if bytes:

ValueError: Floating point image RGB values must be in the 0..1 range.

<matplotlib.figure.Figure at 0x7f14e4dfa990>

это часть кода, которая вызывает matplotlib:

# displaying the result
    fig = plt.figure()
    a = fig.add_subplot(1, 2, 1)
    plt.imshow(in_image)
    a.set_title('Original Image')
    a = fig.add_subplot(1, 2, 2)
    print(output.shape)
    plt.imshow(skimage.color.lab2rgb(output,illuminant='D65', observer='2'))
    a.set_title('Segmented Image')
    plt.show()

может кто-нибудь, пожалуйста, помогите мне узнать, в чем причина и как я могу ее решить?

Спасибо


person S.EB    schedule 26.12.2017    source источник
comment
Преобразуйте его обратно в RGB (A) перед построением... это то, что ожидает pyplot.   -  person grovina    schedule 26.12.2017
comment
Я конвертировал с помощью skimage, однако я все еще получаю сообщение об ошибке, поэтому я написал здесь. Спасибо за ваш комментарий   -  person S.EB    schedule 26.12.2017
comment
Не могли бы вы опубликовать вывод формы lab2rgb, min, max и dtype, пожалуйста?   -  person grovina    schedule 26.12.2017


Ответы (1)


Согласно сообщению, я нашел здесь кажется, что после сегментации вы получаете отрицательные значения, которые появляются вот так как проблема.

Решение, которое размещено на нем, похоже,

Value<0 equate the value to 0

Решение, похоже, сработало, проверьте ссылку выше, если она вам тоже поможет.

person Santhosh    schedule 17.01.2018