def main():

    img = rw.readImage("../images/lena2.png", False)

    x = range(0, 256)

    output_filename = "hist_lena.png"

    histograma = hist.getHistogram(img, 256)

    config = {
        "filename": "../histogram/" + output_filename,
        "title": u"Histograma:" + output_filename,
        "xlabel": u"Nível de Cinza",
        "ylabel": u"Frequência",
        "color": "grey",
        "alpha": 0.5,
        "grid": "on",
        "xlimit": [0, 255],
    }

    p = plot.plotgraph(x, histograma, config)
    p.savePlot()

    img = rw.readImage("../images/lena2.png", False)

    x = range(0, 256)

    output_filename = "hist_lena_ac.png"

    histograma = hist.getHistogramAc(img, 256)

    config = {
        "filename": "../histogram/" + output_filename,
        "title": u"Histograma:" + output_filename,
        "xlabel": u"Nível de Cinza",
        "ylabel": u"Frequência",
        "color": "grey",
        "alpha": 0.5,
        "grid": "on",
        "xlimit": [0, 255],
    }

    p = plot.plotgraph(x, histograma, config)
    p.savePlot()

    img = rw.readImage("../images/lena2.png", False)

    x = range(0, 256)

    output_filename = "hist_lena_prob.png"

    histograma = hist.getHistogramProb(img, 256)

    config = {
        "filename": "../histogram/" + output_filename,
        "title": u"Histograma:" + output_filename,
        "xlabel": u"Nível de Cinza",
        "ylabel": u"Frequência",
        "color": "grey",
        "alpha": 0.5,
        "grid": "on",
        "xlimit": [0, 255],
    }

    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
def main():

    # LETRA A:
    # Aplicando negativos naslimagens:
    
    img1 = rw.readImage('imgs/img1.jpg',False)
    img1 = e.imagemNegativa(img1)
    rw.writeImage('imgs/img1-negativo.jpg',img1)
    
    img2 = rw.readImage('imgs/img2.jpg',False)
    img2 = e.imagemNegativa(img2)
    rw.writeImage('imgs/img2-negativo.jpg',img2)
    
    img3 = rw.readImage('imgs/img3.jpg',False)
    img3 = e.imagemNegativa(img3)
    rw.writeImage('imgs/img3-negativo.jpg',img3)
    
    # LETRA B
    # Mapeamento dos níveis de cinza de 0 a 255

    img = rw.readImage('imgs/img1.jpg',False)
    img255 = e.transformacaoLinear(img,0,255)
    rw.writeImage('imgs/img1-0a255.jpg',img255)
    
    # LETRA C
    # Mapeamento dos níveis de cinza de 100 a 200
    
    img = rw.readImage('imgs/img1.jpg',False)
    img1100 = e.transformacaoLinear(img,100,200)
    rw.writeImage('imgs/img1-100a200.jpg',img1100)
    
    img = rw.readImage('imgs/img2.jpg',False)
    img2100 = e.transformacaoLinear(img,100,200)
    rw.writeImage('imgs/img2-100a200.jpg',img2100)
    
    img = rw.readImage('imgs/img3.jpg',False)
    img3100 = e.transformacaoLinear(img,100,200)
    rw.writeImage('imgs/img3-100a200.jpg',img3100)
    
    
    # LETRA D
    # Construir o histograma das transformações
    
    img1 = rw.readImage('imgs/img1.jpg',False)
    img2 = rw.readImage('imgs/img2.jpg',False)
    img3 = rw.readImage('imgs/img3.jpg',False)
    img1100 = rw.readImage('imgs/img1-100a200.jpg',False)
    img2100 = rw.readImage('imgs/img2-100a200.jpg',False)
    img3100 = rw.readImage('imgs/img3-100a200.jpg',False)
    
    x = range(0,256)
    
    output_filename_img1 = 'hist_img1.jpg'
    output_filename_img2 = 'hist_img2.jpg'
    output_filename_img3 = 'hist_img3.jpg'
    output_filename_img1100 = 'hist_img1-100a200.jpg'
    output_filename_img2100 = 'hist_img2-100a200.jpg'
    output_filename_img3100 = 'hist_img3-100a200.jpg'
    
    histograma1 = hist.getHistogram(img1, 256)
    histograma2 = hist.getHistogram(img2, 256)
    histograma3 = hist.getHistogram(img3, 256)
    histograma1100 = hist.getHistogram(img1100, 256)
    histograma2100 = hist.getHistogram(img2100, 256)
    histograma3100 = hist.getHistogram(img3100, 256)
    
    config1 = {
    'filename': 'histogram/' + output_filename_img1,
    'title':u'Histograma:' + output_filename_img1,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
    config2 = {
    'filename': 'histogram/' + output_filename_img2,
    'title':u'Histograma:' + output_filename_img2,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
    config3 = {
    'filename': 'histogram/' + output_filename_img3,
    'title':u'Histograma:' + output_filename_img3,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
    config1100 = {
    'filename': 'histogram/' + output_filename_img1100,
    'title':u'Histograma:' + output_filename_img1100,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
    config2100 = {
    'filename': 'histogram/' + output_filename_img2100,
    'title':u'Histograma:' + output_filename_img2100,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
    config3100 = {
    'filename': 'histogram/' + output_filename_img3100,
    'title':u'Histograma:' + output_filename_img3100,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
    p1 = plot.plotgraph(x, histograma1, config1)
    p1.savePlot()
    
    p2 = plot.plotgraph(x, histograma2, config2)
    p2.savePlot()
    
    p3 = plot.plotgraph(x, histograma3, config3)
    p3.savePlot()
    
    p1100 = plot.plotgraph(x, histograma1100, config1100)
    p1100.savePlot()
    
    p2100 = plot.plotgraph(x, histograma2100, config2100)
    p2100.savePlot()
    
    p3100 = plot.plotgraph(x, histograma3100, config3100)
    p3100.savePlot()
def main():
    
    # Gerar a imagem equalizada da imagem 'aereo.png'
    
    img = rw.readImage('img/aereo.png',False)
    imgEqualizada = getImagemEqualizada(img, 256)
    rw.writeImage("img_equalizada/aereo_equalizado.png", imgEqualizada)
    
    
    
    # Gera a imagem equalizada da imagem 'placa.jpg'
    
    img = rw.readImage('img/placa.jpg',False)
    imgEqualizada = getImagemEqualizada(img, 256)
    rw.writeImage("img_equalizada/placa_equalizado.jpg", imgEqualizada)
    
    
    
    # Gera a imagem equalizada da imagem 'daenarys_modificada.jpg'
    
    img = rw.readImage('img/daenarys_modificada.jpeg',False)
    imgEqualizada = getImagemEqualizada(img, 256)
    rw.writeImage("img_equalizada/daenarys_modificada_equalizado.jpeg", imgEqualizada)
    
    
    
    # Gera a imagem equalizada da imagem 'lena_modificada.jpg'
    
    img = rw.readImage('img/lena_modificada.png',False)
    imgEqualizada = getImagemEqualizada(img, 256)
    rw.writeImage("img_equalizada/lena_modificada_equalizado.png", imgEqualizada)
    
    
    
    # Gera o histograma da imagem 'aereo.png' original
    
    img = rw.readImage('img/aereo.png',False)
    x = range(0,256)
    output_filename = 'hist_aereo.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram/' + output_filename,
    'title':u'Histograma da imagem aereo.png original:' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'gray',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # Gera o histograma da imagem 'placa.jpg' original
    
    img = rw.readImage('img/placa.jpg',False)
    x = range(0,256)
    output_filename = 'hist_placa.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram/' + output_filename,
    'title':u'Histograma da imagem placa.jpg original:' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'gray',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # Gera o histograma da imagem 'daenarys_modificada.jpeg' original (sem equalização)
    
    img = rw.readImage('img/daenarys_modificada.jpeg',False)
    x = range(0,256)
    output_filename = 'hist_placa_daenarys_modificada.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram/' + output_filename,
    'title':u'Histograma da imagem daenarys_modificada.jpg original (sem equalização):' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'gray',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # Gera o histograma da imagem 'lena_modificada.png' original (sem equalização)
    
    img = rw.readImage('img/lena_modificada.png',False)
    x = range(0,256)
    output_filename = 'hist_placa_lena_modificada.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram/' + output_filename,
    'title':u'Histograma da imagem lena_modificada.png original (sem equalização):' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'gray',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # Gera o histograma da imagem 'aereo.png' equalizada
    
    img = rw.readImage('img_equalizada/aereo_equalizado.png',False)
    x = range(0,256)
    output_filename = 'hist_aereo_equalizado.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram_equalizado/' + output_filename,
    'title':u'Histograma da imagem aereo.png equalizada:' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'red',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # Gera o histograma da imagem 'placa.png' equalizada
    
    img = rw.readImage('img_equalizada/placa_equalizado.jpg',False)
    x = range(0,256)
    output_filename = 'hist_placa_equalizado.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram_equalizado/' + output_filename,
    'title':u'Histograma da imagem placa.jpg equalizada:' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'red',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # Gera o histograma da imagem 'daenerys_modificada_equalizada.jpeg' equalizada
    
    img = rw.readImage('img_equalizada/daenarys_modificada_equalizado.jpeg',False)
    x = range(0,256)
    output_filename = 'hist_daenerys_modificada_equalizado.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram_equalizado/' + output_filename,
    'title':u'Histograma da imagem daenerys_modificada_equalizada.jpeg equalizada:' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'red',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # Gera o histograma da imagem 'lena_modificada_equalizada.png' equalizada
    
    img = rw.readImage('img_equalizada/lena_modificada_equalizado.png',False)
    x = range(0,256)
    output_filename = 'hist_lena_modificada_equalizado.png'
    histograma = hist.getHistogram(img, 256)
    config = {
    'filename': 'histogram_equalizado/' + output_filename,
    'title':u'Histograma da imagem lena_modificada_equalizada.png equalizada:' + output_filename,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'red',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    p = plot.plotgraph(x, histograma, config)
    p.savePlot()
    
    
    
    # RMSE: comparando 'daenarys_original.jpg' com 'daenarys_modificada_equalizado.jpeg'
    im1 = rw.readImage('img/daenarys_original.jpg',False)
    im2 = rw.readImage('img_equalizada/daenarys_modificada_equalizado.jpeg',False)
    err = rmse(im1, im2)
    # Imprime o rmse
    print("RMSE-daenarys: ",err)
    
    
    
    # RMSE: comparando 'lena_original.png' com 'lena_modificada_equalizado.png'
    im1 = rw.readImage('img/lena_original.png',False)
    im2 = rw.readImage('img_equalizada/lena_modificada_equalizado.png',False)
    err = rmse(im1, im2)
    # Imprime o rmse
    print("RMSE-lena: ",err)
configlog = {
    'filename': '../images/' + output_filename_imglog,
    'title':u'Histograma:' + output_filename_imglog,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
configquadr = {
    'filename': '../images/' + output_filename_imgquadr,
    'title':u'Histograma:' + output_filename_imgquadr,
    'xlabel':u'Nível de Cinza',
    'ylabel':u'Frequência',
    'color': 'grey',
    'alpha': 0.5,
    'grid': 'on',
    'xlimit': [0,255],
    }
    
p = plot.plotgraph(x, histograma, config)
p.savePlot()

plog = plot.plotgraph(x, histogramalog, configlog)
plog.savePlot()

pquadr = plot.plotgraph(x, histogramaquadr, configquadr)
pquadr.savePlot()