Introdução
Bem-vindo a este tutorial sobre OpenCV-Python! Este tutorial abordará algumas operações básicas em imagens usando a biblioteca OpenCV em Python.
Bem-vindo a este tutorial sobre OpenCV-Python! Este tutorial abordará algumas operações básicas em imagens usando a biblioteca OpenCV em Python.
Antes de iniciar este laboratório, os desafiantes precisam abrir o Python Shell no terminal em /home/labex/project
cd /home/labex/project
python3
Primeiramente, vamos começar carregando uma imagem e exibindo-a usando OpenCV:
import cv2
## Carrega uma imagem
image = cv2.imread('image.jpg')
## Exibe a imagem
cv2.imwrite('Original Image.jpg', image)
Para acessar um valor de pixel, simplesmente precisamos fornecer suas coordenadas (x, y) da seguinte forma:
pixel_value = image[y, x]
O valor do pixel é um array contendo os canais de cor (B, G, R). Para modificar um valor de pixel, basta atribuir um novo valor às coordenadas correspondentes.
Aqui está um exemplo para definir o pixel [0:9, 0:9] para vermelho:
for x in range(10):
for y in range(10):
image[x, y] = [0, 0, 255] ## Define o pixel para vermelho
cv2.imwrite('Modified Image.jpg', image)
A imagem original se parece com:

Imagem após modificar os valores de pixel na faixa de [0:9,0:9]:

Os usuários podem verificar a correção do resultado executando o código abaixo.
As propriedades da imagem incluem o número de linhas, colunas e canais, bem como o tipo de dados da imagem e o número total de pixels.
Para acessar a forma da imagem (linhas, colunas e canais), use o atributo shape:
height, width, channels = image.shape
print(height, width, channels)
## output
## 360 640 3
Para acessar o número total de pixels, use o atributo size:
total_pixels = image.size
print(total_pixels)
## output
## 691200
Para acessar o tipo de dados da imagem, use o atributo dtype:
image_dtype = image.dtype
print(image_dtype)
## output
## uint8
Uma Região de Interesse (ROI) é uma sub-imagem que podemos extrair da imagem original. Para definir uma ROI, só precisamos fornecer as coordenadas de início e fim.
roi = image[start_y:end_y, start_x:end_x]
Por exemplo, para extrair uma ROI de 100x100 pixels do canto superior esquerdo, podemos fazer o seguinte:
roi = image[0:100, 0:100]
cv2.imwrite('ROI.jpg', roi)
A imagem gerada ROI.jpg se parece com:

Para dividir uma imagem em seus canais de cor (B, G, R), use a função cv2.split():
b, g, r = cv2.split(image)
Agora podemos exibir os canais individuais usando cv2.imwrite().
Para mesclar os canais de volta em uma única imagem, use a função cv2.merge():
merged_image = cv2.merge((b, g, r))
Por exemplo, para trocar os canais vermelho e azul, podemos fazer o seguinte:
swapped_image = cv2.merge((r, g, b))
cv2.imwrite('Swapped Channels Image.jpg', swapped_image)
A imagem gerada Swapped Channels Image.jpg se parece com:

E é isso! Você aprendeu algumas operações básicas em imagens usando OpenCV-Python. Estes são conceitos importantes para entender ao trabalhar com imagens em aplicações de visão computacional e processamento de imagens. Ao dominar essas operações básicas, você estará no caminho certo para desenvolver algoritmos de processamento de imagem mais avançados.