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?

Foi útil?

Solução

  1. 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)
  2. Agora calcule os mesmos valores para cada n * n telha de sua grande figura
  3. 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 .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top