Khalil09 commited on
Commit
b253385
·
verified ·
1 Parent(s): d222c59

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -7
app.py CHANGED
@@ -2,6 +2,7 @@ import streamlit as st
2
  import cv2
3
  import numpy as np
4
  from PIL import Image
 
5
 
6
  st.set_page_config(page_title="AI Image Enhancer", page_icon="🖼️")
7
 
@@ -12,7 +13,10 @@ uploaded_file = st.file_uploader("Upload Image", type=["jpg", "png", "jpeg"])
12
  def enhance_image(image, scale=2):
13
  img = np.array(image)
14
 
15
- # Upscale (pseudo 4K)
 
 
 
16
  width = int(img.shape[1] * scale)
17
  height = int(img.shape[0] * scale)
18
  resized = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC)
@@ -22,17 +26,20 @@ def enhance_image(image, scale=2):
22
 
23
  # Sharpen
24
  kernel = np.array([[0, -1, 0],
25
- [-1, 5,-1],
26
  [0, -1, 0]])
27
  sharpened = cv2.filter2D(denoised, -1, kernel)
28
 
29
- return sharpened
 
 
 
30
 
31
  if uploaded_file:
32
  image = Image.open(uploaded_file)
33
 
34
  st.subheader("Original Image")
35
- st.image(image, use_column_width=True)
36
 
37
  scale = st.slider("Upscale Level", 1, 4, 2)
38
 
@@ -40,13 +47,18 @@ if uploaded_file:
40
  enhanced = enhance_image(image, scale)
41
 
42
  st.subheader("Enhanced Image")
43
- st.image(enhanced, use_column_width=True)
44
 
45
- # Download
46
  result = Image.fromarray(enhanced)
 
 
 
 
 
47
  st.download_button(
48
  "Download Image",
49
- data=result.tobytes(),
50
  file_name="enhanced.png",
51
  mime="image/png"
52
  )
 
2
  import cv2
3
  import numpy as np
4
  from PIL import Image
5
+ import io
6
 
7
  st.set_page_config(page_title="AI Image Enhancer", page_icon="🖼️")
8
 
 
13
  def enhance_image(image, scale=2):
14
  img = np.array(image)
15
 
16
+ # Convert RGB → BGR (OpenCV fix)
17
+ img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
18
+
19
+ # Upscale
20
  width = int(img.shape[1] * scale)
21
  height = int(img.shape[0] * scale)
22
  resized = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC)
 
26
 
27
  # Sharpen
28
  kernel = np.array([[0, -1, 0],
29
+ [-1, 5, -1],
30
  [0, -1, 0]])
31
  sharpened = cv2.filter2D(denoised, -1, kernel)
32
 
33
+ # Convert back RGB
34
+ final = cv2.cvtColor(sharpened, cv2.COLOR_BGR2RGB)
35
+
36
+ return final
37
 
38
  if uploaded_file:
39
  image = Image.open(uploaded_file)
40
 
41
  st.subheader("Original Image")
42
+ st.image(image, use_container_width=True)
43
 
44
  scale = st.slider("Upscale Level", 1, 4, 2)
45
 
 
47
  enhanced = enhance_image(image, scale)
48
 
49
  st.subheader("Enhanced Image")
50
+ st.image(enhanced, use_container_width=True)
51
 
52
+ # FIXED DOWNLOAD
53
  result = Image.fromarray(enhanced)
54
+
55
+ buf = io.BytesIO()
56
+ result.save(buf, format="PNG")
57
+ byte_im = buf.getvalue()
58
+
59
  st.download_button(
60
  "Download Image",
61
+ data=byte_im,
62
  file_name="enhanced.png",
63
  mime="image/png"
64
  )