. PDI em python


Processamento digital de imagens
Histograma de imagem


Histograma

A seguir, são mostradas as etapas para a visualização do histograma de uma imagem de 256 valores (8 bits) na tela do computador.

use a imagem puppy em tif. passos

  1. Ler a imagem (I)
  2. alocar um vetor com 256 valores = 0 ... H(x)
  3. varrer a imagem (variando linhas e colunas)
  4. em cada posição:
    • ler o valor digital v=I(linha, coluna)
    • incrementar o contador deste valor digital no histograma      H(v)= H(v)+1
  5. visualizar resultado na tela

Código em python.

from skimage import io
import cv2 as cv
import numpy as np
from google.colab.patches import cv2_imshow
  
# abrir imagem
url="https://docs.ufpr.br/~centeno/m_pdi/exepy/imagens/puppy.tif"
I = io.imread(url)
nl,nc, nb= I.shape
print(nl, nc, 'numero de bandas',nb)
cv2_imshow(I)
# ler imagem
B1= plt.imread('imagem.tif')
nl, nc = B1.shape # recupera o tamanho da imagem em linhas e colunas nl, nc
print(nl, nc)
h = [0 for x in range(256)] # aloca vetor nulo para novo histograma
# varrer imagem e, para cada posição, ler o valor e
# somar uma unidade na correspondente posição do histograma
for L in range(nl):
   for C in range (nc):
     v=np.uint8( np.round( X[L,C] ) ) # valor digital da posicao L,C
     h[v]=h[v]+1 # soma um ao histograma nesta posicao
# ver grafico
plt.plot(h, label='histograma')
plt.show()

tente no seu computador...
Se der certo, o histograma deve ser parecido a este:

.