| | import gradio as gr |
| | import cv2 |
| | import numpy as np |
| |
|
| | def sepia_filter(image): |
| | """ |
| | image comes in as a NumPy array (RGB) |
| | """ |
| | |
| | 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) |
| |
|
| | |
| | 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() |