2015-12-16 2 views
3

У меня есть простая картинка в Python 3.X Я могу ее отобразить. Однако я не могу повернуть его, используя skimage.transform.rotate.Пытаясь вставить простую картинку в Python с помощью skimage.transform

Ошибка в том, что мой объект «Изображение» не имеет формы. Я видел, что .shape включен после команды rotate, но он все равно не работает.

Вот мой код

import skimage 
from skimage import novice 

# New, all black picture 
pic = skimage.novice.Picture.from_size((600, 600), color=(0, 0, 0)) 

# Coloring some pixels in white 
for i in range(0, len(all_dots) - 1, 2): 
    x = all_dots[i] 
    y = all_dots[i + 1] 
    pic[x, y] = (255, 255, 255) 

from skimage.transform import rotate 

new_pic = rotate(pic, 180) 
# Also new_pic = rotate(pic, 180).shape does not work 

new_pic.show() 

Любые идеи? Спасибо

ответ

2

Придется провести еще несколько тестов, но на первый взгляд я бы сказал, что проблема - это первый аргумент, который вы передаете функции rotate().

Согласно документации для Skimage: http://scikit-image.org/docs/stable/api/skimage.transform.html#rotate

поворота() принимает первый аргумент изображение в формате ndarray. Ваш объект (так как вы используете модуль «начинающий», это типа в соответствии с моей быстрой проверки

Попробуйте что-то вроде:.

new_pic = rotate(pic.array, 180) 

pic.array прямая ссылка на основной объект, хранящийся ndarray в новичку объекта «картинка»

EDIT: Это дает вам new_pic, как Numpy массив так что вам нужно сделать следующее, чтобы показать:!

new_pic = rotate(pic.array, 180) 

from skimage.io import imshow, show 

imshow(new_pic) 

show() 
+0

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

Смежные вопросы