filterz / app.py
jflo's picture
Update app.py
2ac81e4 verified
raw
history blame contribute delete
879 Bytes
import gradio as gr
import cv2
import numpy as np
def sepia_filter(image):
"""
image comes in as a NumPy array (RGB)
"""
# Convert RGB (Gradio) → BGR (OpenCV)
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
sepia_kernel = np.array([
[0.272, 0.534, 0.131],
[0.349, 0.686, 0.168],
[0.393, 0.769, 0.189]
])
sepia = cv2.transform(image, sepia_kernel)
sepia = np.clip(sepia, 0, 255).astype(np.uint8)
# Convert back BGR → RGB for Gradio
sepia = cv2.cvtColor(sepia, cv2.COLOR_BGR2RGB)
return sepia
app = gr.Interface(
fn=sepia_filter,
inputs=gr.Image(type="numpy", label="Input Image"),
outputs=gr.Image(type="numpy", label="Sepia Output"),
title="Simple Sepia Filter",
description="Upload an image and apply a sepia filter using OpenCV."
)
if __name__ == "__main__":
app.launch()