Você está na página 1de 5

Procesamentos de imagem – Christofer William Zotto Dal Negro Ru: 1783173

Cabeçalho

import cv2
import numpy as np
from matplotlib import pyplot as plt
from google.colab.patches import cv2_imshow

from google.colab import files


uploaded = files.upload()

exercicio 1

imagem1 = cv2.imread('toycars1.png')[:,:,::-1]
imagem2 = cv2.imread('toycars2.png')[:,:,::-1]
imagem3 = cv2.imread('toycars3.png')[:,:,::-1]
mask1 = cv2.imread('toycars1_mask.png')
mask2= cv2.imread('toycars2_mask.png')

imagem4 = cv2.imread('toycars3.png')
mov1 = cv2.subtract(imagem1,imagem2)

mov2 = cv2.subtract(imagem1,imagem3)

cv2_imshow(mov1)

cv2_imshow(mov2)

movComp1 = cv2.add(mov1,mov2)

movComp = cv2.add(movComp1,imagem1)

cv2_imshow(movComp)

** Imagem 1 ** primeira movimentação


** Imagem 2 *** segunda movimentação
** Imagem 3 ***
Imagem original com rastro de movimentação
Exercicio 2

imagem1 = cv2.imread('toycars1.png',0)
imagem2 = cv2.imread('toycars2.png',0)
mask1 = cv2.imread('toycars1_mask.png',0)
mask2= cv2.imread('toycars2_mask.png',0)

maskSoma = cv2.add(mask1,mask2)

maskInversa = np.zeros([linha,coluna],dtype=int)

for i in range(linha):
for j in range(coluna):
if(maskSoma[i,j] > 0):
maskInversa[i,j] = 0
else:
maskInversa[i,j] = 1

maskFinal = np.zeros([linha,coluna],dtype=int)

for i in range(linha):
for j in range(coluna):
if(mask1[i,j] > 0):
maskFinal[i,j] = 1
else:
maskFinal[i,j] = 0

linha, coluna = mask2.shape

maskFinal2 = np.zeros([linha,coluna],dtype=int)

for i in range(linha):
for j in range(coluna):
if(mask2[i,j] > 0):
maskFinal2[i,j] = 1
else:
maskFinal2[i,j] = 0

resultado = cv2.multiply(imagem1.astype(float),maskFinal.astype(flo
at))
resultado2 = cv2.multiply(imagem2.astype(float),maskFinal2.astype(f
loat))
resultado3 = cv2.multiply(imagem1.astype(float),maskInversa.astype(
float))
foraCarro = cv2.add(resultado,resultado2)
resultadoFinal = cv2.add(resultado3,foraCarro)

cv2_imshow(resultadoFinal);
exercício 3

hp = cv2.imread('HP48G.jpg',0)

yIniSto = 845
yFimSto = 895
xIniSto = 415
xFimSto = 485
stoCort = hp[yIniSto:yFimSto, xIniSto:xFimSto]

stoCortRot = cv2.rotate(stoCort, cv2.ROTATE_180)


cv2_imshow(stoCortRot)

yIniFle = 1320
yFimFle = 1375
xIniFle = 315
xFimFle = 385
fleCort = hp[yIniFle:yFimFle, xIniFle:xFimFle]

fleCortRot = cv2.flip(fleCort,1)
cv2_imshow(fleCortRot)

#cortei quadrado aqui depois pq percebi que ia precisar quando foss


e inserir
yIniNov = 1095
yFimNov = 1185
xIniNov = 660
xFimNov = 750
novCort = hp[yIniNov:yFimNov, xIniNov:xFimNov]

novCortRot = cv2.rotate(novCort, cv2.cv2.ROTATE_90_CLOCKWISE)


cv2_imshow(novCortRot)

linhas, colunas = hp.shape


mask = np.zeros([linhas,colunas],dtype=int)

mask[0:1600, 0:1200] = 1
mask[yIniSto:yFimSto, xIniSto:xFimSto] = 0
mask[yIniFle:yFimFle, xIniFle:xFimFle] = 0
mask[yIniNov:yFimNov, xIniNov:xFimNov] = 0

hpSemBtn = cv2.multiply(hp.astype(float),mask.astype(float))
hpSemBtn[yIniSto:yFimSto, xIniSto:xFimSto] = stoCortRot
hpSemBtn[yIniFle:yFimFle, xIniFle:xFimFle] = fleCortRot
hpSemBtn[yIniNov:yFimNov, xIniNov:xFimNov] = novCortRot

cv2_imshow(hpSemBtn)
Exercicio 1 histograma

niveis de prob
cinza qtd pixel pixel
0 1 1 2 1 0 6 0,3
0 0 0 2 3 1 4 0,2
0 2 2 0 3 2 4 0,2
7 7 7 7 1 3 2 0,1
4 0 0
5 0 0
6 0 0
7 4 0,2
20

HistoGrama
10
8
6
4
2
0 1 2 3 4 5 6 7

Exercício 2 equalização

niveis de prob niveis de movimentação


nivel de cinza cinza qtd pixel pixel cinza CDF de pixel
0 0 0 6 0,3 0 0,3 2
1 0 1 4 0,2 0,142857 0,5 4
2 6 2 4 0,2 0,285714 0,7 5
3 0 3 2 0,1 0,428571 0,8 6
4 4 4 0 0 0,571429 0,8 6
5 4 5 0 0 0,714286 0,8 6
6 2 6 0 0 0,857143 0,8 6
7 4 7 4 0,2 1 1 7
20
histogramaequalizado

10
8
6
4
2
0 1 2 3 4 5 6 7

Você também pode gostar