Faça uma imagem de telhas de imagem
-
23-08-2019 - |
Pergunta
Eu vi um par de imagens onde geralmente fazer uma cara para fora de numerosas imagens menores.
Por exemplo, digamos que azulejo 100 imagens em 10x10 grid, e de alguma forma eles variam de tonalidade / sat / col das imagens menores, de modo que, quando você vê o Big Picture , você vê uma outra imagem.
A questão resume-se a - digamos que você tenha uma imagem. Que tipo de algoritmo que você aplicar a essa imagem de modo que o valor médio RGB dessa imagem é o que você definiu?
Solução
- Calcular o matiz / sat / valor de cada telha (uso HSV porque as diferenças menores aqui parecem mais "natural" para o olho humano do que no espaço RGB)
- Agora calcule os mesmos valores para cada n * n telha de sua grande figura
- Encontre os azulejos com os valores HSV mais próximos (mínimo de
sqrt((h1-h2)^2 - (s1-s2)^2 - (v1-v2)^)
) e carimbar que a telha reduzida para n * n no resultado.
Para encontrar o HSV para uma telha, ele deve ser o suficiente para resumir todos os valores RGB e depois dividi-los pelo número de pixels e converter esse RGB final de triplo em HSV. Mas para ser salvar, eu sugiro que você tente que ambas as versões.
qual o artigo Wikipedia para RGB <->. Conversões HSV
Para refinar o algoritmo, você pode dividir cada telha em uma m m e calcular o HSV média para cada elemento da grade. Então, quando você olha para um jogo, dividir a imagem grande em como valores habituais, mas também m calcular m HSV. Selecione que telha corresponde a maioria destes m * m melhor. Isso permite que o algoritmo para selecionar peças que têm a mesma estrutura que o retrato grande.
Para um toque extra, tentar criar uma imagem gigapixel .