Python конвертирует numpy.array, импортированный из 16-битного RGB Tiff в объект PIL

У меня есть 16-битное изображение RGB tiff, и я хочу прочитать в PIL, чтобы применить фильтр BLUR и SHARPEN, но когда я запускаю функцию для чтения изображения, я получаю сообщение об ошибке IOError: не удается идентифицировать файл изображения ' C:\cdraw\test16bit.tiff'

from PIL import Image

myfile = 'C:\\cdraw\\test16bit.tiff'
myimage = Image.open(myfile)

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Python27\lib\site-packages\PIL\Image.py", line 2330, in open
    % (filename if filename else fp))
IOError: cannot identify image file 'C:\\cdraw\\test16bit.tiff'

Я могу импортировать 16-битное изображение TIFF RGB с помощью scikit-image: обработка изображений в Python, но я не могу преобразовать numpy.array в объект PIL, если это возможно

from skimage import io
im = io.imread(myfile)
im.dtype
dtype('uint16')
im.shape
(4024L, 6024L, 3L)

person Gianni Spear    schedule 23.07.2015    source источник


Ответы (1)


Кажется, есть некоторые проблемы с PIL и 16-битными размолвками. Однако вам, кажется, нужны очень классические фильтры, которые вы можете найти в других библиотеках. Что вы можете сделать, так это импортировать с помощью skimage (или matplotlib) и обработать изображение с помощью skimage или scipy.

здесь вы можете найти много документации по обработке изображений scipy: http://scipy-lectures.github.io/advanced/image_processing/#blurring-smoothing

и для skimage: http://scikit-image.org/docs/dev/auto_examples/applications/plot_rank_filters.html

person CoMartel    schedule 23.07.2015