P.D.I. em COLAB
No módulo anterior usamos uns vetores. Podemos fazer o mesmo com matrizes, tanto com numpy como com matplotlib. Uma imagem digital é uma matriz, então, isto se torna atrativo para nós.
Vamos criar uma matriz 10x10 cheia de zeros e alterar o valor de algumas células, em um novo programa
import matplotlib.pylab as plt
tam=10 # definir o tamanho da grade
X=np.zeros([tam, tam],dtype = float)
X[2,2]=255
X[5,5]=255
X[4, 8]=255
print(X)
# mostrar como imagem
plt.imshow(X)
plt.show()
Agora, você pode desenhar uma carinha sorridente e mostrar como imagem?
Pode começar criando uma matriz vazia.
Depois, altere o valor de alguns pixels para fazer a "arte"
Aqui voce aprende:
como sempre, importe as bibliotecas básicas.
A função io da biblioteca skimage permite ler uma imagem da WEB, especificando o endereço. Você pode tentar depois com outras imagens. Agora, se concentre neste exemplo.
import cv2 as cv
import numpy as np
from google.colab.patches import cv2_imshow
Ler a imagem
Após ler a imagem, podemos ler seu tamanho usando o comando SHAPE.
Finalmente, podemos visualizar a imagem usando o comando imshow da biblioteca CV2.
url="https://docs.ufpr.br/~centeno/m_pdi/exepy/imagens/crops_RGB.tif"
I = io.imread(url)
nl,nc, nb= I.shape
print(nl, nc, 'numero de bandas',nb)
cv2_imshow(I)
Agora, criamos uma imagem vazia com o mesmo tamanho da anteriormente lida, porém com apenas uma banda.
OBS: como para calcular a media devemos somar os valores dos pixels em três bandas, a soma pode eventualmente ser maior que 255 (o máximo para 8 bits UINT8) por isso, vamos trabalhar com a imagem em float.
calcular a média de cada pixel considerando as três bandas:
for j in range( nc):
b1=float(I[i,j,0])
b2=float(I[i,j,1])
b3=float(I[i,j,2])
S[i,j]= np.uint8 ( (b1+b2+b3)/3 )
cv2_imshow(S)
Finalmente, você pode usar o Google Drive para ler e armazenar imagens. para isto, crie uma pasta "fotos" no seu google drive e armazene nela uma imagem colorida de sua preferência.
Para ler a imagem, deve usar uma biblioteca específica para ler e salvar no drive. A biblioteca google.colab DRIVE.
Depois, monte o drive como uma pasta, com MOUNT
import matplotlib.pylab as plt
from google.colab.patches import cv2_imshow # para mostrar a imagem
from skimage import io
# para salvar no drive
from google.colab import drive
drive.mount('/content/gdrive')
nome="/content/drive/My Drive/images/igreja.jpg" # le uma das imagens com nome especificado. Cuidado,com o uso de maiúsculas.
imgRGB = cv2.imread(nome) # ler imagem deste endereço
# salvar como nova imagem
io.imsave('/content/gdrive/My Drive/fotos/saida.tif', imgRGB)
Leia a imagem "igreja.jpg" do seu drive e crie um "x" nela, traçãdo duas linhas pretas nas diagonais.
.
e poderia traçar duas linhas brancas?