File size: 2,139 Bytes
7cb3405 3a5de8f 7cb3405 54a4670 7cb3405 b0c3984 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
from huggingface_hub import from_pretrained_keras
import gradio as gr
from skimage.io import imsave
from skimage.color import lab2rgb
from tensorflow.keras.utils import img_to_array, load_img
import numpy as np
repo_id="saruizn/trabajo"
model = from_pretrained_keras(repo_id)
def predict(img):
partes=[]
imsave("input.jpg",(img * 255).astype(np.uint8))
imag = img_to_array(load_img("input.jpg"))
partes=divideImage(imag)
i=0
imagenes=[]
for imgp in partes:
nombre="result"+str(i)+".png"
imsave(nombre,imgp)
guardarImagen(nombre,i,imagenes)
i=i+1
imagenFinal=juntaImage(imagenes)
return imagenFinal
def guardarImagen(foto,i,imagenes):
color_me = []
img = img_to_array(load_img(foto))
img = resize(img ,(256,256))
color_me.append(img)
color_me = np.array(color_me, dtype=float)
color_me = rgb2lab(1.0/255*color_me)[:,:,:,0]
color_me = color_me.reshape(color_me.shape+(1,))
output = model.predict(color_me)
output = output * 128 * 8
result = np.zeros((256, 256, 3))
result[:,:,0] = color_me[0][:,:,0]
result[:,:,1:] = output[0]
imagenes.append(lab2rgb(result))
imsave("result"+str(i)+".png", lab2rgb(result))
def divideImage(img):
salida=[]
for i in range(0,3):
for j in range(0,5):
salida.append(img[i*256:i*256+256,j*256:j*256+256])
salida.append(img[i*256:i*256+256,1372-256:1372])
for j in range(0,5):
salida.append(img[929-256:929,j*256:j*256+256])
salida.append(img[929-256:929,1372-256:1372])
return salida
def juntaImage(X):
salida=np.zeros((929, 1372, 3))
im=0
for i in range(0,3):
for j in range(0,5):
salida[i*256:i*256+256,j*256:j*256+256]=X[im]
im=im+1
salida[i*256:i*256+256,1372-256:1372]=X[im]
im=im+1
for j in range(0,5):
salida[929-256:929,j*256:j*256+256]=X[im]
im=im+1
salida[929-256:929,1372-256:1372]=X[im]
return salida
gr.Interface(fn=predict, inputs=gr.inputs.Image(shape=(929, 1372)), outputs="image").launch(share=False) |