Python альтернативы обработки изображений

Не ясно, что Вы пытаетесь сделать, потому что Вы не показываете объявление насмешки. Вы пытаетесь дразнить словарь?

MyContainer[(string s)] не допустимый C#.

Это компилирует:

var mock = new Mock<IDictionary>();
mock.SetupGet( p => p[It.IsAny<string>()]).Returns("foo");
10
задан ilya n. 18 September 2009 в 02:10
поделиться

7 ответов

Я использовал PIL, и результаты ресамплинга / изменения размера УЖАСНЫЕ.

Не должно быть, если вы:

  1. используете только фильтрацию Image.ANTIALIAS для уменьшения масштаба Операции
  2. используют только фильтрацию Image.BICUBIC для операций масштабирования.
  3. не забудьте преобразовать в цветовой режим «RGB» перед изменением размера, если вы используете изображение с палитрой
  4. , не используйте .thumbnail (). это дерьмо
  5. установите уровень quality = на что-нибудь подходящее при сохранении JPEG (по умолчанию довольно низкое)
18
ответ дан 3 December 2019 в 16:10
поделиться

Хотя imagemagick, по-видимому, де-факто библиотека изображений с открытым исходным кодом, возможно DevIL (кроссплатформенный, выполняет простые операции с изображениями) или FreeImage .

1
ответ дан 3 December 2019 в 16:10
поделиться

Вы проверили pypi ? Беглый поиск показывает там некоторые инструменты, связанные с изображениями, я также обнаружил python-gd, хотя понятия не имею, насколько он может быть полезен.

У меня никогда не было проблем с PIL, но какое-то разнообразие может быть интересно.

1
ответ дан 3 December 2019 в 16:10
поделиться

Я думаю, что это должно работать для разбиения двух строк и быть более эффективным, чем ваша текущая реализация с использованием substring и contains. Концептуально я перебираю символы в «левой» строке и сравниваю их с символом в «правой» строке. Если два символа совпадают, я перехожу к следующему символу в правой строке. В зависимости от того, для какой строки был достигнут конец первым, и совпадают ли последние сравниваемые символы или нет, определяется один из возможных случаев разбиения.

Я не придумал ничего, что могло бы улучшить временную сложность разбиения более двух струны. В качестве небольшого примечания для нескольких строк приведенный ниже алгоритм легко расширяется для проверки разбиения одной «левой» строки на несколько «правых» строк одновременно,

1
ответ дан 3 December 2019 в 16:10
поделиться

PIL может хорошо изменять размер. Убедитесь, что исходное изображение находится в режиме RGB, а не в цветовой палитре, и попробуйте выбрать другой алгоритм.

1
ответ дан 3 December 2019 в 16:10
поделиться

Взгляните на некоторые из этих библиотек изображений:

hxxp: //pypi.python.org/pypi/collective.croppingimagefield/0.1beta

hxxp: // pypi. python.org/pypi/cropresize/0.1.1

hxxp://pypi.python.org/pypi/image_resize/1.0

1
ответ дан 3 December 2019 в 16:10
поделиться

Последний раз, когда я сравнивал, результат этого даунскейлера почти идентичен результату "кубической" опции GIMP:

 import Image

 def stretch(im, size, filter=Image.NEAREST):
     im.load()
     im = im._new(im.im.stretch(size, filter))
     return im

IIRC, различия визуально неразличимы - некоторые значения пикселей +/-1 из-за округления, и они имеют тенденцию быть круглыми по краям. Это также не медленно.

cf: http://www.mail-archive.com/image-sig@python.org/msg00248.html

0
ответ дан 3 December 2019 в 16:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: