Como eu realizaria muitas operações aleatórias em um conjunto de imagens?
-
27-09-2019 - |
Pergunta
Preciso manipular uma imagem de modo que um sub-retângulo dela seja invertido ou girado em relação ao restante da imagem. Aqui está um exemplo:
Essa manipulação precisa acontecer muitas vezes, sempre produzindo uma nova imagem modificada do original (em vez de aplicar modificações sucessivas a uma imagem).
O tamanho do sub-retângulo precisa variar sistematicamente (talvez em incrementos de 5% de 10% a 75%) e a localização do sub-retângulo precisa variar aleatoriamente.
Por fim, esse procedimento precisa ser realizado em um grande número de imagens.
Como eu iria fazer isso?
Minhas opções são PHP, C#ou lote no GIMP. Dito isto, estou preparado para aprender algo novo se houver uma abordagem particularmente sensata.
Solução
Eu diria ir com C# e escrever um pouco de utilidade.
o Graphics
A classe pode ter todos os métodos que você precisa.
Id sugerir que você olhe para o DrawImage
e a RotateTransform
funções.
Outras dicas
Isso é algo que precisa ser feito programaticamente ou é um acordo único?
Se programaticamente, isso * pode ser feito no PHP usando a biblioteca GD, mas não será fácil ou rápido, devido ao fato de você ter que escrever uma rotina para mover manualmente os pixels.
Um resumo da "Fomentalidade" da sua solicitação com base em uma abordagem da biblioteca PHP GD:
- A manipulação acontece muitas vezes, sempre produzindo uma nova imagem modificada do original: fácil
- O tamanho do sub-retângulo precisa variar sistematicamente, fácil
- A localização do sub-retângulo precisa muito aleatoriamente, fácil
- Rotação em imagem dificuldade moderada e lento
- Executando isso em um grande número de imagens, fácil
Não tenho experiência suficiente em C# Of Gimp para fornecer respostas definitivas lá; Desculpe.
Você pode pegar seu idioma favorito, todos eles serão capazes, codificá -lo e executá -lo?