Skip to content

Commit 292ad23

Browse files
committed
Code Algorithm for Filters Function
1 parent 66bbd1e commit 292ad23

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

Diff for: filters.py

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
from PIL import Image, ImageFilter, ImageOps
2+
3+
def blur_divide_and_conquer(img):
4+
"""Fungsi untuk menerapkan efek blur pada gambar."""
5+
return img.filter(ImageFilter.BLUR)
6+
7+
def grayscale_iterative(img):
8+
"""Fungsi untuk mengubah gambar menjadi grayscale secara iteratif."""
9+
return img.convert("L").convert("RGB")
10+
11+
def sharpen_divide_and_conquer(img):
12+
"""Fungsi untuk mengasah gambar."""
13+
return img.filter(ImageFilter.SHARPEN)
14+
15+
def sepia_iterative(img):
16+
"""Fungsi untuk mengubah gambar menjadi efek sepia."""
17+
width, height = img.size
18+
pixels = img.load() # Membaca data pixel
19+
for py in range(height):
20+
for px in range(width):
21+
r, g, b = img.getpixel((px, py))
22+
23+
tr = int(0.393 * r + 0.769 * g + 0.189 * b)
24+
tg = int(0.349 * r + 0.686 * g + 0.168 * b)
25+
tb = int(0.272 * r + 0.534 * g + 0.131 * b)
26+
27+
if tr > 255:
28+
tr = 255
29+
30+
if tg > 255:
31+
tg = 255
32+
33+
if tb > 255:
34+
tb = 255
35+
36+
pixels[px, py] = (tr,tg,tb)
37+
38+
return img
39+
40+
def edge_detection_dp(img):
41+
"""Fungsi untuk mendeteksi tepi menggunakan filter."""
42+
return img.filter(ImageFilter.FIND_EDGES)
43+
44+
def selective_filter_backtracking(img, target_color, replacement_color):
45+
"""Fungsi untuk menerapkan filter selektif berdasarkan warna tertentu."""
46+
width, height = img.size
47+
pixels = img.load()
48+
for py in range(height):
49+
for px in range(width):
50+
r, g, b = img.getpixel((px, py))
51+
52+
# Filter berdasarkan warna tertentu (misalnya, mengganti warna biru dengan merah)
53+
if (r, g, b) == target_color:
54+
pixels[px, py] = replacement_color
55+
56+
return img

0 commit comments

Comments
 (0)