Hlow/Hhigh
, Slow/Shigh
, Vlow/Vhigh
..json
/ .yaml
) for different lighting.np.array
bounds.import cv2 as cv, numpy as np, json
preset = json.load(open("presets/target-indoor.json"))
lower = np.array(preset["lower"]) # e.g. [20, 80, 90]
upper = np.array(preset["upper"]) # e.g. [35, 255, 255]
frame = cv.imread("sample.jpg")
hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
mask = cv.inRange(hsv, lower, upper)
mask = cv.morphologyEx(mask, cv.MORPH_OPEN, np.ones((3,3), np.uint8))
cv.imshow("mask", mask); cv.waitKey(0)
Skills demonstrated: practical CV tooling, robust masking, config/preset design, quick feedback loops for field work.