Omnibus/pixel_mapping
0
1import gradio as gr2from PIL import Image3 4def sort_doc(in_list: list, steps_in: int, control: int, prev_list: str):5 control_json={'control':'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','char':'','leng':62}6 key_cnt=len(in_list)7 print(key_cnt)8 9 control_char=list(control_json['control'])10 char_len=len(control_char) 11 if not steps_in:12 n_cnt=013 nx=key_cnt14 while True:15 if nx >= 1:16 n_cnt+=117 nx = nx/char_len18 else:19 steps=n_cnt20 break 21 if steps_in:22 steps=steps_in23 if control:24 control_len=control_json['leng']-control25 control_char=list(control_json['control'][:control_len])26 control_val=list(control_json['control'][control_len:])27 val_len=len(control_val)28 control_val_box=[]29 for ea in control_val:30 control_val_box.append(ea)31 print(f'CONTROL_VAL_BOX:: {control_val_box}')32 #prev_list=control_val_box33 json_out={}34 35 big_cnt=036 cnt=037 go=True38 step_cont_box=[]39 40 if prev_list:41 print("LOD")42 last_key=list(prev_list.keys())[-1]43 print(last_key)44 for ea_dig in last_key:45 ea_dig=control_json['control'].index(ea_dig)46 ea_dig=int(ea_dig)47 print(f'{ea_dig} :: {list(control_json["control"][ea_dig])[0]}')48 #step_cont_box.append(int(list(control_json["control"][ea_dig])[0]))49 step_cont_box.append(ea_dig)50 print(step_cont_box)51 cnt=int(step_cont_box[-1])+152 if not prev_list:53 print("NOT LOD")54 for ii in range(steps):55 print(ii)56 step_cont_box.append(0)57 58 pos=len(step_cont_box)-159 if go:60 for i, ea in enumerate(in_list):61 if go:62 if cnt > char_len-1:63 #print(step_cont_box)64 go1=True65 for ii,ev in enumerate(step_cont_box):66 if go:67 if ev >= char_len-1:68 step_cont_box[ii]=069 if go1==True:70 step_cont_box[ii-1]=step_cont_box[ii-1]+171 go1=False72 cnt=173 else:74 step_cont_box[pos]=cnt75 cnt+=176 #print(step_cont_box)77 out_js=""78 for iii,j in enumerate(step_cont_box):79 #print(j)80 out_js = out_js+control_char[j]81 json_out[out_js]=in_list[i]82 big_cnt+=183 if big_cnt==key_cnt:84 print("DONE")85 go=False86 return json_out87 88 89def get_pixels(im):90 img=Image.open(im)91 pixels = img.load() # create the pixel map92 im_width=img.size[0]93 im_height=img.size[1]94 print(f'{im_width} :: {im_height}')95 pixel_box=[]96 pixel_list={}97 for i in range(im_width): # for every col:98 for j in range(im_height): # For every row99 pixel = pixels[i,j]100 r,g,b=pixels[i,j]101 if str(pixel) in pixel_box:102 #print("YES")103 pixel_list[str(pixel)].append((i,j))104 print(pixel_list[str(pixel)])105 else: 106 #pixel_box.append({f'{pixels[i,j]}':[(i,j)]})107 pixel_list[str(pixel)]=[(i,j)]108 pixel_box.append(str(pixel))109 110 #pixels[i,j] = (i, j, 100) # set the colour accordingly111 #print(pixels[i,j])112 #for ea in pixel_box:113 print(len(pixel_list)) 114 print(len(pixel_box)) 115 return pixel_list116with gr.Blocks() as app:117 in_im=gr.Image(type='filepath')118 go_btn=gr.Button()119 out_json=gr.JSON()120 go_btn.click(get_pixels,in_im,out_json)121app.launch()