<jupyter_start><jupyter_text>Suponha a seguinte matriz:[[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14] [15 16 17 18 19] [20 21 22 23 24]]Podemos reduzi-la eliminando linhas e colunas:[[ 0  2  4] [10 12 14] [20 22 24]]Podemos aumenta-la acrescentando linhas e colunas:    [[ 0,  0,  1,  1,  2,  2,  3,  3,  4,  4], [ 5,  5,  6,  6,  7,  7,  8,  8,  9,  9], [10, 10, 11, 11, 12, 12, 13, 13, 14, 14], [15, 15, 16, 16, 17, 17, 18, 18, 19, 19], [20, 20, 21, 21, 22, 22, 23, 23, 24, 24]]<jupyter_code>import cv2
import numpy as np
import matplotlib.pyplot as plt


img = cv2.imread('feijao.jpg')

qtdeLinhas, qtdeColunas, c = img.shape

#reduzir a imagem pela metade
linha = round(qtdeLinhas/2.0)
coluna = round(qtdeColunas/2.0)


W = np.zeros((linha, coluna, 3), dtype=int) #criando uma imagem toda preta (todos os pixels com valores = 0) com metade da imagem no tamanho original


for i in range(linha):
    for j in range(coluna):
        W[i,j,:] = img[i*2,j*2,::-1]
        


plt.imshow(W)
import cv2
import numpy as np
import matplotlib.pyplot as plt

def reduzir_imagem(a,n):
    return a[::n,::n]


img = cv2.imread('lena.jpg')

print(img.shape)

img = reduzir_imagem(img, 5)

print(img.shape)

plt.imshow(img[:,:,::-1])

import cv2
import numpy as np
import matplotlib.pyplot as plt

def aumentar_imagem(a,n):
    return np.repeat((np.repeat(a,n,axis=0)),n,axis=1)


img = cv2.imread('lena.jpg')

print(img.shape)

img = aumentar_imagem(img, 2)

print(img.shape)

plt.imshow(img[:,:,::-1])<jupyter_output>(400, 390, 3)
(800, 780, 3)<jupyter_text>REDUZINDO AS CORES DE UMA IMAGEM<jupyter_code>import cv2
import numpy as np
import matplotlib.pyplot as plt


def nova_cor(x):
    if(x < 30):
        return 30
    elif (x < 90):
        return 90
    elif (x < 180):
        return 200
    else:
        return 255


img = cv2.imread('lena.jpg')

qtdeLinhas, qtdeColunas, c = img.shape

B = img[:,:,0]
G = img[:,:,1]
R = img[:,:,2]

Gray = B/3 + G/3 + R/3 #convertendo imagem colorida em nível de cinza (fazendo a média do R, G e B)

W = np.zeros((qtdeLinhas, qtdeColunas)) #criando uma imagem toda preta (todos os pixels com valores = 0)


for i in range(qtdeLinhas):
    for j in range(qtdeColunas):
        W[i,j] = nova_cor(Gray[i,j])
        

plt.gray()
plt.imshow(W)        

import cv2
import numpy as np
import matplotlib.pyplot as plt
import random


def nova_cor(x):
    if(x > 125):
        return 255
    else:
        return 0


img = cv2.imread('lena.jpg')

qtdeLinhas, qtdeColunas, c = img.shape

B = img[:,:,0]
G = img[:,:,1]
R = img[:,:,2]

Gray = B/3 + G/3 + R/3 #convertendo imagem colorida em nível de cinza (fazendo a média do R, G e B)

W = np.zeros((qtdeLinhas, qtdeColunas)) #criando uma imagem toda preta (todos os pixels com valores = 0)


for i in range(qtdeLinhas):
    for j in range(qtdeColunas):
        if(random.randint(0,9) < 6):
            W[i,j] = nova_cor(Gray[i,j])
        

plt.gray()
plt.imshow(W)        

import cv2
import numpy as np
import matplotlib.pyplot as plt


def nova_cor(x):
    if(x < 30):
        return 60
    elif (x < 120):
        return 120
    elif (x < 180):
        return 180
    return 255


img = cv2.imread('lena.jpg')

qtdeLinhas, qtdeColunas, c = img.shape

B = img[:,:,0]
G = img[:,:,1]
R = img[:,:,2]

Gray = B/3 + G/3 + R/3 #convertendo imagem colorida em nível de cinza (fazendo a média do R, G e B)

W = np.zeros((qtdeLinhas, qtdeColunas)) #criando uma imagem toda preta (todos os pixels com valores = 0)


for i in range(1, qtdeLinhas-1):
    for j in range(1, qtdeColunas-1):
        A = Gray[i-1,j]
        B = Gray[i, j+1]
        C = Gray[i+1, j]
        D = Gray[i, j-1]
        
        M = min(A,B,C,D)
        
        W[i,j] = nova_cor(M)
        

plt.gray()
plt.imshow(W)<jupyter_output><empty_output><jupyter_text>DITHERING![alt text](dithering.jpg "Vizinhos de um pixel")<jupyter_code>import cv2
import numpy as np
import matplotlib.pyplot as plt


def nova_cor(x):
    if(x < 30):
        return 60
    elif (x < 120):
        return 120
    elif (x < 180):
        return 180
    return 255


img = cv2.imread('lena.jpg')

qtdeLinhas, qtdeColunas, c = img.shape

B = img[:,:,0]
G = img[:,:,1]
R = img[:,:,2]


Gray = B/3 + G/3 + R/3

W = np.zeros((qtdeLinhas,qtdeColunas))



for i in range(1, qtdeLinhas-1):
    for j in range(qtdeColunas-1):
        
        W[i,j] = nova_cor(Gray[i,j])
        
        
        erro = Gray[i,j] - nova_cor(Gray[i,j])
        
        #espalhar o erro para os pixels vizinhos
        Gray[i, j+1] = Gray[i, j+1] + erro * (7.0/16.0)
        Gray[i+1, j-1] = Gray[i+1, j-1] + erro * (3.0/16.0)
        Gray[i+1, j] = Gray[i+1, j] + erro * (5.0/16.0)
        Gray[i+1, j+1] = Gray[i+1, j+1] + erro * (1.0/16.0)
        
        
        

plt.gray()
plt.imshow(W)    

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('lena.jpg')
img2 = cv2.imread('logo_unb.jpg')

qtdeLinhas, qtdeColunas, c = img.shape

for i in range(qtdeLinhas):
    for j in range(qtdeColunas):
        if(img2[i,j,0] > 10 or img2[i,j,1] > 10 or img2[i,j,2] > 10):
            if(img2[i,j,0] != 255 and img2[i,j,1] != 255 and img2[i,j,2] != 255):
                img[i,j] = img2[i,j]
            

#fazendo as conversões de cores
#img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

#C = img+img2


plt.imshow(img[:,:,::-1])<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1552967276760954, 'fraction_numerical': 0.06563135514882604, 'mean_word_length': 2.7258953168044076, 'pattern_counts': {'":': 0, '<': 22, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '151602', 'license': 'MIT', 'n_tokens_mistral': 2637, 'n_tokens_neox': 2413, 'n_words': 626, 'path': '1 - Aulas/aula3/aula3.ipynb', 'repo_name': 'helpthx/VisaoComputacional', 'size': '5409'}