Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from PIL import Image | |
| def sort_doc(in_list: list, steps_in: int, control: int, prev_list: str): | |
| control_json={'control':'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','char':'','leng':62} | |
| key_cnt=len(in_list) | |
| print(key_cnt) | |
| control_char=list(control_json['control']) | |
| char_len=len(control_char) | |
| if not steps_in: | |
| n_cnt=0 | |
| nx=key_cnt | |
| while True: | |
| if nx >= 1: | |
| n_cnt+=1 | |
| nx = nx/char_len | |
| else: | |
| steps=n_cnt | |
| break | |
| if steps_in: | |
| steps=steps_in | |
| if control: | |
| control_len=control_json['leng']-control | |
| control_char=list(control_json['control'][:control_len]) | |
| control_val=list(control_json['control'][control_len:]) | |
| val_len=len(control_val) | |
| control_val_box=[] | |
| for ea in control_val: | |
| control_val_box.append(ea) | |
| print(f'CONTROL_VAL_BOX:: {control_val_box}') | |
| #prev_list=control_val_box | |
| json_out={} | |
| big_cnt=0 | |
| cnt=0 | |
| go=True | |
| step_cont_box=[] | |
| if prev_list: | |
| print("LOD") | |
| last_key=list(prev_list.keys())[-1] | |
| print(last_key) | |
| for ea_dig in last_key: | |
| ea_dig=control_json['control'].index(ea_dig) | |
| ea_dig=int(ea_dig) | |
| print(f'{ea_dig} :: {list(control_json["control"][ea_dig])[0]}') | |
| #step_cont_box.append(int(list(control_json["control"][ea_dig])[0])) | |
| step_cont_box.append(ea_dig) | |
| print(step_cont_box) | |
| cnt=int(step_cont_box[-1])+1 | |
| if not prev_list: | |
| print("NOT LOD") | |
| for ii in range(steps): | |
| print(ii) | |
| step_cont_box.append(0) | |
| pos=len(step_cont_box)-1 | |
| if go: | |
| for i, ea in enumerate(in_list): | |
| if go: | |
| if cnt > char_len-1: | |
| #print(step_cont_box) | |
| go1=True | |
| for ii,ev in enumerate(step_cont_box): | |
| if go: | |
| if ev >= char_len-1: | |
| step_cont_box[ii]=0 | |
| if go1==True: | |
| step_cont_box[ii-1]=step_cont_box[ii-1]+1 | |
| go1=False | |
| cnt=1 | |
| else: | |
| step_cont_box[pos]=cnt | |
| cnt+=1 | |
| #print(step_cont_box) | |
| out_js="" | |
| for iii,j in enumerate(step_cont_box): | |
| #print(j) | |
| out_js = out_js+control_char[j] | |
| json_out[out_js]=in_list[i] | |
| big_cnt+=1 | |
| if big_cnt==key_cnt: | |
| print("DONE") | |
| go=False | |
| return json_out | |
| def get_pixels(im): | |
| img=Image.open(im) | |
| pixels = img.load() # create the pixel map | |
| im_width=img.size[0] | |
| im_height=img.size[1] | |
| print(f'{im_width} :: {im_height}') | |
| pixel_box=[] | |
| pixel_list={} | |
| for i in range(im_width): # for every col: | |
| for j in range(im_height): # For every row | |
| pixel = pixels[i,j] | |
| r,g,b=pixels[i,j] | |
| if str(pixel) in pixel_box: | |
| #print("YES") | |
| pixel_list[str(pixel)].append((i,j)) | |
| print(pixel_list[str(pixel)]) | |
| else: | |
| #pixel_box.append({f'{pixels[i,j]}':[(i,j)]}) | |
| pixel_list[str(pixel)]=[(i,j)] | |
| pixel_box.append(str(pixel)) | |
| #pixels[i,j] = (i, j, 100) # set the colour accordingly | |
| #print(pixels[i,j]) | |
| #for ea in pixel_box: | |
| print(len(pixel_list)) | |
| print(len(pixel_box)) | |
| return pixel_list | |
| with gr.Blocks() as app: | |
| in_im=gr.Image(type='filepath') | |
| go_btn=gr.Button() | |
| out_json=gr.JSON() | |
| go_btn.click(get_pixels,in_im,out_json) | |
| app.launch() |