Spaces:
Runtime error
Runtime error
| import os | |
| import cv2 | |
| import gradio as gr | |
| import numpy as np | |
| from imgutils.data import load_image | |
| def variance_of_laplacian(np_image): | |
| """ | |
| Inspired by https://pyimagesearch.com/2015/09/07/blur-detection-with-opencv/ | |
| """ | |
| return cv2.Laplacian(np_image, cv2.CV_64F).var() | |
| def laplacian_score(image): | |
| v = np.array(load_image(image, force_background='white', mode='L')) | |
| return variance_of_laplacian(v) | |
| def _fn(image, threshold: float): | |
| v = laplacian_score(image) | |
| text = 'Is Blur' if v < threshold else 'Not Blur' | |
| return v, text | |
| if __name__ == '__main__': | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr_input_image = gr.Image(type='pil', label='Original Image') | |
| gr_threshold = gr.Slider(70, maximum=500, value=100, label='Threshold') | |
| gr_submit = gr.Button(value='Submit', variant='primary') | |
| with gr.Column(): | |
| gr_score = gr.Text(label='Laplacian Score', value='') | |
| gr_pred = gr.Text(label='Prediction', value='') | |
| gr_submit.click( | |
| _fn, | |
| inputs=[gr_input_image, gr_threshold], | |
| outputs=[gr_score, gr_pred], | |
| ) | |
| demo.queue(os.cpu_count()).launch() | |