#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Aug 8 18:16:32 2018 @author: allanmartins """ from matplotlib import pyplot as plt import numpy as np img = np.uint8(255*np.round(255*plt.imread('bebel48x48x5.png'))) values = np.unique(img) for (i, v) in zip(range(len(values)), values): img[img==v] = 5-i fig = plt.figure(figsize=(20, 20)) line = -0.5 for I in img: plt.cla() arrayTmp = np.concatenate((np.array([1.0],dtype=np.float32),np.abs(np.diff(I)))) arrayTmp = np.greater_equal(arrayTmp, 0.5) idx = [i for (i, v) in zip(range(len(arrayTmp)),list(arrayTmp)) if v>0] levels = I[idx] idx.append(48) # fig = plt.figure(figsize=(15, 15)) plt.set_cmap('gray') plt.imshow(img, vmin=1, vmax=6) for i in range(len(idx)-1): lineColor = [1, 0.2, 0.2] textColor = [1, 1, 1] if not levels[i] == 5 else [0, 0, 0] plt.plot([idx[i]-0.5, idx[i+1]-0.5, idx[i+1]-0.5, idx[i]-0.5, idx[i]-0.5], [line, line, line+1, line+1, line], color=lineColor, linewidth=4) plt.text(-0.75+(idx[i]+idx[i+1])/2.0, line+0.75, '%c : %d'%(levels[i]+64, idx[i+1]-idx[i]), color=textColor, size=15) plt.show(block=False) fig.canvas.draw() fig.canvas.flush_events() sQtd = '' sLevels = '' for d,l in zip(np.diff(idx), levels): sQtd += '%4d'%d sLevels += '%4c'%(l+64) print(sQtd + 'n' + sLevels) print('n') input() line += 1