Ir ao conteúdo
  • Cadastre-se

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


Tati Schein

Posts recomendados

Esse código está plotando 3 imagens iguais, e na verdade eu quero que ele plote 4 imagens: a imagem original, a imagem com o histograma expandido, a imagem com o histograma comprimido e a imagem final melhorada. Podem me ajudar? 

OBS: estou rodando o código no google colab

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
  • Confuso 1
Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!