tutorial opencv - python
DESCRIPTION
Tutorial OpenCV - PythonDicas básicas de processamento de imagemTRANSCRIPT
Tutorial sobre equalização de histograma usando OpenCV e Python
- Como ler e escrever um arquivo imagem
Para ler uma imagem deve-se utilizar a função cv2.imread( ), importante dizer que a imagem deve-se
encontrar no diretório em que se trabalha, ou especificar o caminho.
O código para realizar a leitura: import numpy as np import cv2 # Load an color image in grayscale img = cv2.imread('image.jpg',0)
Utilizando a função cv2.imwrite( ) uma imagem será escrita. O primeiro argumento será o nome do arquivo, o segundo será a imagem que deseja-se salvar. cv2.imwrite('messigray.png',img)
- Como acessar os pixels nas suas diversas formas
Pode-se acessar o valor do pixel através de coordenadas de linhas e colunas. Para uma imagem RGB
retorna-se um vetor com os valores de azul, verde e vermelho. Para imagens em escala de cinza é
retornado apenas a intensidade correspondente.
Um exemplo a seguir:
>>> px = img[100,100] >>> print px [157 166 200] # accessing only blue pixel >>> blue = img[100,100,0] >>> print blue 157
E também é possível modificar os valores dos pixels:
>>> img[100,100] = [255,255,255] >>> print img[100,100] [255 255 255]
- Como obter as propriedades das imagens, tamanho, forma e tipo de dado
O número total de pixels é obtido através de img.size: >>> print img.size 562248
A forma da imagem é acessada através de img.shape. Essa função retorna uma sequência de números
de linhas, colunas e canais (caso a imagem seja colorida).
Exemplo:
>>> print img.shape (342, 548, 3)
Para obter o tipo de dados utiliza-se img.dtype:
>>> print img.dtype uint8
- Como plotar um histograma
Para obter um histograma existem duas possibilidades, utilizando funções de desenho do OpenCV ou
utilizando a biblioteca Matplotlib, neste caso mais simples, pois essa biblioteca já possui uma função
para plotar o histograma.
Exemplo de código:
import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('home.jpg',0) plt.hist(img.ravel(),256,[0,256]); plt.show()