Tarefa 19 - Aula 23
- Ulisses Silva
- 27 de nov. de 2018
- 2 min de leitura
Desenvolver uma forma para resolver o problema de pixels pretos utilizando moda em imagens com muita variação.

O quê? Pera não entendi...
Primeiramente, temos que contextualizar as coisas. Durante a sala de aula, nos foi passado um conjunto de imagens de um mesmo local em momentos diferentes, fazendo um total de 11 imagens. Como era um local público, haviam pessoas pelas fotos.
O objetivo da aula, era usar a estatística nas imagens, para gerar uma espécie de filtro que removesse as pessoas da imagem e deixar só o lugar aparecendo. Para isso, já que cada pixel possui uma cor, tivemos que ordenar os pixels de cada ponto nas coordenadas X e Y de cada imagem e compará-los estatisticamente.
Usamos então a mediana, após organizar cada conjunto de pixel. Já que as pessoas aparecem em pontos diferentes e suas cores são escuras, esse método funcionou para remover as pessoas e ficou um resultado bastante aceitável. (vide imagem)

Em seguida nos foi passado o código para fazer o mesmo, mas agora com outro dado estatístico, a Moda. Como a moda é o número que mais aparece, dado uma lista de números, o resultado deveria ser algo parecido com o da mediana, removendo as pessoas. No entanto o resultado foi o seguinte:

A Solução!
Pois bem, a tarefa se trata então de, usando a Moda, remover os pontos pretos da imagem. Mas primeiramente, por que ficam esses pontos pretos? Sabemos que no computador a cor preta é representada pelo número 0.
Logo, podemos inferir que o código que retorna o valor da moda está retornando 0. Isso ocorre por um dos dois motivos, o 0 foi a moda mesmo, ou, não houve moda devido a diferença dos números. Pois no código a moda só existe se pelo menos um número for igual a outro.
Para solucionar essa questão acrescentei um "if" no final do laço que calcula a moda, para que se a moda for 0 e ao mesmo tempo o número do pixel atual for diferente de 0, a moda se torna aquele número. Então com essas pequenas linhas de código a seguir resolvi o problema:
"if (qtdModa == 0 && cores[i] != 0) {
numModa = cores[i];
}"
O resultado ainda não ficou tão bom como no caso da mediana, mas ficou bem mais aceitável do que com aquela quantia enorme de pixels pretos. Resultado:


Bom gente, é com aquela pontada de orgulho que me despeço dessa última postagem de tarefas! \o/
Agradeço a todos que tiveram paciência de acompanhar esse portfólio inteiro. Bom dia, Boa tarde e Boa noite à todos!
Link da pasta do código em Processing: Baixar a pasta do código!
Comments