01.
def
negativo(imagem):
02.
nova_imagem
=
[]
03.
for
linha
in
imagem:
04.
nova_linha
=
[]
05.
for
coluna
in
linha:
06.
if
coluna
=
=
0
:
07.
nova_linha.append(
1
)
08.
else
:
09.
nova_linha.append(
0
)
10.
nova_imagem.append(nova_linha)
11.
return
nova_imagem
Podemos fazer de modo um pouco diferente. Criamos uma cópia da imagem inicial, e alteramos de acordo com o enunciado. Neste caso percorremos os ciclos for pela posição, pois estas são necessárias para a actualização da imagem. A cópia é feita usando o método deepcopy do módulo copy para assegurar que as duas imagens ficam totalmente separadas.
01.
import
copy
02.
03.
def
negativo(imagem):
04.
copia
=
copy.deepcopy(imagem)
05.
for
linha
in
range(len(imagem)):
06.
for
coluna
in
range(len(imagem[
0
])):
07.
if
copia[linha][coluna]
=
=
0
:
08.
copia[linha][coluna]
=
1
09.
else
:
10.
copia[linha][coluna]
=
0
11.
return
copia
1.
def
negativo_b(imagem):
2.
copia
=
copy.deepcopy(imagem)
3.
for
linha
in
range(len(imagem)):
4.
for
coluna
in
range(len(imagem[
0
])):
5.
copia[linha][coluna]
=
(copia[linha][coluna]
+
1
)
%
2
6.
return
copia
1.
def
negativo_c(imagem):
2.
copia
=
copy.deepcopy(imagem)
3.
for
linha
in
range(len(imagem)):
4.
for
coluna
in
range(len(imagem[
0
])):
5.
copia[linha][coluna] ^
=
1
6.
return
copia
Sem comentários:
Enviar um comentário