O objetivo deste trabalho é compor diversas imagens, criando assim possivelmente mosaico. Não há limites de imagens que podem ser inseridas. Para poder compor imagens com diversos formatos foram aplicados algoritmos de recorte e mesclagem de pixels. O principal recorte está baseado em Scribbles, aonde é utilizado o mesmo algoritmo encontrado no paper de coloração de imagens “Colorization Using Optimization”. A fim de fazer o efeito o mais natural possível à visão humana. A solução antigamente utilizada para esse problema era o Poisson Cloning, que custava muito computacionalmente. O artigo, “Coordinates for Instant Image Cloning”, apresenta uma solução que calcula Mean-Value Coordinates para fazer o blending.
Foram desenvolvidas 3 abordagens de recorte para a imagem em questão. Um recorte baseado em retângulos, aonde um retângulo inteiro da imagem é recortado. Outra abordagem baseada em um intervalo de cores de pixels. Ainda há principal abordagem baseada em Scribbles, aonde é realizado os procedimentos vistos em aula para reconhecer áreas próximas e nos papers de coloração de imagens. O procedimento de verificação é assim verificasse os 8 pixels vizinhos determinado pixel se baseado num determinado padrão de reconhecimento de pixels (se pixels são “pertencentes ao mesmo objeto”) eles forem semelhantes marca-se com valor 1 e coloca eles numa estrutura do tipo fila, o pixel qual teve seus vizinhos verificados marca-se com valor 2, após isso se faz o mesmo procedimento para todos os pixels da fila , sem colocar na fila aqueles pixels que tiverem valor 2, com isso quando a fila estiver vazia significa que todos os pixels daquele objeto foram pegos. O mesmo procedimento é usado para verificar os diferentes Scribbles contidos na imagem, num passo inicial a este recorte. Na figura abaixo podemos ver a interface do software aonde há uma imagem de fundo com índice 0 e uma imagem a ser inserida na imagem fundo(com indice 1). Esta imagem a ser inserida é posta em sua posição. O software irá redimensionar a imagem de fundo baseado nos valores dados em X e Y, e a imagem a ser inserida baseado no tamanho da de fundo.
Na figura 2 é mostrado que podemos compor quantas imagens forem preciso, estamos mostrando o modo padrão do software baseado em moldura e em quadrados. Basta desmarcar os checkbox para ver as imagens
Agora veremos a tela de edição do por Scribbles. Os Scribbles estão em vermelho e devemos desmarcar a opção Manter Scribbles, pois então ao invés de deixar o objeto marcado da imagem ele retira o objeto marcado da imagem. É permitido especificar os valores de sensibilidade em relação a Média dos pixels contido nos Scribbles. Há uma opção de fazer pelos valores máximos e mínimos encontrados no Stripes. Há também botões destinados a preencher espaços em branco nos recortes, bem como uma caneta para adicionar pixels que não foram recortados e uma borracha para retirar pixels recortados demais.
Veja o resultado, note que seria necessário fazer mais dois Scribbles para que se recortasse as partes brancas debaixo do cabelo e a esquerda da imagem.
Na parte de edição de Scribbles é permitido fazer quantos recortes quiser sobre a imagem até que ela fique exatamente como desejado. Abaixo o resultado completo:
O algoritmo de recorte baseado em Scribbles não funciona tão bem quanto o de coloração , pois em coloração pode-se usar valores intermediários, aqui é necessário definir um limiar se mantêm ou se tira o pixel. Quanto ao algoritmo do clone mapping não tivemos tempo de implementar sua versão completa, chegamos a fazer a máscara dos pixels, pegar o pixel da vizinha com a menor diferença de gradiente , mas ficou faltando o calculo das distâncias para se compor os pesos da interpolação, logo o resultado não foi exatamente o que desejávamos. A mesma imagem será inserida em dois fundos diferentes, para melhor comparação dos resultados.