Métodos de zoom
Neste tutorial, apresentaremos formalmente três métodos de zoom que foram apresentados no tutorial de Introdução ao zoom.
Métodos
- Replicação de pixels ou (interpolação de vizinho mais próximo)
- Método de espera de pedido zero
- Zoom K vezes
Cada um dos métodos tem suas próprias vantagens e desvantagens. Começaremos discutindo a replicação de pixels.
Método 1: replicação de pixel:
Introdução:
Também é conhecido como interpolação de vizinho mais próximo. Como o próprio nome sugere, neste método, apenas replicamos os pixels vizinhos. Como já discutimos no tutorial de Amostragem, esse zoom nada mais é do que aumentar a quantidade de amostra ou pixels. Este algoritmo funciona com o mesmo princípio.
Trabalhando:
Neste método, criamos novos pixels a partir dos pixels já fornecidos. Cada pixel é replicado neste método n vezes na linha e na coluna e você obtém uma imagem ampliada. É simples assim.
Por exemplo:
se você tem uma imagem de 2 linhas e 2 colunas e deseja ampliá-la duas ou 2 vezes usando a replicação de pixels, veja aqui como fazer.
Para um melhor entendimento, a imagem foi tirada em forma de matriz com os valores dos pixels da imagem.
1 | 2 |
3 | 4 |
A imagem acima tem duas linhas e duas colunas, primeiro faremos zoom na linha.
Zoom inteligente de linha:
Quando aplicamos o zoom na linha, vamos simplesmente copiar os pixels das linhas para sua nova célula adjacente.
Aqui está como seria feito.
1 | 1 | 2 | 2 |
3 | 3 | 4 | 4 |
Como você pode ver na matriz acima, cada pixel é replicado duas vezes nas linhas.
Ampliação do tamanho da coluna:
O próximo passo é replicar cada uma das colunas do pixel, que iremos simplesmente copiar o pixel da coluna para sua nova coluna adjacente ou simplesmente abaixo dela.
Aqui está como seria feito.
1 | 1 | 2 | 2 |
1 | 1 | 2 | 2 |
3 | 3 | 4 | 4 |
3 | 3 | 4 | 4 |
Novo tamanho de imagem:
Como pode ser visto no exemplo acima, uma imagem original de 2 linhas e 2 colunas foi convertida em 4 linhas e 4 colunas após o zoom. Isso significa que a nova imagem tem dimensões de
(Linhas da imagem original * fator de zoom, colunas da imagem original * fator de zoom)
Vantagem e desvantagem:
Uma das vantagens dessa técnica de zoom é que ela é muito simples. Você apenas tem que copiar os pixels e nada mais.
A desvantagem dessa técnica é que a imagem foi ampliada, mas a saída ficou muito borrada. E conforme o fator de zoom aumentava, a imagem ficava cada vez mais borrada. Isso acabaria resultando em uma imagem totalmente borrada.
Método 2: suspensão de pedido zero
Introdução
O método de espera de ordem zero é outro método de zoom. Também é conhecido como zoom duas vezes. Porque ele só pode dar zoom duas vezes. Veremos no exemplo abaixo porque isso acontece.
Trabalhando
No método de espera de ordem zero, pegamos dois elementos adjacentes das linhas respectivamente e, em seguida, os adicionamos e dividimos o resultado por dois, e colocamos seu resultado entre esses dois elementos. Primeiro fazemos isso em linha e depois em coluna.
Por exemplo
Vamos pegar uma imagem das dimensões de 2 linhas e 2 colunas e ampliá-la duas vezes usando a ordem de espera zero.
1 | 2 |
3 | 4 |
Primeiro faremos zoom na linha e depois na coluna.
Zoom inteligente em linha
1 | 1 | 2 |
3 | 3 | 4 |
À medida que pegamos os dois primeiros números: (2 + 1) = 3 e então o dividimos por 2, obtemos 1,5, que é aproximado de 1. O mesmo método é aplicado na linha 2.
Ampliação da coluna sábia
1 | 1 | 2 |
2 | 2 | 3 |
3 | 3 | 4 |
Pegamos dois valores de pixel de coluna adjacentes que são 1 e 3. Adicionamos eles e obtemos 4. 4 é então dividido por 2 e obtemos 2, que é colocado entre eles. O mesmo método é aplicado em todas as colunas.
Novo tamanho de imagem
Como você pode ver que as dimensões da nova imagem são 3 x 3, enquanto as dimensões da imagem original são 2 x 2. Isso significa que as dimensões da nova imagem são baseadas na seguinte fórmula
(2 (número de linhas) menos 1) X (2 (número de colunas) menos 1)
Vantagens e desvantagens.
Uma das vantagens dessa técnica de zoom é que ela não cria uma imagem tão borrada quando comparada ao método de interpolação do vizinho mais próximo. Mas também tem a desvantagem de só funcionar com a potência de 2. Isso pode ser demonstrado aqui.
Razão para o dobro do zoom:
Considere a imagem acima de 2 linhas e 2 colunas. Se tivermos que ampliar 6 vezes, usando o método de espera de ordem zero, não podemos fazer isso. Como a fórmula nos mostra isso.
Ele só poderia ampliar na potência de 2 2,4,8,16,32 e assim por diante.
Mesmo se você tentar aumentar o zoom, não conseguirá. Porque a princípio quando você vai dar zoom duas vezes, e o resultado seria o mesmo mostrado na coluna ampliando com dimensões iguais a 3x3. Em seguida, você aplicará o zoom novamente e obterá dimensões iguais a 5 x 5. Agora, se fizer novamente, obterá dimensões iguais a 9 x 9.
Já de acordo com a sua fórmula, a resposta deve ser 11x11. Como (6 (2) menos 1) X (6 (2) menos 1) dá 11 x 11.
Método 3: zoom K-Times
Introdução:
K vezes é o terceiro método de zoom que vamos discutir. É um dos algoritmos de zoom mais perfeitos discutidos até agora. Ele atende aos desafios de duas vezes zoom e replicação de pixels. K neste algoritmo de zoom significa fator de zoom.
Trabalhando:
Funciona assim.
Em primeiro lugar, você deve pegar dois pixels adjacentes como fez no zoom duas vezes. Então você tem que subtrair o menor do maior. Chamamos essa saída (OP).
Divida a saída (OP) com o fator de zoom (K). Agora você tem que adicionar o resultado ao valor menor e colocar o resultado entre esses dois valores.
Adicione o valor OP novamente ao valor que acabou de colocar e coloque-o novamente ao lado do valor colocado anteriormente. Você tem que fazer isso até colocar os valores de k-1 nele.
Repita a mesma etapa para todas as linhas e colunas e você obterá imagens ampliadas.
Por exemplo:
Suponha que você tenha uma imagem de 2 linhas e 3 colunas, que é fornecida a seguir. E você tem que dar zoom três ou três vezes.
15 | 30 | 15 |
30 | 15 | 30 |
K, neste caso, é 3. K = 3.
O número de valores que devem ser inseridos é k-1 = 3-1 = 2.
Zoom inteligente em linha
Pegue os primeiros dois pixels adjacentes. Quais são 15 e 30.
Subtraia 15 de 30. 30-15 = 15.
Divida 15 por k. 15 / k = 15/3 = 5. Nós o chamamos de OP. (Onde op é apenas um nome)
Adicione OP para diminuir o número. 15 + OP = 15 + 5 = 20.
Adicione OP a 20 novamente. 20 + OP = 20 + 5 = 25.
Fazemos isso 2 vezes porque temos que inserir valores de k-1.
Agora repita esta etapa para os próximos dois pixels adjacentes. Isso é mostrado na primeira tabela.
Depois de inserir os valores, você deve classificar os valores inseridos em ordem crescente, para que permaneça uma simetria entre eles.
É mostrado na segunda tabela
Tabela 1.
15 | 20 | 25 | 30 | 20 | 25 | 15 |
30 | 20 | 25 | 15 | 20 | 25 | 30 |
Mesa 2.
Ampliação da coluna sábia
O mesmo procedimento deve ser executado em colunas. O procedimento inclui pegar os dois valores de pixel adjacentes e, em seguida, subtrair o menor do maior. Depois disso, você deve dividir por k. Armazene o resultado como OP. Adicione OP ao menor e, em seguida, adicione OP novamente ao valor que vem na primeira adição de OP. Insira os novos valores.
Aqui está o que você conseguiu depois de tudo isso.
15 | 20 | 25 | 30 | 25 | 20 | 15 |
20 | 21 | 21 | 25 | 21 | 21 | 20 |
25 | 22 | 22 | 20 | 22 | 22 | 25 |
30 | 25 | 20 | 15 | 20 | 25 | 30 |
Novo tamanho de imagem
A melhor maneira de calcular a fórmula para as dimensões de uma nova imagem é comparar as dimensões da imagem original e da imagem final. As dimensões da imagem original eram 2 X 3. E as dimensões da nova imagem são 4 x 7.
A fórmula é:
(K (número de linhas menos 1) + 1) X (K (número de colunas menos 1) + 1)
Vantagens e desvantagens
A única das vantagens claras que o algoritmo de zoom de tempo k tem que é capaz de calcular o zoom de qualquer fator que seja o poder do algoritmo de replicação de pixels, também dá resultado melhorado (menos borrado) que era o método de manutenção de ordem zero. Portanto, compreende o poder dos dois algoritmos.
A única dificuldade desse algoritmo é que ele precisa ser classificado no final, o que é uma etapa adicional e, portanto, aumenta o custo de computação.