File size: 1,114 Bytes
6524e7a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import numpy as np
from .contrast_detector import ContrastDetector
from .luminance_contrast import LuminanceContrastDetector
from .hue_contrast import HueContrastDetector
from .saturation_contrast import SaturationContrastDetector

class CombinedContrastDetector(ContrastDetector):
    """Combined contrast detector using multiple methods"""
    
    def __init__(self):
        super().__init__()
        self.luminance_detector = LuminanceContrastDetector()
        self.hue_detector = HueContrastDetector()
        self.saturation_detector = SaturationContrastDetector()
    
    def calculate_contrast(self, color1, color2):
        """Calculate combined contrast using multiple methods"""
        luminance_contrast = self.luminance_detector.calculate_contrast(color1, color2)
        hue_contrast = self.hue_detector.calculate_contrast(color1, color2)
        saturation_contrast = self.saturation_detector.calculate_contrast(color1, color2)
        
        # Weighted average (60% luminance, 20% hue, 20% saturation)
        return 0.6 * luminance_contrast + 0.2 * hue_contrast + 0.2 * saturation_contrast