Developer knowledge network · moderated exchange

UnreliableCode қауымдастығы

Әзірлеушілерді зерттеу, кері инженерия және кодтау қауымдастығы

Knowledge indexТірі
4Categories
919Threads
2.8KЖазбалар
Tutorial

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

colorbot_crafter
Hardware Modder
MEMBER
Өкіл: 126
Қосылу күні: Mar 2021
Хабарламалар: 14
Рахмет: 78
1 ай бұрын · 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
Өкіл: 105
Қосылу күні: Aug 2018
Хабарламалар: 52
Рахмет: 41
1 ай бұрын · 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
Өкіл: 72
Қосылу күні: Sep 2019
Хабарламалар: 32
Рахмет: 16
1 ай бұрын · Jul 9, 2026 2:58 PM
#3

Morphological opening clears out 99% of background pixel flicker.