Spaces:
Sleeping
Sleeping
File size: 1,705 Bytes
d3f340f 704d03b 731bcbb d3f340f ca5fbfc d3f340f 704d03b 95cf6cc 704d03b ea00ccb e064287 ea00ccb e064287 ca8e0ee ea00ccb ca8e0ee ea00ccb e0d446b ea00ccb 1152606 95cf6cc ea00ccb 95cf6cc 704d03b d3f340f ca8e0ee 95cf6cc ca8e0ee d3f340f 95cf6cc d3f340f |
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 |
import gradio as gr
import zxingcpp
from PIL import Image
import cv2
def decode(im,col):
img = cv2.imread(f'{im}')
try:
results = zxingcpp.read_barcodes(img)
return results[0].text,None
except Exception:
#qr_img=Image.open(im).convert("RGBA")
qr_img=Image.open(im)
datas = qr_img.getdata()
newData = []
h1 = col.strip("#")
rgb_tup = tuple(int(h1[i:i+2], 16) for i in (0, 2, 4))
tol=100
for item in datas:
if item[0] in range(rgb_tup[0]-tol,rgb_tup[0]+tol) and item[1] in range(rgb_tup[1]-tol,rgb_tup[1]+tol) and item[2] in range(rgb_tup[2]-tol,rgb_tup[2]+tol):
newData.append((0,0,0))
else:
newData.append((255,255,255))
qr_img.putdata(newData)
qr_img.save('conv_im.png')
img = cv2.imread('conv_im.png')
try:
results = zxingcpp.read_barcodes(img)
print (results[0].text)
return results[0].text,'conv_im.png'
except Exception:
return "QR Code not Detected \nTry choosing the QR code color using the eyedropper in the Color Picker",'conv_im.png'
with gr.Blocks() as app:
with gr.Row():
with gr.Column():
in_im = gr.Image(label="QR Image to Decode",type='filepath')
out_im = gr.Image(type='filepath')
with gr.Column():
choose_color = gr.ColorPicker(label="Choose QR color (eyedropper)")
dec_btn = gr.Button("Decode QR")
text_out = gr.Textbox(label="Decoded Text")
dec_btn.click(decode,[in_im,choose_color],[text_out,out_im])
app.queue(concurrency_count=10).launch() |