Tuesday 12 September 2017

Mover Média Como Convolução


Lodes Tutorial de gráficos por computador Filtragem de imagens Índice Introdução O filtro de imagem permite que você aplique vários efeitos nas fotos. O tipo de filtragem de imagens descrita aqui usa um filtro 2D semelhante ao incluído no Paint Shop Pro como filtro definido pelo usuário e no Photoshop como filtro personalizado. Convolução O truque de filtragem de imagens é que você possui uma matriz de filtro 2D e a imagem 2D. Então, para cada pixel da imagem, tome a soma dos produtos. Cada produto é o valor de cor do pixel atual ou um vizinho dele, com o valor correspondente da matriz de filtro. O centro da matriz do filtro deve ser multiplicado pelo pixel atual, os outros elementos da matriz do filtro com os pixels vizinhos correspondentes. Esta operação onde você tira a soma de produtos de elementos de duas funções 2D, onde você permite que uma das duas funções se mova sobre cada elemento da outra função, é chamada de Convolução ou Correlação. A diferença entre convolução e correlação é que, para a convolução, você deve espelhar a matriz do filtro, mas geralmente é simétrico de qualquer maneira, então não há diferença. Os filtros com convolução são relativamente simples. Filtros mais complexos, que podem usar funções mais sofisticadas, também existem e podem fazer coisas muito mais complexas (por exemplo, o filtro de lápis colorido no Photoshop), mas tais filtros não são discutidos aqui. A operação de convolução 2D requer um loop de 4 duplas, por isso não é extremamente rápido, a menos que você use filtros pequenos. Aqui, geralmente, estamos usando filtros de 3x3 ou 5x5. Há algumas regras sobre o filtro: seu tamanho precisa ser desigual, de modo que ele tenha um centro, por exemplo, 3x3, 5x5 e 7x7 estão ok. Ele não precisa, mas a soma de todos os elementos do filtro deve ser 1 se desejar que a imagem resultante tenha o mesmo brilho que o original. Se a soma dos elementos for maior do que 1, o resultado será uma imagem mais brilhante, e se for menor que 1, uma imagem mais escura. Se a soma for 0, a imagem resultante não é necessariamente completamente preta, mas ficará muito escura. A imagem tem dimensões finitas, e se você é, por exemplo, calculando um pixel no lado esquerdo, não há mais pixels à esquerda, enquanto estes são necessários para a convolução. Você pode usar o valor 0 aqui ou envolver o outro lado da imagem. Neste tutorial, o envolvimento é escolhido porque pode ser feito facilmente com uma divisão de módulo. Os valores de pixels resultantes após a aplicação do filtro podem ser negativos ou maiores do que 255, se isso acontecer, você pode truncar os mesmos para que os valores menores que 0 sejam Fez 0 e valores maiores que 255 são configurados para 255. Para valores negativos, você também pode ter o valor absoluto em vez disso. No Domínio de Fourier ou Domínio de Freqüência, a operação de convolução torna-se uma multiplicação em vez disso, que é mais rápida. No domínio de Fourier, filtros mais poderosos e maiores podem ser aplicados mais rapidamente, especialmente se você usar a Transformada de Fourier Rápida. Mais sobre isso é no artigo Fourier Transform. Neste artigo, observe bem alguns pequenos filtros muito típicos, como borrão, detecção de bordas e gravação em relevo. Os filtros de imagem não são possíveis para aplicativos e jogos em tempo real, mas eles são úteis no processamento de imagem. Os filtros de áudio digital e eletrônicos também funcionam com convolução, mas em 1D. Heres o código que será usado para experimentar diferentes filtros. Além de usar uma matriz de filtro, ele também possui um fator multiplicador e um viés. Depois de aplicar o filtro, o fator será multiplicado pelo resultado, e o viés adicionado a ele. Então, se você tiver um filtro com um elemento de 0,25, mas o fator é definido como 2, todos os elementos do filtro são, em teoria, multiplicados por dois, de modo que o elemento 0.25 é realmente 0.5. O viés pode ser usado se você quiser tornar a imagem resultante mais brilhante. O resultado de um pixel é armazenado em flutuadores vermelho, verde e azul, antes de convertê-lo para o valor inteiro no buffer de resultados. O próprio cálculo do filtro é um loop de 4 duplas que deve passar por cada pixel da imagem e, em seguida, através de cada elemento da matriz do filtro. A localização imageX e imageY é calculada para que, para o elemento central do filtro, seja x, y, mas para os outros elementos, será um pixel da imagem para a esquerda, direita, superior ou inferior de x, y. O seu módulo é dividido pela largura (w) ou altura (h) da imagem para que os pixels fora da imagem sejam enrolados. Antes do módulo dividi-lo, w ou h também são adicionados a ele, porque esta divisão de módulo não funciona corretamente para valores negativos. Agora, o pixel (-1, -1) se transformará corretamente em pixel (w-1, h-1). Se você quer tomar o valor absoluto de valores menores que zero em vez de truncar, use esse código em vez disso: O Guia de cientistas e engenheiros para processamento de sinal digital Por Steven W. Smith, Ph. D. Capítulo 7: Propriedades da convolução O conceito de correlação pode ser melhor apresentado com um exemplo. A Figura 7-13 mostra os elementos-chave de um sistema de radar. Uma antena especialmente projetada transmite um curto estouro de energia de onda de rádio em uma direção selecionada. Se a onda de propagação atinge um objeto, como o helicóptero nesta ilustração, uma pequena fração da energia é refletida de volta para um receptor de rádio localizado perto do transmissor. O pulso transmitido é uma forma específica que selecionamos, como o triângulo mostrado neste exemplo. O sinal recebido consistirá em duas partes: (1) uma versão deslocada e escalonada do pulso transmitido e (2) ruído aleatório, resultante de ondas de rádio interferentes, ruído térmico na eletrônica, etc. Uma vez que os sinais de rádio viajam a um conhecido Taxa, a velocidade da luz, a mudança entre o pulso transmitido e recebido é uma medida direta da distância para o objeto que está sendo detectado. Este é o problema: dado um sinal de alguma forma conhecida, qual é a melhor maneira de determinar onde (ou se) o sinal ocorre em outro sinal. A correlação é a resposta. A correlação é uma operação matemática que é muito semelhante à convolução. Assim como com a convolução, a correlação usa dois sinais para produzir um terceiro sinal. Este terceiro sinal é chamado de correlação cruzada dos dois sinais de entrada. Se um sinal estiver correlacionado consigo mesmo. O sinal resultante é chamado de autocorrelação. A máquina de convolução foi apresentada no último capítulo para mostrar como a convolução é realizada. A Figura 7-14 é uma ilustração semelhante de uma máquina de correlação. O sinal recebido, x n, eo sinal de correlação cruzada, y n, são fixados na página. A forma de onda que procuramos, t n, comumente chamado de sinal alvo, está contida na máquina de correlação. Cada amostra em y n é calculada movendo a máquina de correlação para a esquerda ou para a direita até apontar para a amostra a ser trabalhada. Em seguida, as amostras indicadas do sinal recebido caem na máquina de correlação e são multiplicadas pelos pontos correspondentes no sinal alvo. A soma desses produtos passa então para a amostra apropriada no sinal de correlação cruzada. A amplitude de cada amostra no sinal de correlação cruzada é uma medida de quanto o sinal recebido se assemelha ao sinal alvo, nesse local. Isto significa que um pico ocorrerá no sinal de correlação cruzada para cada sinal alvo que esteja presente no sinal recebido. Em outras palavras, o valor da correlação cruzada é maximizado quando o sinal de destino está alinhado com as mesmas características no sinal recebido. E se o sinal de destino contiver amostras com um valor negativo, nada muda. Imagine que a máquina de correlação está posicionada de modo que o sinal de destino esteja perfeitamente alinhado com a forma de onda correspondente no sinal recebido. À medida que as amostras do sinal recebido caem na máquina de correlação, elas são multiplicadas pelas amostras correspondentes no sinal alvo. Negligenciando o ruído, uma amostra positiva será multiplicada por si mesma, resultando em um número positivo. Do mesmo modo, uma amostra negativa será multiplicada por si mesma, resultando também em um número positivo. Mesmo que o sinal alvo seja completamente negativo, o pico na correlação cruzada ainda será positivo. Se houver ruído no sinal recebido, também haverá ruído no sinal de correlação cruzada. É um fato inevitável que o barulho aleatório parece uma certa quantidade como qualquer sinal alvo que você possa escolher. O ruído no sinal de correlação cruzada é simplesmente medindo essa semelhança. Exceto por esse ruído, o pico gerado no sinal de correlação cruzada é simétrico entre a esquerda e a direita. Isso é verdade mesmo se o sinal alvo não for simétrico. Além disso, a largura do pico é o dobro da largura do sinal alvo. Lembre-se, a correlação cruzada está tentando detectar o sinal alvo, não recriá-lo. Não há motivos para esperar que o pico pareça ser o sinal alvo. A correlação é a técnica ideal para detectar uma forma de onda conhecida em ruído aleatório. Ou seja, o pico está acima do ruído usando a correlação do que pode ser produzida por qualquer outro sistema linear. (Para ser perfeitamente correto, é ótimo para o ruído branco aleatório). Usar correlação para detectar uma forma de onda conhecida é freqüentemente chamada de filtragem correspondente. Mais sobre isso no Capítulo 17. A máquina de correlação e a máquina de convolução são idênticas, exceto por uma pequena diferença. Conforme discutido no último capítulo, o sinal dentro da máquina de convolução é virado para a esquerda para a direita. Isso significa que os números das amostras: 1, 2, 3 8230 correm da direita para a esquerda. Na máquina de correlação, este flip não ocorre, e as amostras correm na direção normal. Uma vez que esta inversão do sinal é a única diferença entre as duas operações, é possível representar a correlação usando a mesma matemática que a convolução. Isso exige que um dos dois sinais esteja correlacionado, de modo que o flip esquerdo para a direita inerente à convolução seja cancelado. Por exemplo, quando um n e b n, são convolvidos para produzir c n, a equação está escrita: a n b n c n. Em comparação, a correlação cruzada de a n e b n pode ser escrita: a n b - n c n. Ou seja, lançar b n esquerda para direita é realizado invando o sinal do índice, ou seja, b - n. Não deixe a semelhança matemática entre convolução e correlação te enganar, eles representam procedimentos DSP muito diferentes. Convolução é a relação entre um sinal de entrada de sistemas, sinal de saída e resposta de impulso. A correlação é uma maneira de detectar uma forma de onda conhecida em um ambiente ruidoso. A matemática similar é apenas uma coincidência conveniente.

No comments:

Post a Comment