-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOperations.py
70 lines (43 loc) · 1.79 KB
/
Operations.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import numpy as np
import cv2
#Adjust Brightness
def color_brightness(image, brightness_factor):
b, g, r = cv2.split(image)
b = cv2.add(b, 255 * brightness_factor)
g = cv2.add(g, 255 * brightness_factor)
r = cv2.add(r, 255 * brightness_factor)
b = np.clip(b, 0, 255)
g = np.clip(g, 0, 255)
r = np.clip(r, 0, 255)
adjusted_image = cv2.merge((b, g, r))
return np.asarray(adjusted_image, np.uint8)
# Adjust Contrast
def color_contrast(image, amount):
b, g, r = cv2.split(image) # Split the image into RGB channels
# Apply contrast adjustment to each channel
b = np.clip(b * amount, 0, 255).astype(np.uint8)
g = np.clip(g * amount, 0, 255).astype(np.uint8)
r = np.clip(r * amount, 0, 255).astype(np.uint8)
contrast_image = cv2.merge((b, g, r)) # Merge the RGB channels back into an image
return np.asarray(contrast_image, np.uint8)
# Adjust Sharpening
def color_sharpening(image, amount):
b, g, r = cv2.split(image)
blurred_b = cv2.GaussianBlur(b, (0, 0), 3)
sharp_b = cv2.addWeighted(b, 1 + amount, blurred_b, -amount, 0)
blurred_g = cv2.GaussianBlur(g, (0, 0), 3)
sharp_g = cv2.addWeighted(g, 1 + amount, blurred_g, -amount, 0)
blurred_r = cv2.GaussianBlur(r, (0, 0), 3)
sharp_r = cv2.addWeighted(r, 1 + amount, blurred_r, -amount, 0)
lab_sharp = cv2.merge((sharp_b, sharp_g, sharp_r))
return lab_sharp
#Adjust Blurring
def colour_blurring(image,kernel_size):
# Split the image into RGB channels
b, g, r = cv2.split(image)
b_blur = cv2.medianBlur(b, kernel_size)
g_blur = cv2.medianBlur(g, kernel_size)
r_blur = cv2.medianBlur(r, kernel_size)
# Merge the blurred channels back into an RGB image
blurred_image = cv2.merge((b_blur, g_blur, r_blur))
return blurred_image