Olá pessoal, sou acadêmica em Sistemas de Informação, e gostaria da ajuda de você's para a resolução de um exercicio. Quem puder me ajudar eu agradeço muito.
Lembrando que a linguagem que usamos é C.
Desenvolva um programa em linguagem C responsável por efetuar o processo descrito abaixo:
Dada uma matriz representando uma Imagem Digital e outra matriz contendo valores quaisquer
(Máscara). Efetue o processo de convolução da Máscara pela Imagem Digital.
A Máscara também representa uma imagem digital, em geral quadrada, menor que a imagem original.
Os valores da Máscara são utilizados como pesos a serem aplicados sobre os níveis digitais dos pixels da
imagem original.
Na ilustração da figura acima, a máscara é aplicada sobre a área equivalente da imagem original e o
resultado será a atribuição de um novo valor digital para o pixel central (marcado com X). Os pesos das
máscaras podem ser valores positivos, negativos ou zero.
O Procedimento de convolução:
o A convolução da máscara de pesos pela imagem é um processo de aplicação dessa máscara a todos os
pixels da imagem digital.
o No processo de convolução o novo valor do nível digital do pixel marcado com X (mostrado na figura
acima) é calculado pela somatória dos valores digitais dos pixels vizinhos, ponderados pelos
respectivos pesos da máscara. A formulação matemática geral, para a convolução de uma máscara
3x3 sobre um pixel qualquer, p[i,j], da imagem digital, é dada por:
p[i,j] = a*p[i-1,j-1] + b*p[i-1, j ] + c*p[i-1,j+1] +
d*p[ i ,j-1] + e*p[ i , j ] + f*p[ i ,j+1] +
g*p[i+1,j-1] + h*p[i+1, j ] + i*p[i+1,j+1]
o Após o cálculo do valor de X, o cálculo é repetido com a máscara deslocada 1 pixel para a direita, e
depois mais1 pixel para a direita, e assim por diante até encontrar a última coluna da imagem. Depois
desloca-se a máscara para o início da próxima linha e repete-se todo o processo até que se alcance o
final da imagem.
o Observe que os valores digitais da borda da imagem original não são modificados. Assim os valores
de i e j da formulação geral acima devem ser maiores que 0 e menores que nlin-2 e ncol-2
respectivamente.