Color Manipulation Techniques
Color Filtering and Adjustment
import numpy as np
def apply_color_filter(image, filter_type):
"""
Apply various color filters to an image
"""
filters = {
'grayscale': np.array([0.299, 0.587, 0.114]),
'sepia': np.array([0.393, 0.769, 0.189]),
'invert': np.array([-1, -1, -1])
}
filter_matrix = filters.get(filter_type, filters['grayscale'])
return np.dot(image[...,:3], filter_matrix)
graph LR
A[RGB] --> B[HSV]
B --> C[LAB]
C --> D[CMYK]
D --> A
Advanced Color Processing
def color_temperature_adjustment(image, temperature):
"""
Adjust color temperature of an image
"""
if temperature > 0:
## Warm colors
warm_matrix = np.array([
[1, 0, 0],
[0, 1, 0.2],
[0, 0, 1 + temperature/100]
])
return np.dot(image, warm_matrix)
else:
## Cool colors
cool_matrix = np.array([
[1, 0.2, 0],
[0, 1, 0],
[0, 0, 1 - temperature/100]
])
return np.dot(image, cool_matrix)
| Transformation |
Purpose |
Technique |
| Brightness |
Adjust luminance |
Linear scaling |
| Contrast |
Enhance color separation |
Non-linear mapping |
| Saturation |
Modify color intensity |
Chroma adjustment |
Practical Color Processing Workflow
Color Preprocessing in LabEx
class ColorProcessor:
def __init__(self, image):
self.image = image
def normalize(self):
return self.image / 255.0
def apply_gamma_correction(self, gamma=1.0):
return np.power(self.image, gamma)
def color_balance(self, red_gain=1.0, green_gain=1.0, blue_gain=1.0):
balanced = self.image.copy()
balanced[:,:,0] *= red_gain
balanced[:,:,1] *= green_gain
balanced[:,:,2] *= blue_gain
return np.clip(balanced, 0, 255)
Advanced Color Manipulation Techniques
Histogram Equalization
def histogram_equalization(image):
"""
Enhance color distribution
"""
hist, bins = np.histogram(image.flatten(), 256, [0, 256])
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
equalized_image = np.interp(image, bins[:-1], cdf_normalized)
return equalized_image
Key Considerations
- Preserve color information
- Maintain perceptual consistency
- Handle different color spaces
- Optimize computational efficiency
By mastering these practical color transformation techniques, developers can create sophisticated color processing solutions in various applications, from image editing to data visualization.