Developer knowledge network · moderated exchange

Zajednica UnreliableCode

Zajednica za istraživanje, obrnuti inženjering i programiranje programera

Knowledge indexŽivjeti
4Categories
919Threads
2.8KPostovi
Tutorial

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

colorbot_crafter
Hardware Modder
MEMBER
Rep: 126
Datum pridruživanja: Mar 2021
Postovi: 14
Hvala: 78
prije 1 mjeseci · 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
Rep: 105
Datum pridruživanja: Aug 2018
Postovi: 52
Hvala: 41
prije 1 mjeseci · 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
Rep: 72
Datum pridruživanja: Sep 2019
Postovi: 32
Hvala: 16
prije 1 mjeseci · Jul 9, 2026 2:58 PM
#3

Morphological opening clears out 99% of background pixel flicker.