Как бы я выполнил много случайных операций с набором изображений? - PullRequest
1 голос
/ 22 ноября 2010

Мне нужно манипулировать изображением таким образом, чтобы его прямоугольник был перевернут или повернут относительно остального изображения. Вот пример:

alt text

Эта манипуляция должна выполняться много раз, каждый раз создавая новое модифицированное изображение из оригинала (а не применяя последовательные модификации к одному изображению).

Размер под-прямоугольника должен систематически меняться (возможно, с шагом 5% от 10% до 75%), а расположение под-прямоугольника должно меняться случайным образом.

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

Как мне поступить об этом?

Мои варианты: PHP, C # или пакетная обработка в Gimp. Тем не менее, я готов узнать что-то новое, если есть особенно разумный подход.

Ответы [ 3 ]

2 голосов
/ 22 ноября 2010

Я бы сказал, идите с C # и напишите себе небольшую утилиту.

Класс Graphics может содержать все необходимые вам методы.

Я бы посоветовал вам взглянуть на функции DrawImage и RotateTransform.

1 голос
/ 22 ноября 2010

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

Если программно, это * может * быть сделано в PHP с использованием библиотеки GD, но это не будет легкоили быстро, из-за того, что вам придется написать подпрограмму для перемещения пикселей вручную.

Краткое описание "простоты" вашего запроса на основе подхода библиотеки PHP GD:

  • Манипуляция происходит много раз, каждый раз создавая новое измененное изображение из оригинала: easy
  • Размер под прямоугольника должен систематически меняться, easy
  • Расположение под-прямоугольника должно быть очень случайным, легким
  • поворотом в изображении средней сложности и медленным
  • Выполнение этого на большом количестве изображений: easy

У меня недостаточно опыта в C # из Gimp, чтобы дать вам какие-либо окончательные ответы там;К сожалению.

0 голосов
/ 22 ноября 2010

Вы могли бы взять ваш любимый язык, они все 3 будут способны, закодировать его и запустить?

...