|
import gradio as gr |
|
|
|
import numpy as np |
|
import json |
|
from os.path import dirname, realpath, join |
|
import processing.pipeline_numpy as ppn |
|
|
|
|
|
|
|
current_dir = dirname(realpath(__file__)) |
|
|
|
|
|
def process(RawImage, CameraParameters, Debayer, Sharpening, Denoising): |
|
raw_img = RawImage |
|
if CameraParameters == "Microscope": |
|
black_level = [9.834368023181512e-06, 9.834368023181512e-06, 9.834368023181512e-06, 9.834368023181512e-06] |
|
white_balance = [-0.6567, 1.9673, 3.5304] |
|
colour_matrix = [-2.0338, 0.0933, 0.4157, -0.0286, 2.6464, -0.0574, -0.5516, -0.0947, 2.9308] |
|
elif CameraParameters == "Drone": |
|
|
|
black_level = [0.0625, 0.0626, 0.0625, 0.0626] |
|
white_balance = [2.86653646, 1., 1.73079425] |
|
colour_matrix = [1.50768983, -0.33571374, -0.17197604, -0.23048614, |
|
1.70698738, -0.47650126, -0.03119153, -0.32803956, 1.35923111] |
|
else: |
|
black_level = [0.0625, 0.0626, 0.0625, 0.0626] |
|
white_balance = [2.86653646, 1., 1.73079425] |
|
colour_matrix = [1.50768983, -0.33571374, -0.17197604, -0.23048614, |
|
1.70698738, -0.47650126, -0.03119153, -0.32803956, 1.35923111] |
|
debayer = Debayer |
|
sharpening = Sharpening |
|
denoising = Denoising |
|
print(np.max(raw_img)) |
|
raw_img = (raw_img[:,:,:].astype(np.float64)/255.) |
|
img = ppn.processing(raw_img, black_level, white_balance, colour_matrix, |
|
debayer=debayer, sharpening=sharpening, denoising=denoising) |
|
print(np.max(img)) |
|
return img |
|
|
|
|
|
iface = gr.Interface( |
|
process, |
|
[gr.inputs.Image(),gr.inputs.Radio(["Microscope", "Drone"]),gr.inputs.Dropdown(["bilinear", "malvar2004", "menon2007"]), |
|
gr.inputs.Dropdown(["sharpening_filter", "unsharp_masking"]), |
|
gr.inputs.Dropdown(["gaussian_denoising", "median_denoising"])], |
|
"image", |
|
capture_session=True, |
|
examples=[ |
|
["demo-files/car.png"], |
|
["demo-files/micro.png"] |
|
], |
|
title="static pipeline demo", |
|
description="You can select a sample raw image, the camera parameters and the pipeline configuration to process the raw image.") |
|
|
|
|
|
iface.launch() |
|
|
|
|