Ir ao conteúdo
  • Cadastre-se

Python Melhoramento da qualidade de uma imagem através da equalização de histograma


Posts recomendados

Esse código está plotando a mesma imagem as 3 vezes.. e eu gostaria que plotasse 4 imagens, a imagem original, a imagem expandida, a imagem comprimida e a imagem final melhorada. Alguém pode me ajudar? Faz muito tempo que não mexo em códigos e por isso to sofrendo aqui. 

 

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

#Funcao para expansao do histograma
def hst(img):
    vmax = np.amax(img, axis=(0,1))
    vmin = np.amin(img, axis=(0,1))
    #vmdn = np.median(img, axis=(0,1))
    #vmed = np.mean(img, axis=(0,1))
    bw = (vmax - vmin)  #*np.sqrt(vmed/vmdn)
    cena = np.clip((img - vmin)/(bw +0.001), 0., 1.0)
    return cena

#Funcao para compressão do histograma
def hsk(img):
    vmin = np.amin(img, axis=(0,1))
    vmax = np.amax(img, axis=(0,1))
    #bw = vmax*vmax - np.sqrt(vmin)
    bw = vmax - vmin
    haze = img*(bw) + (vmin)
    return haze

#Funcao para plotar uma imagem
def plot(img):
    tx = 1.0
    plt.subplots_adjust(left=0.2, bottom=0.1, right=1.5, top=tx, wspace=None, hspace=0.1)
    plt.subplot(1, 1, 1)
    plt.axis('off')
    plt.imshow(img)      #mostrando via maplotlib
    plt.title('')
    plt.show()
    return

# Funcao para carregar uma imagem 
def load(img_char, path, rsz):
    os.chdir(path)
    img = cv.imread(img_char, 1)
    img = img[:,:,::-1]   #Converte para o formato RGB
    if(rsz): img = cv.resize(img, (256,256), interpolation = cv.INTER_AREA)
    img = np.nan_to_num(img, nan = 0.001, posinf = 255, neginf = 0)
    img = np.array(img/255, dtype=float)
    return img

# Carrega a imagem
caminho = '/content'
img_a = load('img.jpg', caminho, 0)
img_exp = hst(img_a)        # Imagem com histograma expandido
img_comp = hsk(img_a)       # Imagem com histograma contraido

#Plota as imagens
plot(img_a)
plot(img_exp)
plot(img_comp)

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!