Developer knowledge network · moderated exchange

Społeczność UnreliableCode

Badania programistów, inżynieria wsteczna i społeczność programistów

Knowledge indexNa żywo
4Categories
919Threads
2.8KPosty
Tutorial

OpenCV HSV Purple Enemy Outline Filtering with Adaptive Ambient Luminance [v2.4 Technical Discussion]

colorbot_crafter
Hardware Modder
MEMBER
Rozpustnik: 126
Data dołączenia: Mar 2021
Posty: 14
Dzięki: 78
1 miesięcy temu · Jul 8, 2026 1:54 PM
#1

In competitive games with purple enemy outlines (like Valorant), bright map lighting (e.g. Bind or Sunset) shifts HSV values:

PYTHON
import cv2, numpy as np

def get_adaptive_mask(img_bgr):
    hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)
    # Compute median V channel for ambient light compensation
    median_v = np.median(hsv[:, :, 2])
    lower_v = max(110, int(median_v * 0.7))
    
    lower_purple = np.array([140, 100, lower_v])
    upper_purple = np.array([160, 255, 255])
    
    mask = cv2.inRange(hsv, lower_purple, upper_purple)
    # Morphological opening to eliminate single-pixel noise
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
    return cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
matrix_math_guy
Math Specialist
MEMBER
Rozpustnik: 105
Data dołączenia: Aug 2018
Posty: 52
Dzięki: 41
1 miesięcy temu · Jul 8, 2026 8:04 PM
#2

Adaptive median_v scaling fixes false positives on brightly lit sand textures in Bind!

raycast_ryan
Ballistics Dev
MEMBER
Rozpustnik: 72
Data dołączenia: Sep 2019
Posty: 32
Dzięki: 16
1 miesięcy temu · Jul 9, 2026 2:58 PM
#3

Morphological opening clears out 99% of background pixel flicker.