Created
November 7, 2017 01:35
-
-
Save fazd/a8ba4dc9c2ab18bb5297507d6ea72467 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
import cv2 | |
from itertools import * | |
from os import listdir | |
from os.path import isfile, join | |
def guardar_imagen(img,cont): | |
k='byw/'+str(cont)+'.png' | |
cv2.imwrite(k,img) | |
def cargar_imagenes(): | |
mypath = 'test2' | |
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] | |
images = np.empty(len(onlyfiles), dtype=object) | |
for n in range(0, len(onlyfiles)): | |
images[n] = cv2.imread(join(mypath, onlyfiles[n])) | |
print(len(images)) | |
return images | |
def imagen_to_black_and_white(img,cont): | |
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) | |
#cv2.imshow('gray',gray) | |
#cv2.waitKey(0) | |
minimo=min_colors(gray) | |
im_bw=change_color(gray,minimo) | |
#cv2.imshow('byw', im_bw) | |
#cv2.waitKey(0) | |
guardar_imagen(im_bw,cont) | |
return im_bw | |
def min_colors(img): | |
filas, colum = img.shape | |
min=255 | |
for i in range(filas): | |
for j in range(colum): | |
if(min>img[i,j]): | |
min=img[i,j] | |
#print('min=',min) | |
return min | |
def change_color(img,minimo): | |
filas, colum = img.shape | |
for i in range(filas): | |
for j in range(colum): | |
if (img[i, j]<minimo+25): | |
img[i, j]=255 | |
else: | |
img[i,j]=0 | |
return img | |
def dist (x,y): | |
x1,y1=x | |
x2,y2=y | |
return np.sqrt(pow((x1-x2), 2) + pow((y1-y2), 2)) | |
def media(dicc): | |
tam = len(dicc) | |
total=0 | |
for i in range(tam): | |
total=total+dicc[i] | |
total=total/tam | |
return total | |
def varianza(media,dicc): | |
tam=len(dicc) | |
total=0 | |
for i in range(tam): | |
total=total+pow((media-dicc[i]),2) | |
total=total/tam | |
return total | |
def coeficiente_varianza(media,varianza): | |
return (varianza/media) | |
def crear_Diccionario(image,num): | |
filas, colum, channels=image.shape | |
diccionario = {} | |
img=imagen_to_black_and_white(image,num) | |
elemi1=0 | |
puntos=[] | |
for i in product(range(0,filas),range(elemi1,colum)): | |
if(img[i]==0): | |
puntos.append(i) | |
limite=len(puntos) | |
lista=[] | |
for i in range(0,limite,1): | |
for j in range(i+1,limite,1): | |
lista.append(dist(puntos[i],puntos[j])) | |
return lista | |
def principal(image,cont): | |
lista=crear_Diccionario(image,cont) | |
med=media(lista) | |
var=varianza(med,lista) | |
coef=coeficiente_varianza(med,var) | |
#print('media=',med) | |
#print('varianza=',var) | |
#print('coef=',coef) | |
print(cont) | |
return (med,var,coef) | |
imagenes=cargar_imagenes() | |
var= [] | |
med = [] | |
co=[] | |
cont=1 | |
for i in range(len(imagenes)): | |
#print('imagen:',cont) | |
x,y,z=principal(imagenes[i],cont) | |
cont=cont+1 | |
var.append(x) | |
med.append(y) | |
co.append(z) | |
for i in range(i,cont-1): | |
print('imagen',i,':=',var[i],' ',med[i],co[i]) | |
print('fin') | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment